From 82f9731cc4ede6be065429206fdacaf8763a3e29 Mon Sep 17 00:00:00 2001 From: Kai DeLorenzo <git@seaoflaurels.com> Date: Fri, 24 May 2024 21:03:36 -0500 Subject: [PATCH] refactored and removed hardcoding --- README.md | 10 +- build/SpotifyScript.js | 766 +++++++++++---------------- build/SpotifyScript.js.map | 2 +- build/SpotifyScript.ts | 1001 +++++++++++++++--------------------- src/SpotifyScript.ts | 1001 +++++++++++++++--------------------- src/types.ts | 31 +- 6 files changed, 1171 insertions(+), 1640 deletions(-) diff --git a/README.md b/README.md index ef25079..b1b03de 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ - [ ] music video support (not available in the us) - [ ] video podcast support (requires a better websocket api) - [ ] similar to bilibili i think we need to add id prefixes or suffixes because there could be collision -- [ ] add playback tracking support - [ ] add offline playback for widevine support as far as i can tell this will not be possible. Spotify does not support offline playback in the Web Player. Asking the ephemeral license server for a persistent license hasn't worked. @@ -18,13 +17,9 @@ wireshark tips https://www.netresec.com/?page=PolarProxy to unencrypt https://docs.fedoraproject.org/en-US/quick-docs/using-shared-system-certificates/ for adding the root ca some reference offline/persistent widevine https://github.com/AnassHmida/react-native-video-drm/blob/main/android-exoplayer/src/main/java/com/brentvatne/exoplayer/DownloadTracker.java -- [ ] doesn't play :( https://open.spotify.com/album/3UEEPh5wsdhP7SKC31yvhu -- [ ] trascript issue https://open.spotify.com/episode/2T9MigKPyg21TWR3juW4z5 -- [ ] section genre urls should still work https://open.spotify.com/genre/0JQ5IMCbQBLpWesTpzW2kY -- [ ] errors for some reason https://open.spotify.com/track/4EUQXLipplO2v9mVaqQtjc +- [x] (i think this is fixed) when the liked songs collection is in the recently played genre it doesn't show up in grayjay - [ ] doesn't play https://open.spotify.com/track/5kIcrM3QVD4BQPFMszQnU1 -- [ ] doesn't play https://open.spotify.com/track/0ROKraHEf4F02IyaudmAt6 -- [ ] when the liked songs collection is in the recently played genre it doesn't show up in grayjay +- [ ] doesn't play :( https://open.spotify.com/album/3UEEPh5wsdhP7SKC31yvhu ## Grayjay Bugs - [ ] RatingScaler doesn't work @@ -33,3 +28,4 @@ - [ ] there is no way to get to the creator of a playlist - [ ] the pager that goes in the contents property of a playlist doesn't ever call the nextPage method - [ ] the channel about section doesn't render HTML +- [ ] the isOpen property on WebSocket always returns false diff --git a/build/SpotifyScript.js b/build/SpotifyScript.js index b10f7c2..78da50b 100644 --- a/build/SpotifyScript.js +++ b/build/SpotifyScript.js @@ -17,6 +17,7 @@ const PLATFORM = "Spotify"; // const USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64; rv:124.0) Gecko/20100101 Firefox/124.0" as const const HARDCODED_ZERO = 0; const HARDCODED_EMPTY_STRING = ""; +const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", ""); const local_http = http; // const local_utility = utility // set missing constants @@ -311,7 +312,7 @@ function getHome() { } }); } - const playlists = format_page(sections, 4); + const playlists = format_page(sections, 4, "Home"); return new ContentPager(playlists, false); } function whats_new_args(offset, limit) { @@ -432,7 +433,7 @@ function format_song_and_episode_results(search_response) { return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id), name: episode.data.name, - author: new PlatformAuthorLink(new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url), + author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink(new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url) : EMPTY_AUTHOR, url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) { return new Thumbnail(image.url, image.height); @@ -441,7 +442,7 @@ function format_song_and_episode_results(search_response) { viewCount: HARDCODED_ZERO, isLive: false, shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, - datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000 + datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000 }); }) ]; @@ -525,7 +526,11 @@ function getContentDetails(url) { }]; } const format = local_state.is_premium ? "MP4_256" : "MP4_128"; - const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format; })?.file_id; + const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file; + if (files === undefined) { + throw new ScriptException("missing alternative file list"); + } + const maybe_file_id = files.find(function (file) { return file.format === format; })?.file_id; if (maybe_file_id === undefined) { throw new ScriptException("missing expected format"); } @@ -675,7 +680,7 @@ function getContentDetails(url) { end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds; } vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n`; - vtt_text += `${section.text.sentence.text}\n`; + vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n`; vtt_text += "\n"; }); return [{ @@ -1071,6 +1076,9 @@ class LikedEpisodesPager extends VideoPager { } function format_collection_episodes(response) { return response.data.me.library.episodes.items.map(function (episode) { + if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) { + throw new ScriptException("unreachable"); + } return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id), name: episode.episode.data.name, @@ -1849,7 +1857,7 @@ function getChannelContents(url, type, order, filters) { if (browse_page_response.data.browse.__typename === "GenericError") { throw new ScriptException("error loading genre page"); } - const playlists = format_page(browse_page_response.data.browse.sections.items, limit); + const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel); return new ContentPager(playlists, false); } case "show": @@ -1898,7 +1906,7 @@ function getChannelContents(url, type, order, filters) { * @param display_limit maximum number of items to display per section * @returns */ -function format_page(sections, display_limit) { +function format_page(sections, display_limit, page_title) { const filtered_sections = sections.flatMap(function (item) { if (is_playlist_section(item)) { return [item]; @@ -1907,7 +1915,7 @@ function format_page(sections, display_limit) { }); const content = filtered_sections.flatMap(function (section) { const section_title = section.data.title; - const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel; + const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel; const section_items = section.sectionItems.items.flatMap(function (section_item) { if (section_item.content.__typename === "UnknownType") { return []; @@ -2075,6 +2083,9 @@ function format_section_item(section, section_as_author) { return new PlatformPlaylist(platform_playlist); } case "Episode": { + if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) { + throw new ScriptException("unreachable"); + } return new PlatformVideo({ id: new PlatformID(PLATFORM, section.id, plugin.config.id), name: section.name, @@ -2510,475 +2521,322 @@ function getUserSubscriptions() { } return following; } -const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues; -const gt = (e) => ht ? function (e) { - return crypto.getRandomValues(new Uint8Array(e)); -}(e) : function (e) { - const t = []; - for (; t.length < e;) - t.push(Math.floor(256 * Math.random())); - return t; -}(e); -const ft = (e) => { - const t = Math.ceil(e / 2); - return function (e) { - let t = ""; - for (let n = 0; n < e.length; n++) { - const i = e[n]; - if (i === undefined) { - throw new ScriptException("issue generating device id"); - } - i < 16 && (t += "0"), - t += i.toString(16); - } - return t; - }(gt(t)); -}; -const vt = () => ft(40); function getPlaybackTracker(url) { - const { content_uri_id } = parse_content_url(url); + const { content_uri_id, content_type } = parse_content_url(url); check_and_update_token(); - return new SpotifyPlaybackTracker(content_uri_id); + return new SpotifyPlaybackTracker(content_uri_id, content_type); } class SpotifyPlaybackTracker extends PlaybackTracker { - uri_id; - state_machine_id = ""; - playback_id = ""; + recording_play = false; play_recorded = false; - socket_closed = false; - another_one = false; - in_between = false; - transfered = false; - // private device_active = false - // private transfered = false - // private start_triggered = false - connection_id = ""; - socket; - init_seconds = 0; - device_id = vt(); - // private readonly uid = "ccf999d7241e13521c2e" - // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s" - // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh" - // private readonly track_album_index = 3 - // private readonly duration = 145746 - uid = "1347b3deaefee32b7d2b"; - track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A"; - album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW"; - track_album_index = 2; - duration = 109750; - // private readonly uid = "296cf850453478739645" - // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty" - // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T" - // private readonly track_album_index = 4 - // private readonly duration = 171989 - // private readonly uid = "8167260601e9aab35d02" - // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp" - // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK" - // private readonly track_album_index = 5 - // private readonly duration = 111266 - seq_num = 3; - constructor(uri_id) { - const interval_seconds = 4; + total_seconds_played = 0; + device_id; + context_url; + context_uri; + skip_to_data; + duration; + interval_seconds; + constructor(uri_id, content_type) { + const interval_seconds = 2; super(interval_seconds * 1000); - this.uri_id = uri_id; - // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40" - log("connecting to websocket"); - const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`; - this.socket = http.socket(url, {}, false); - this.socket.connect({ - open: () => { - log("open"); - // this.socket.send(JSON.stringify({ - // type: "ping" - // })) - }, - closed: (code, reason) => { - console.log(code.toString()); - console.log(reason); - }, - closing: (code, reason) => { - console.log(code.toString()); - console.log(reason); - }, - message: (msg) => { - log("a message"); - const connection = JSON.parse(msg); - if (!("method" in connection)) { - if (connection.uri === "hm://track-playback/v1/command") { - if (connection.payloads[0]?.state_machine.states.length === 0) { - log("ignored WS message just informing us of the active device"); - log(msg); - return; - } - if (this.playback_id !== "" && this.state_machine_id !== "") { - log("ignored WS message ids already found"); + this.interval_seconds = interval_seconds; + // generate device id + const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues; + const gt = (e) => ht ? function (e) { + return crypto.getRandomValues(new Uint8Array(e)); + }(e) : function (e) { + const t = []; + for (; t.length < e;) + t.push(Math.floor(256 * Math.random())); + return t; + }(e); + const ft = (e) => { + const t = Math.ceil(e / 2); + return function (e) { + let t = ""; + for (let n = 0; n < e.length; n++) { + const i = e[n]; + if (i === undefined) { + throw new ScriptException("issue generating device id"); + } + i < 16 && (t += "0"), + t += i.toString(16); + } + return t; + }(gt(t)); + }; + const vt = () => ft(40); + this.device_id = vt(); + // load track info + switch (content_type) { + case "episode": { + const { url, headers } = episode_metadata_args(uri_id); + const response = JSON.parse(local_http.GET(url, headers, false).body); + switch (response.data.episodeUnionV2.__typename) { + case "Chapter": + this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri; + break; + case "Episode": + this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri; + break; + default: + throw assert_exhaustive(response.data.episodeUnionV2, "unreachable"); + } + this.context_url = `context://${this.context_uri}`; + this.skip_to_data = { + content_type: "episode", + track_uri: response.data.episodeUnionV2.uri + }; + this.duration = response.data.episodeUnionV2.duration.totalMilliseconds; + break; + } + case "track": + const { url, headers } = track_metadata_args(uri_id); + const response = JSON.parse(local_http.GET(url, headers, false).body); + const track_album_index = response.data.trackUnion.trackNumber - 1; + const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1); + const tracks_response = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body); + this.context_uri = response.data.trackUnion.albumOfTrack.uri; + this.context_url = `context://${this.context_uri}`; + this.duration = response.data.trackUnion.duration.totalMilliseconds; + const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid; + if (uid === undefined) { + throw new ScriptException("can't find song uid"); + } + this.skip_to_data = { + content_type: "track", + uid, + track_uri: response.data.trackUnion.uri, + track_album_index + }; + break; + default: + throw assert_exhaustive(content_type, "unreachable"); + } + } + onInit(_seconds) { + } + onProgress(_seconds, is_playing) { + if (is_playing) { + // this ends up lagging behind. + this.total_seconds_played += this.interval_seconds; + } + if (is_playing && !this.recording_play && this.total_seconds_played > 30) { + this.recording_play = true; + log("creating WebSocket connection"); + // setup WebSocket connection + const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}`; + const socket = http.socket(url, {}, false); + socket.connect({ + open: () => { + }, + closed: (code, reason) => { + console.log(code.toString()); + console.log(reason); + }, + closing: (code, reason) => { + console.log(code.toString()); + console.log(reason); + }, + message: (msg) => { + // ignore queued messages + if (this.play_recorded) { + log("ignoring queued message"); + return; + } + const message = JSON.parse(msg); + // this is the initial connection message + if ("method" in message) { + const connection_id = message.headers["Spotify-Connection-Id"]; + const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"; + local_http.POST(track_playback_url, JSON.stringify({ + device: { + brand: "spotify", + capabilities: { + change_volume: true, + enable_play_token: true, + supports_file_media_type: true, + play_token_lost_behavior: "pause", + disable_connect: false, + audio_podcasts: true, + video_playback: true, + manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] + }, + device_id: this.device_id, + device_type: "computer", + metadata: {}, + model: "web_player", + name: "Web Player (Grayjay)", + platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop", + is_group: false + }, + outro_endcontent_snooping: false, + connection_id: connection_id, + client_version: "harmony:4.42.0-2780565f", + volume: 65535 + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); + const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`; + local_http.requestWithBody("PUT", connect_state_url, JSON.stringify({ + "member_type": "CONNECT_STATE", + "device": { + "device_info": { + "capabilities": { + "can_be_player": false, + "hidden": true, + "needs_full_player_state": true + } + } + } + }), { + Authorization: `Bearer ${local_state.bearer_token}`, + "X-Spotify-Connection-Id": connection_id + }, false); + const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`; + local_http.POST(transfer_url, JSON.stringify({ + "command": { + "context": { + uri: this.context_uri, + url: this.context_url, + "metadata": {} + }, + "play_origin": { + "feature_identifier": "album", + //feature_identifier: "show", + //feature_identifier: "audiobook", + "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", + "referrer_identifier": "your_library" + }, + "options": { + "license": "on-demand", + "skip_to": this.skip_to_data.content_type === "track" ? { + track_index: this.skip_to_data.track_album_index, + track_uid: this.skip_to_data.uid, + track_uri: this.skip_to_data.track_uri + } : { + track_uri: this.skip_to_data.track_uri + }, + "player_options_override": {} + }, + "logging_params": { + "page_instance_ids": [ + "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" + ], + "interaction_ids": [ + "d3697919-e8be-425d-98bc-1ea70e28963a" + ], + "command_id": "46b1903536f6eda76783840368982c5e" + }, + "endpoint": "play" + } + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); + return; + } + if (message.uri === "hm://track-playback/v1/command") { + if (message.payloads[0]?.state_machine.states.length === 0) { + log("ignored WS message that was informing of the active device"); log(msg); return; } - // if (this.state_machine_id === "") { - log("reading state details"); - const playback_id = connection.payloads[0]?.state_machine.states.find((state) => { - return state.track_uid === this.uid; - })?.state_id; - // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id - if (playback_id === undefined || playback_id === "") { + const state_machine = message.payloads[0]?.state_machine; + const playback_id = (() => { + const data = this.skip_to_data; + switch (data.content_type) { + case "episode": { + return state_machine?.states.find((state) => { + return state_machine.tracks[state.track]?.metadata.uri === data.track_uri; + })?.state_id; + } + case "track": { + return message.payloads[0]?.state_machine.states.find((state) => { + return state.track_uid === data.uid; + })?.state_id; + } + default: + throw assert_exhaustive(data); + } + })(); + if (playback_id === undefined) { log("error missing playback_id"); log(msg); return; - // throw new ScriptException("missing playback_id") } - const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id; - if (state_machine_id === undefined || state_machine_id === "") { + let state_machine_id = state_machine?.state_machine_id; + if (state_machine_id === undefined) { log("error missing state_machine_id"); log(msg); return; - // throw new ScriptException("missing state_machine_id") } - this.playback_id = playback_id; - this.state_machine_id = state_machine_id; - log(msg); - // } - // payloads statemachine states state_id - // this.playback_id = "11" - // this.state_machine_id = "69" - // if (!this.start_triggered && this.transfered) { - // } + let seq_num = 3; + const initial_state_machine_id = state_machine_id; + const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`; + // simulate song play + const before_track_load = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "before_track_load" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); + state_machine_id = before_track_load.state_machine.state_machine_id; + seq_num += 1; + local_http.requestWithBody("PUT", state_update_url, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "speed_changed" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); + seq_num += 1; + const speed_change = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 0, + debug_source: "speed_changed" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); + state_machine_id = speed_change.state_machine.state_machine_id; + seq_num += 1; + const started_playing = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 1360, + debug_source: "started_playing" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); + state_machine_id = started_playing.state_machine.state_machine_id; + seq_num += 1; + const played_threshold_reached = JSON.parse(local_http.requestWithBody("PUT", state_update_url, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 30786, + debug_source: "played_threshold_reached" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); + state_machine_id = played_threshold_reached.state_machine.state_machine_id; + seq_num += 1; + // delete the device + const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`; + local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false); + const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`; + local_http.requestWithBody("DELETE", deregister, JSON.stringify({ + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 40786, + debug_source: "deregister" + }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); + socket.close(); + this.play_recorded = true; + log("closing WebSocket connection"); return; } log("ignored WS message"); log(msg); return; + }, + failure: (exception) => { + log("failure"); + console.log(exception); } - this.connection_id = connection.headers["Spotify-Connection-Id"]; - // register device - log("registering device"); - const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices"; - const response = local_http.POST(register_url, - // JSON.stringify({ - // connection_id: connection.headers["Spotify-Connection-Id"], - // device: { - // device_id: this.device_id, - // model: "web_player", - // name: "Web Player (Grayjay)", - // // capabilities: { - // // change_volume: false, - // // audio_podcasts: true, - // // manifest_formats: [ - // // "file_ids_mp3", - // // "file_urls_mp3" - // // ] - // // }, - // "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]}, - // client_version: "harmony:4.42.0-2780565f", - // // brand: "spotify", - // device_type: "computer" - // } - // }), - JSON.stringify({ "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); - log(response); - log("grabbing devices info"); - const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`; - const response1 = local_http.requestWithBody("PUT", another_register_thing, JSON.stringify({ - "member_type": "CONNECT_STATE", - "device": { - "device_info": { - "capabilities": { - "can_be_player": false, - "hidden": true, - "needs_full_player_state": true - } - } - } - }), { - Authorization: `Bearer ${local_state.bearer_token}`, - "X-Spotify-Connection-Id": this.connection_id - }, false); - const device_info = JSON.parse(response1.body); - log(device_info); - // this.device_active = "active_device_id" in device_info - // this.transfered = true - // this.registered = true - // payloads cluster playerstate - // payloads statemachine staemachine_id - // if (1 + 2 > 3) { - // } - // log(response.body) - // gives the list of devices - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2 - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9 - // actually registers a device - //https://gue1-spclient.spotify.com/track-playback/v1/devices - }, - failure: (exception) => { - log("failure"); - console.log(exception); - } - }); - } - onInit(seconds) { - this.init_seconds = seconds; - } - onProgress(seconds, is_playing) { - //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"} - if (this.socket_closed) { - return; - } - if (seconds - this.init_seconds > 70 && is_playing) { - this.socket.close(); - this.socket_closed = true; - log("done closing"); - } - if (this.another_one) { - return; - } - if (seconds - this.init_seconds > 60 && is_playing) { - log("deleting device"); - const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}`; - const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false); - log(response); - const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}`; - const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 40786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 40786, "debug_source": "deregister" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false); - log(response2); - /* - log("trigger finish") - - const initial_state_machine_id = this.state_machine_id - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response1) - this.seq_num += 1 - this.state_machine_id = response1.state_machine.state_machine_id - - - - - log("triggering before play") - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response2) - this.state_machine_id = response2.state_machine.state_machine_id - this.seq_num += 1 - - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("speed change 1") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response3) - this.seq_num += 1 - - */ - this.another_one = true; - } - if (this.in_between) { - return; - } - if (seconds - this.init_seconds > 50 && is_playing) { - if (!this.socket.isOpen) { - log("socket not open!"); - } - else { - log(`recording play of ${this.uri_id}`); - // this.socket.close() - } - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`; - const response = JSON.parse(local_http.requestWithBody("PUT", register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - // }), - JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); - log(response); - this.seq_num += 1; - this.state_machine_id = response.state_machine.state_machine_id; - this.in_between = true; - } - if (this.play_recorded) { - return; - } - if (seconds - this.init_seconds > 15 && is_playing) { - this.play_recorded = true; - // log(this.connection_id) - // command id is random - //t = e=>{ - // const t = Math.ceil(e / 2); - // return function(e) { - // let t = ""; - // for (let n = 0; n < e.length; n++) { - // const i = e[n]; - // i < 16 && (t += "0"), - // t += i.toString(16) - // } - // return t - // }(gt(t)) - // const un = /^[0-9a-f]{32}$/i - // , pn = ()=>ft(32) - // , mn = e=>{ - // if (e && (t = e, - // !un.test(t))) - // throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`); - // var t; - // return e || pn() - // } - const initial_state_machine_id = this.state_machine_id; - log("triggering before play"); - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`; - const response1 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - // }), - JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); - log(response1); - this.state_machine_id = response1.state_machine.state_machine_id; - this.seq_num += 1; - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - log("speed change 1"); - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - // }), - JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); - log(response3); - this.seq_num += 1; - // this.state_machine_id = response3.state_machine.state_machine_id - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - log("speedchange 2"); - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response4 = JSON.parse(local_http.requestWithBody("PUT", before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - // }), - JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); - log(response4); - this.state_machine_id = response4.state_machine.state_machine_id; - this.seq_num += 1; - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - log("triggering play start"); - const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state`; - const response = JSON.parse(local_http.requestWithBody("PUT", started_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - // }), - JSON.stringify({ "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" }), { Authorization: `Bearer ${local_state.bearer_token}` }, false).body); - log(response); - this.state_machine_id = response.state_machine.state_machine_id; - this.seq_num += 1; - // this.start_triggered = true - } - if (this.transfered) { - return; - } - if (seconds - this.init_seconds > 5 && is_playing) { - log("transfering to device"); - const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}`; - const transfer_response = local_http.POST(transfer_url, - // this.device_active ? JSON.stringify( - // { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" } - // ) : - JSON.stringify({ - "command": { - "context": { - // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN", - // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN", - uri: `spotify:album:${this.album_uri_id}`, - url: `context://spotify:album:${this.album_uri_id}`, - "metadata": {} - }, - "play_origin": { - "feature_identifier": "album", - // "feature_identifier": "track", - "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", - "referrer_identifier": "your_library" - }, - "options": { - "license": "on-demand", - "skip_to": { - track_index: this.track_album_index, - track_uid: this.uid, - track_uri: this.track_uri - }, - "player_options_override": {} - }, - "logging_params": { - "page_instance_ids": [ - "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" - ], - "interaction_ids": [ - "d3697919-e8be-425d-98bc-1ea70e28963a" - ], - "command_id": "46b1903536f6eda76783840368982c5e" - }, - "endpoint": "play" - } - }), - // JSON.stringify({ - // command: { - // endpoint: "play", - // context: { - // metadata: {}, - // uri: "spotify:track:7aohwSiTDju51QmC54AUba", - // url: "context://spotify:track:7aohwSiTDju51QmC54AUba" - // }, - // "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" }, - // "options": { - // "license": "on-demand", "skip_to": {}, "player_options_override": {} - // }, - // "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" }, - // } - // // command_id: "1ec91233c1cd60f69f5de11f513b2887", - // // transfer_options: { - // // restore_paused: "pause" - // // } - // }), - { Authorization: `Bearer ${local_state.bearer_token}` }, false); - log(transfer_response); - this.transfered = true; + }); } } } diff --git a/build/SpotifyScript.js.map b/build/SpotifyScript.js.map index 3e2eac8..06feae3 100644 --- a/build/SpotifyScript.js.map +++ b/build/SpotifyScript.js.map @@ -1 +1 @@ -{"version":3,"file":"SpotifyScript.js","sourceRoot":"http://localhost:8080/","sources":["SpotifyScript.ts"],"names":[],"mappings":"AAuDA,MAAM,aAAa,GAAG,sEAAsE,CAAA;AAC5F,MAAM,cAAc,GAAG,uGAAuG,CAAA;AAC9H,MAAM,aAAa,GAAG,8HAA8H,CAAA;AACpJ,MAAM,eAAe,GAAG,iCAA0C,CAAA;AAClE,MAAM,kBAAkB,GAAG,mCAA4C,CAAA;AACvE,MAAM,eAAe,GAAG,gCAAyC,CAAA;AACjE,MAAM,iBAAiB,GAAG,kCAA2C,CAAA;AACrE,MAAM,eAAe,GAAG,gCAAyC,CAAA;AACjE,MAAM,gBAAgB,GAAG,iCAA0C,CAAA;AACnE,MAAM,eAAe,GAAG,iCAA0C,CAAA;AAClE,MAAM,kBAAkB,GAAG,mCAA4C,CAAA;AACvE,MAAM,mBAAmB,GAAG,oCAA6C,CAAA;AACzE,MAAM,oBAAoB,GAAG,sCAA+C,CAAA;AAC5E,MAAM,SAAS,GAAG,qDAA8D,CAAA;AAChF,MAAM,gBAAgB,GAAG,0BAAmC,CAAA;AAE5D,MAAM,QAAQ,GAAG,SAAkB,CAAA;AACnC,uGAAuG;AAEvG,MAAM,cAAc,GAAG,CAAU,CAAA;AACjC,MAAM,sBAAsB,GAAG,EAAW,CAAA;AAE1C,MAAM,UAAU,GAAG,IAAI,CAAA;AACvB,gCAAgC;AAEhC,wBAAwB;AACxB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,iBAAiB,CAAA;AAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAA;AAChC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB,CAAA;AAEvC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAA;AACjC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;AAE3B,YAAY;AACZ,IAAI,WAAkB,CAAA;AACtB,YAAY;AAEZ,wBAAwB;AACxB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AACtB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;AACxB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;AAC5B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;AAExB,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;AACpD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AAEtB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAA;AACtC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;AAClC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAA;AAE9B,MAAM,CAAC,sBAAsB,GAAG,sBAAsB,CAAA;AACtD,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;AAE9C,MAAM,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;AAChD,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;AAE5C,MAAM,CAAC,aAAa,GAAG,aAAa,CAAA;AACpC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAA;AACxC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;AAEhC,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;AAClD,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;AAE1C,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;AAG9C,IAAI,UAAU,EAAE,CAAC;IACb,MAAM,aAAa,GAAkB;QACjC,MAAM;QACN,OAAO;QACP,SAAS;QACT,OAAO;QACP,MAAM;QACN,qBAAqB;QACrB,mBAAmB;QACnB,iBAAiB;QACjB,YAAY;QACZ,UAAU;QACV,kBAAkB;QAClB,sBAAsB;QACtB,cAAc;QACd,aAAa;QACb,WAAW;QACX,eAAe;QACf,gBAAgB;QAChB,oBAAoB;QACpB,kBAAkB;KACrB,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAAC,CAAC;IAChE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAAC,CAAC;IAClE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAAC,CAAC;IACtE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAAC,CAAC;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAAC,CAAC;IAChE,IAAI,MAAM,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAAC,CAAC;IAC9F,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAAC,CAAC;IACtF,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAAC,CAAC;IACxE,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAAC,CAAC;IACxF,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;IAAC,CAAC;IAChG,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAAC,CAAC;IAChF,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAAC,CAAC;IAC1E,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAAC,CAAC;IAClF,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAAC,CAAC;IACpF,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAAC,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAAC,CAAC;IACxF,IAAI,UAAU,EAAE,CAAC;QACb,GAAG,CAAC,aAAa,CAAC,CAAA;IACtB,CAAC;AACL,CAAC;AACD,YAAY;AAEZ,gBAAgB;AAChB,SAAS,MAAM,CAAC,IAAkB,EAAE,QAAkB,EAAE,UAAyB;IAC7E,IAAI,UAAU,EAAE,CAAC;QACb,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACtB,GAAG,CAAC,uBAAuB,CAAC,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,CAAA;QACT,GAAG,CAAC,kBAAkB,CAAC,CAAA;QACvB,GAAG,CAAC,QAAQ,CAAC,CAAA;QACb,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACzB,GAAG,CAAC,UAAU,CAAC,CAAA;IACnB,CAAC;IACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,KAAK,GAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC3C,WAAW,GAAG,KAAK,CAAA;QACnB,yCAAyC;QACzC,sBAAsB,EAAE,CAAA;IAC5B,CAAC;SAAM,CAAC;QACJ,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAA;QAC7D,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,CAAA;QAE/C,8CAA8C;QAC9C,MAAM,mBAAmB,GAAG,0HAA0H,CAAA;QACtJ,MAAM,sBAAsB,GAAG,kQAAkQ,CAAA;QACjS,MAAM,SAAS,GAAG,UAAU;aACvB,KAAK,EAAE;aACP,GAAG,CACA,mBAAmB,EACnB,EAAE,aAAa,EAAE,UAAU,YAAY,EAAE,EAAE,EAC3C,KAAK,CACR;aACA,GAAG,CACA,sBAAsB,EACtB,EAAE,aAAa,EAAE,UAAU,YAAY,EAAE,EAAE,EAC3C,KAAK,CACR;aACA,OAAO,EAAE,CAAA;QACd,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,oBAAoB,GAAuB,IAAI,CAAC,KAAK,CACvD,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CACpB,CAAA;QACD,MAAM,WAAW,GAAG,qCAAqC,oBAAoB,CAAC,GAAG,EAAE,CAAA;QAEnF,MAAM,2BAA2B,GAA8B,IAAI,CAAC,KAAK,CACrE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CACpB,CAAA;QACD,IAAI,KAAK,GAAU;YACf,YAAY;YACZ,uBAAuB,EAAE,cAAc,CAAC,gCAAgC;YACxE,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,SAAS,CAAC,SAAS;SAClC,CAAA;QACD,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YAC/C,KAAK,GAAG;gBACJ,GAAG,KAAK;gBACR,QAAQ,EAAE,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ;aACjE,CAAA;QACL,CAAC;QACD,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAA;QACxD,CAAC;QACD,WAAW,GAAG,KAAK,CAAA;IACvB,CAAC;AACL,CAAC;AACD,SAAS,qBAAqB;IAC1B,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,0BAA0B,CAAA;QAC5C,MAAM,KAAK,GAAG,0KAA0K,CAAA;QAExL,+DAA+D;QAC/D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAA;QAErD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACtC,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1F,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,SAAS,GAGX,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAE/B,MAAM,cAAc,GAGhB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAA;IACxC,CAAC;IACD,MAAM,oBAAoB,GAAG,mFAAmF,CAAA;IAEhH,+DAA+D;IAC/D,MAAM,qBAAqB,GAAG,UAAU,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,IAAI,CAAA;IAEjF,MAAM,cAAc,GAGhB,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACrC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAA;AAC9D,CAAC;AACD,SAAS,sBAAsB;IAC3B,2CAA2C;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,WAAW,CAAC,uBAAuB,EAAE,CAAC;QAC/D,OAAM;IACV,CAAC;IACD,GAAG,CAAC,sCAAsC,CAAC,CAAA;IAC3C,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,qBAAqB,EAAE,CAAA;IAC7D,IAAI,KAAK,GAAU;QACf,YAAY,EAAE,cAAc,CAAC,WAAW;QACxC,uBAAuB,EAAE,cAAc,CAAC,gCAAgC;QACxE,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,UAAU,EAAE,SAAS,CAAC,SAAS;KAClC,CAAA;IACD,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAErC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAA;IACxD,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAEpC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAA;IACtD,CAAC;IACD,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;QAC7B,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,CAAA;IACxD,CAAC;IACD,WAAW,GAAG,KAAK,CAAA;AACvB,CAAC;AACD,YAAY;AAEZ,SAAS,OAAO;IACZ,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,SAAS;IACd,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;AACtC,CAAC;AAED,cAAc;AACd,SAAS,OAAO;IACZ,sBAAsB,EAAE,CAAA;IACxB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;IACtC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpF,MAAM,SAAS,GAAG,UAAU;SACvB,KAAK,EAAE;SACP,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;SACxB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;SAChC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC;SACtC,OAAO,EAAE,CAAA;IACd,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACzF,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,aAAa,GAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAc,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAA;IACnF,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACtB,MAAM,kBAAkB,GAAqB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC1E,QAAQ,CAAC,IAAI,CAAC;YACV,IAAI,EAAE;gBACF,UAAU,EAAE,qBAAqB;gBACjC,KAAK,EAAE;oBACH,IAAI,EAAE,YAAY;iBACrB;aACJ;YACD,WAAW,EAAE,uCAAuC;YACpD,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,iBAAiB;SAC1D,CAAC,CAAA;QACF,MAAM,mBAAmB,GAAuB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAE7E,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,OAAO;YACxG,OAAO,OAAO,CAAC,GAAG,CAAA;QACtB,CAAC,CAAC,CAAC,CAAA;QACH,MAAM,wBAAwB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAC5G,QAAQ,CAAC,OAAO,CAAC;YACb,IAAI,EAAE;gBACF,UAAU,EAAE,iCAAiC;gBAC7C,KAAK,EAAE;oBACH,IAAI,EAAE,iBAAiB;iBAC1B;aACJ;YACD,WAAW,EAAE,gDAAgD;YAC7D,YAAY,EAAE;gBACV,KAAK,EAAE,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,YAAY;oBACtE,IAAI,YAAY,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;wBACnD,IAAI,YAAY,CAAC,IAAI,KAAK,sCAAsC,EAAE,CAAC;4BAC/D,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAA;wBAC/C,CAAC;wBACD,OAAO;4BACH,OAAO,EAAE;gCACL,IAAI,EAAE;oCACF,KAAK,EAAE;wCACH,OAAO,EAAE,CAAC;gDACN,QAAQ,EAAE,GAAG;gDACb,KAAK,EAAE,sDAAsD;gDAC7D,OAAO,EAAE,GAAG;6CACf,CAAC;qCACL;oCACD,IAAI,EAAE,aAAa;oCACnB,UAAU,EAAE,gBAAgB;oCAC5B,GAAG,EAAE,2BAA2B;iCACnC;gCACD,UAAU,EAAE,sCAAsC;6BACrD;yBACJ,CAAA;oBACL,CAAC;oBACD,OAAO;wBACH,OAAO,EAAE;4BACL,IAAI,EAAE,YAAY,CAAC,IAAI;4BACvB,UAAU,EAAE,YAAY,CAAC,UAAU;yBACtC;qBACJ,CAAA;gBACL,CAAC,CAAC;aACL;SACJ,CAAC,CAAA;IACN,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC1C,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC7C,CAAC;AACD,SAAS,cAAc,CAAC,MAAc,EAAE,KAAa;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM;QACN,KAAK;QACL,iBAAiB,EAAE,KAAK;QACxB,oBAAoB,EAAE,EAAE;KAC3B,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;IAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD;;;;GAIG;AACH,SAAS,SAAS,CAAC,KAAa;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,6CAA6C;QAC7C,QAAQ,EAAE,iBAAiB,EAAE,yHAAyH;QACtJ,wCAAwC;QACxC,IAAI,EAAE,EAAE;QACR,gCAAgC;QAChC,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;QACX,iBAAiB,EAAE,KAAK;KAC3B,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IAC7C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,YAAY;AAEZ,gBAAgB;AAChB,SAAS,qBAAqB;IAC1B,OAAO,IAAI,kBAAkB,CACzB;QACI,IAAI,CAAC,IAAI,CAAC,MAAM;KACnB,EACD,EAAE,EACF,EAAE,CACL,CAAA;AACL,CAAC;AACD,SAAS,MAAM,CAAC,KAAa,EAAE,IAAwB,EAAE,KAAmB,EAAE,OAAmC;IAC7G,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,sBAAsB,EAAE,CAAA;IACxB,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;AACzC,CAAC;AACD,MAAM,WAAY,SAAQ,UAAU;IAGX;IAEA;IAJb,MAAM,CAAQ;IACtB,YACqB,KAAa,EAC9B,MAAc,EACG,KAAa;QAE9B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,MAAM,QAAQ,GAAG,iCAAiC,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAClF,KAAK,CAAC,+BAA+B,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAA;QARhD,UAAK,GAAL,KAAK,CAAQ;QAEb,UAAK,GAAL,KAAK,CAAQ;QAO9B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IAChC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACzE,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,IAAI,CAAC,OAAO,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,GAAG,iCAAiC,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,+BAA+B,CAAC,eAA+B;IACpE,OAAO;QACH,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;YAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAA;YAC/C,CAAC;YACD,OAAO,IAAI,aAAa,CAAC;gBACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC1B,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACnE,MAAM,CAAC,OAAO,CAAC,IAAI,EACnB,GAAG,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACnD;gBACD,GAAG,EAAE,GAAG,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC9C,UAAU,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK;oBACxF,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAC;gBACH,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;gBAC3D,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,GAAG,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBACnD,QAAQ,EAAE,cAAc;aAC3B,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO;YACjE,OAAO,IAAI,aAAa,CAAC;gBACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7E,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;gBACvB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACxF,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAChC,GAAG,iBAAiB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACrE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CACxD;gBACD,GAAG,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC5D,UAAU,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK;oBACxE,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAC;gBACH,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;gBACxD,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACjE,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;aAC1E,CAAC,CAAA;QACN,CAAC,CAAC;KACL,CAAA;AACL,CAAC;AACD,SAAS,iCAAiC,CAAC,eAA+B,EAAE,cAAsB,EAAE,KAAa;IAC7G,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WAC1E,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK,CAAA;AACrF,CAAC;AACD,YAAY;AAEZ,iBAAiB;AACjB,wDAAwD;AACxD,0DAA0D;AAC1D,SAAS,mBAAmB,CAAC,GAAW;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAW;IAClC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACvB,MAAM,IAAI,sBAAsB,CAAC,0BAA0B,CAAC,CAAA;IAChE,CAAC;IACD,sBAAsB,EAAE,CAAA;IACxB,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/D,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,GAAG,eAAe,GAAG,cAAc,EAAE,CAAA;YAEtD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;YAC3F,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;YACzG,MAAM,KAAK,GAAG,UAAU;iBACnB,KAAK,EAAE;iBACP,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC;iBAC1C,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAA;YAC5D,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBACzB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;gBACpD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAClC,CAAC;YACD,MAAM,OAAO,GAAG,KAAK;iBAChB,OAAO,EAAE,CAAA;YACd,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,sBAAsB,GAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChF,MAAM,uBAAuB,GAA0B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAClF,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACjF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAA;YAC/C,CAAC;YACD,MAAM,UAAU,GAAG,mCAAmC,YAAY,CAAC,EAAE,EAAE,CAAA;YACvE,MAAM,gCAAgC,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,WAAW,EAAE,OAAO;gBACnH,OAAO,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YACtE,CAAC,CAAC,CAAA;YAEF,IAAI,SAAS,GAAsB,EAAE,CAAA;YAErC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACtD,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBACnE,MAAM,aAAa,GAAG;oBAClB,QAAQ,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACtC,KAAK,IAAI;4BACL,OAAO,SAAS,CAAA;wBACpB;4BACI,MAAM,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;oBAC/E,CAAC;gBACL,CAAC,EAAE,CAAA;gBACH,MAAM,OAAO,GAAG,gCAAgC,CAAA;gBAChD,IAAI,QAAQ,GAAG,UAAU,aAAa,IAAI,CAAA;gBAC1C,QAAQ,IAAI,IAAI,CAAA;gBAChB,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,KAAK;oBACtD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;oBACpD,IAAI,GAAG,GAAG,IAAI,EAAE,WAAW,CAAA;oBAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACpB,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAA;oBACvF,CAAC;oBACD,QAAQ,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;oBACpF,QAAQ,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,CAAA;oBAC7B,QAAQ,IAAI,IAAI,CAAA;gBACpB,CAAC,CAAC,CAAA;gBACF,SAAS,GAAG,CAAC;wBACT,GAAG,EAAE,QAAQ;wBACb,IAAI,EAAE,aAAa;wBACnB,YAAY;4BACR,OAAO,QAAQ,CAAA;wBACnB,CAAC;wBACD,MAAM,EAAE,UAAU;qBACrB,CAAC,CAAA;YACN,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;YAE7D,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,OAAO,CAAA;YAClH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAA;YACxD,CAAC;YAED,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC1D,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YAC5G,MAAM,cAAc,GAAG,UAAU;iBAC5B,KAAK,EAAE;iBACP,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC;iBACxB,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,KAAK,CAAC;iBACxD,OAAO,EAAE,CAAA;YACd,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrE,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,aAAa,GAAyB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC9E,MAAM,wBAAwB,GAA2B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAE3F,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAE1F,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAA;YAC1B,MAAM,aAAa,GAAG,CAAC,IAAI,sBAAsB,CAAC;oBAC9C,8BAA8B;oBAC9B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,UAAU,MAA6B;wBAC5C,QAAQ,MAAM,EAAE,CAAC;4BACb,KAAK,SAAS;gCACV,OAAO,MAAM,CAAA;4BACjB,KAAK,SAAS;gCACV,OAAO,MAAM,CAAA;4BACjB;gCACI,MAAM,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;wBACtD,CAAC;oBACL,CAAC,CAAC,MAAM,CAAC;oBACT,SAAS,EAAE,WAAW;oBACtB,MAAM;oBACN,QAAQ;oBACR,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,QAAQ,CAAC,OAAO;oBAC1B,WAAW,EAAE,WAAW,CAAC,YAAY;oBACrC,UAAU,EAAE,WAAW,CAAC,WAAW;iBACtC,CAAC,CAAC,CAAA;YAEH,OAAO,IAAI,oBAAoB,CAAC;gBAC5B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAE,sBAAsB,CAAC,IAAI;gBACjC,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC3D,YAAY,CAAC,OAAO,CAAC,IAAI,EACzB,UAAU,EACV,gCAAgC,CAAC,GAAG,EACpC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CACnE;gBACD,GAAG,EAAE,QAAQ;gBACb,UAAU,EAAE,IAAI,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;oBACzF,OAAO,IAAI,SAAS,CAAC,GAAG,gBAAgB,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBAC7E,CAAC,CAAC,CAAC;gBACH,QAAQ;gBACR,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBACtE,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,sBAAsB,CAAC,aAAa;gBAC9C,QAAQ,EAAE,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;gBACxG,WAAW,EAAE,sBAAsB;gBACnC,KAAK,EAAE,IAAI,0BAA0B,CAAC,EAAE,EAAE,aAAa,CAAC;gBACxD,MAAM,EAAE,IAAI,WAAW,CAAC,cAAc,CAAC;gBACvC,SAAS;aACZ,CAAC,CAAA;QACN,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,WAAW,GAAG,oCAAoC,cAAc,EAAE,CAAA;YAExE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAA;YAE9D,MAAM,yBAAyB,GAA4B,IAAI,CAAC,KAAK,CACjE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAC3C,CAAA;YAED,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACtE,MAAM,IAAI,oBAAoB,CAAC,2CAA2C,CAAC,CAAA;YAC/E,CAAC;YAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxE,SAAS,YAAY,CAAC,WAA+B,IAAI,CAAC;gBAC1D,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;gBACtE,mGAAmG;gBAEnG,sGAAsG;gBACtG,kDAAkD;gBAClD,uFAAuF;gBACvF,kFAAkF;gBAClF,uEAAuE;gBACvE;;;;;;;;;;;;kBAYE;gBACF,wHAAwH;gBACxH,kLAAkL;gBAClL,0EAA0E;gBAC1E,2DAA2D;gBAC3D,EAAE;YACN,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAA;YACxB,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,MAAM,CAAA;YAC/I,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAA;YACxD,CAAC;YAED,MAAM,qBAAqB,GACvB,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,SAAS;gBAClE,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI;gBAChE,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAA;YAEtE,MAAM,WAAW,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;YAC1D,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,WAAW,EAAE,OAAO;gBAC1G,OAAO,WAAW,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;YACtE,CAAC,CAAC,CAAA;YAEF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC1F,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;YAClG,MAAM,KAAK,GAAG,UAAU;iBACnB,KAAK,EAAE;iBACP,GAAG,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,KAAK,CAAC;iBACpD,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAC/C,IAAI,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC1E,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;gBACxD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAClC,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAA;YAC/B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,kBAAkB,GAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAC5E,MAAM,aAAa,GAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAEvE,MAAM,SAAS,GAAG;gBACd,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACtD,OAAO,EAAE,CAAA;gBACb,CAAC;gBACD,MAAM,mBAAmB,GAAuB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBAC3E,MAAM,aAAa,GAAG;oBAClB,QAAQ,mBAAmB,CAAC,QAAQ,EAAE,CAAC;wBACnC,KAAK,IAAI;4BACL,OAAO,SAAS,CAAA;wBACpB;4BACI,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;oBAC5E,CAAC;gBACL,CAAC,EAAE,CAAA;gBAEH,IAAI,QAAQ,GAAG,UAAU,aAAa,IAAI,CAAA;gBAC1C,QAAQ,IAAI,IAAI,CAAA;gBAChB,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE,KAAK;oBACxD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;wBACrB,OAAM;oBACV,CAAC;oBACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;oBACnD,IAAI,GAAG,GAAG,IAAI,EAAE,OAAO,CAAA;oBACvB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;wBACpB,GAAG,GAAG,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAA;oBAClF,CAAC;oBACD,QAAQ,IAAI,GAAG,gCAAgC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,CAAA;oBACjH,QAAQ,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;oBAC7C,QAAQ,IAAI,IAAI,CAAA;gBACpB,CAAC,CAAC,CAAA;gBACF,OAAO,CAAC;wBACJ,GAAG,EAAE,WAAW;wBAChB,IAAI,EAAE,aAAa;wBACnB,YAAY;4BACR,OAAO,QAAQ,CAAA;wBACnB,CAAC;wBACD,MAAM,EAAE,UAAU;qBACrB,CAAC,CAAA;YACN,CAAC,EAAE,CAAA;YAEH,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAEhG,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAA;YAC1B,MAAM,aAAa,GAAG,CAAC,IAAI,sBAAsB,CAAC;oBAC9C,8BAA8B;oBAC9B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,MAAM;oBACf,SAAS,EAAE,WAAW;oBACtB,MAAM;oBACN,QAAQ;oBACR,GAAG,EAAE,QAAQ;oBACb,QAAQ,EAAE,QAAQ,CAAC,OAAO;oBAC1B,WAAW,EAAE,WAAW,CAAC,YAAY;oBACrC,UAAU,EAAE,WAAW,CAAC,WAAW;iBACtC,CAAC,CAAC,CAAA;YAEH,MAAM,QAAQ,GAAG;gBACb,IAAI,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACzE,OAAO,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;gBACzG,CAAC;qBAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;oBAC3E,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;gBAClG,CAAC;gBACD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC,EAAE,CAAA;YAEH,OAAO,IAAI,oBAAoB,CAAC;gBAC5B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gBACxD,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACvD,qBAAqB,CAAC,IAAI,EAC1B,GAAG,eAAe,GAAG,WAAW,EAAE,EAClC,yBAAyB,CAAC,GAAG,CAChC;gBACD,GAAG,EAAE,WAAW;gBAChB,UAAU,EAAE,IAAI,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK;oBACzG,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjD,CAAC,CAAC,CAAC;gBACH,QAAQ;gBACR,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG;gBAC3D,QAAQ;gBACR,WAAW,EAAE,yBAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe;gBAC1E,KAAK,EAAE,IAAI,0BAA0B,CAAC,EAAE,EAAE,aAAa,CAAC;gBACxD,MAAM,EAAE,IAAI,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7F,SAAS;aACZ,CAAC,CAAA;QACN,CAAC;QACD;YACI,MAAM,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAC5D,CAAC;AACL,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAW;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC1C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,YAAY,GAAgB,kBAAiC,CAAA;IACnE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,CAAA;AAC3C,CAAC;AACD,SAAS,kBAAkB,CAAC,WAAmB;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,gBAAgB,WAAW,EAAE;KACrC,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;IAC5D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AAED,SAAS,eAAe,CAAC,cAAsB;IAC3C,MAAM,qBAAqB,GAAG,mEAAmE,CAAA;IACjG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,qBAAqB,GAAG,cAAc,EAAE,CAAC,CAAA;IAChE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACtC,OAAO;QACH,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE;KACnE,CAAA;AACL,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB;IAOpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,yDAAyD,WAAW,EAAE,CAAC,CAAA;IAC3F,OAAO;QACH,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,OAAO,EAAE;YACL,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,WAAW;YAC3B,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE;SACtD;KACJ,CAAA;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACvC,MAAM,wBAAwB,GAAG,kFAAkF,CAAA;IACnH,MAAM,oBAAoB,GAAG,qBAAqB,CAAA;IAClD,OAAO;QACH,GAAG,EAAE,GAAG,wBAAwB,GAAG,OAAO,GAAG,oBAAoB,EAAE;QACnE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE;KACnE,CAAA;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAsB;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,mBAAmB,cAAc,EAAE;KAC3C,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;IAC5D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,iBAAiB,WAAW,EAAE;KACtC,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IACjD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAO3C,MAAM,iBAAiB,GAAG,mDAAmD,CAAA;IAC7E,OAAO;QACH,GAAG,EAAE,GAAG,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE;QAClD,OAAO,EAAE;YACL,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE;YACnD,MAAM,EAAE,kBAAkB;SAC7B;KACJ,CAAA;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,aAAqB;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,kBAAkB,aAAa,EAAE;QACtC,MAAM,EAAE,EAAE;QACV,iBAAiB,EAAE,IAAI;KAC1B,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAA;IAC5D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,YAAY;AAEZ,mBAAmB;AACnB,wDAAwD;AACxD,2DAA2D;AAC3D,oDAAoD;AACpD,SAAS,aAAa,CAAC,GAAW;IAC9B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AACD,SAAS,eAAe,CAAC,KAAa;IAClC,sBAAsB,EAAE,CAAA;IACxB,OAAO,IAAI,qBAAqB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAClD,CAAC;AACD,MAAM,qBAAsB,SAAQ,aAAa;IAGxB;IAEA;IAJb,MAAM,CAAQ;IACtB,YACqB,KAAa,EAC9B,MAAc,EACG,KAAa;QAE9B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,MAAM,QAAQ,GAAG,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC1E,KAAK,CAAC,uBAAuB,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAA;QARxC,UAAK,GAAL,KAAK,CAAQ;QAEb,UAAK,GAAL,KAAK,CAAQ;QAO9B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IAChC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACzE,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO,GAAG,yBAAyB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAClF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,uBAAuB,CAAC,eAA+B;IAC5D,OAAO;QACH,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;YAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;YACrD,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC;gBACxB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACrB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACzE,YAAY,CAAC,OAAO,CAAC,IAAI,EACzB,GAAG,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CACzD;gBACD,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;gBAC5D,GAAG,EAAE,GAAG,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACxD,oDAAoD;gBACpD,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB;aAC3E,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,QAAQ;YACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,SAAS;gBACjE,OAAO,SAAS,CAAC,GAAG,KAAK,SAAS,CAAA;YACtC,CAAC,CAAC,EAAE,KAAK,CAAA;YACT,MAAM,iBAAiB,GAAG;gBACtB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9E,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;gBACxB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC/E,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAC/B,GAAG,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAC7D;gBACD,GAAG,EAAE,GAAG,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC9D,oDAAoD;gBACpD,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB;aACtF,CAAA;YACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC;gBACxB,GAAG,iBAAiB;gBACpB,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;aACnD,CAAC,CAAA;QACN,CAAC,CAAC;KACL,CAAA;AACL,CAAC;AACD,SAAS,yBAAyB,CAAC,eAA+B,EAAE,cAAsB,EAAE,KAAa;IACrG,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WAC1E,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK,CAAA;AACtF,CAAC;AACD,SAAS,WAAW,CAAC,GAAW;IAC5B,sBAAsB,EAAE,CAAA;IACxB,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC9C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,aAAa,GAAiB,mBAAmC,CAAA;IACvE,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACvC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,wFAAwF;YACxF,wHAAwH;YAExH,MAAM,gBAAgB,GAAG,EAAW,CAAA;YACpC,MAAM,MAAM,GAAG,CAAC,CAAA;YAEhB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACvF,MAAM,uBAAuB,GAAkB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAEnG,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC7E,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;YACrD,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;YAEnG,OAAO,IAAI,uBAAuB,CAAC;gBAC/B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;gBAClD,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC3D,YAAY,CAAC,OAAO,CAAC,IAAI,EACzB,GAAG,iBAAiB,GAAG,YAAY,CAAC,EAAE,EAAE,EACxC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CACrG;gBACD,QAAQ,EAAE,SAAS;gBACnB,GAAG,EAAE,GAAG,gBAAgB,GAAG,eAAe,EAAE;gBAC5C,UAAU,EAAE,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU;gBACrE,QAAQ,EAAE,IAAI,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,YAAY,EAAE,SAAS,CAAC;aACxH,CAAC,CAAA;QACN,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,sBAAsB,CAAC,yBAAyB,CAAC,CAAA;YAC/D,CAAC;YACD,MAAM,gBAAgB,GAAG,EAAW,CAAA;YACpC,MAAM,MAAM,GAAG,CAAC,CAAA;YAEhB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACvF,MAAM,iBAAiB,GAAqB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChG,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAA;YAE5D,OAAO,IAAI,uBAAuB,CAAC;gBAC/B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC5C,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC1D,KAAK,CAAC,IAAI,EACV,GAAG,iBAAiB,GAAG,KAAK,CAAC,QAAQ,EAAE,EACvC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAC9D;gBACD,GAAG,EAAE,GAAG,gBAAgB,GAAG,eAAe,EAAE;gBAC5C,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU;gBAChE,QAAQ,EAAE,IAAI,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;aACnG,CAAC,CAAA;QACN,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,sBAAsB,CAAC,2BAA2B,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,eAAe,GAAmB,eAAiC,CAAA;YACzE,QAAQ,eAAe,EAAE,CAAC;gBACtB,KAAK,eAAe,CAAC,CAAC,CAAC;oBACnB,MAAM,KAAK,GAAG,EAAE,CAAA;oBAChB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;oBACtD,MAAM,QAAQ,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC5F,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;oBACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;oBAC5C,CAAC;oBACD,OAAO,IAAI,uBAAuB,CAAC;wBAC/B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/D,IAAI,EAAE,eAAe;wBACrB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACpD,QAAQ,EAAE,2DAA2D;wBACrE,GAAG,eAAe,GAAG,QAAQ,EAAE,CAClC;wBACD,GAAG,EAAE,mDAAmD;wBACxD,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU;wBACxD,QAAQ,EAAE,IAAI,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC;qBACvD,CAAC,CAAA;gBACN,CAAC;gBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,MAAM,KAAK,GAAG,EAAE,CAAA;oBAChB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;oBACnD,MAAM,QAAQ,GAAwB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAA;oBACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBACzB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;oBAC5C,CAAC;oBACD,OAAO,IAAI,uBAAuB,CAAC;wBAC/B,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/D,IAAI,EAAE,aAAa;wBACnB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACpD,QAAQ,EAAE,2DAA2D;wBACrE,GAAG,eAAe,GAAG,QAAQ,EAAE,CAClC;wBACD,GAAG,EAAE,4CAA4C;wBACjD,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU;wBACtD,QAAQ,EAAE,IAAI,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC;qBACrD,CAAC,CAAA;gBACN,CAAC;gBACD;oBACI,MAAM,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;YAC/D,CAAC;QAEL,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,MAAM,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;AACL,CAAC;AACD,MAAM,kBAAmB,SAAQ,UAAU;IAKlB;IAJb,MAAM,CAAQ;IACL,YAAY,CAAQ;IACrC,YACI,MAAc,EACG,gBAAwB,EACzC,mBAA0C;QAE1C,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAA;QAE5E,MAAM,QAAQ,GAAG,0BAA0B,CAAC,mBAAmB,CAAC,CAAA;QAEhE,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,gBAAgB,CAAC,CAAA;QAPxC,qBAAgB,GAAhB,gBAAgB,CAAQ;QAQzC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChF,MAAM,QAAQ,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAA;QACrD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACtE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,0BAA0B,CAAC,QAA+B;IAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO;QAChE,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;YAC/B,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAChG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EACxC,GAAG,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC3E,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAChE;YACD,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;YAC/E,GAAG,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChE,UAAU,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK;gBAChF,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACjD,CAAC,CAAC,CAAC;YACH,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;YAChE,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;SACxE,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,MAAM,gBAAiB,SAAQ,UAAU;IAKhB;IAJb,MAAM,CAAQ;IACL,YAAY,CAAQ;IACrC,YACI,MAAc,EACG,gBAAwB,EACzC,mBAAwC;QAExC,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAA;QAE1E,MAAM,QAAQ,GAAG,wBAAwB,CAAC,mBAAmB,CAAC,CAAA;QAE9D,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,gBAAgB,CAAC,CAAA;QAPxC,qBAAgB,GAAhB,gBAAgB,CAAQ;QAQzC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC7E,MAAM,QAAQ,GAAwB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE1F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACtE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,wBAAwB,CAAC,QAA6B;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;QAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,eAAe,CAAC,qBAAqB,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;YAC3B,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACnE,MAAM,CAAC,OAAO,CAAC,IAAI,EACnB,GAAG,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACnD;YACD,QAAQ,EAAE,cAAc;YACxB,GAAG,EAAE,GAAG,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACzD,UAAU,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK;gBACzF,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACjD,CAAC,CAAC,CAAC;YACH,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;YAC5D,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,GAAG,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;SACjE,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,MAAM,oBAAqB,SAAQ,UAAU;IAIpB;IAEA;IALb,MAAM,CAAQ;IACL,YAAY,CAAQ;IACrC,YACqB,eAAuB,EACxC,MAAc,EACG,gBAAwB,EACzC,iBAAmC;QAEnC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAA;QAEzE,MAAM,KAAK,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE/E,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,gBAAgB,CAAC,CAAA;QATrC,oBAAe,GAAf,eAAe,CAAQ;QAEvB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAQzC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;QACvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC/G,MAAM,yBAAyB,GAA4B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE/G,MAAM,KAAK,GAAG,sBAAsB,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QACvF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACtE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,sBAAsB,CAAC,OAAwB;IACpD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,uBAAuB;QACtD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAA;QAChD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,eAAe,GAAG,YAAY,EAAE,CAAA;QAC/C,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACnE,MAAM,CAAC,OAAO,CAAC,IAAI,EACnB,GAAG,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAChD,oDAAoD;aACvD;YACD,GAAG;YACH,UAAU,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;gBAC9E,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACnD,CAAC,CAAC,CAAC;YACH,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB,GAAG,IAAI;YACrD,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACnC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;SACjF,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD;;;;;;GAMG;AACH,SAAS,4BAA4B,CAAC,eAAuB,EAAE,MAAc,EAAE,KAAa;IACxF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,oBAAoB,eAAe,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACf,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAA;IAC9D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,eAAuB,EAAE,MAAc,EAAE,KAAa;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,oBAAoB,eAAe,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACf,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,MAAM,UAAW,SAAQ,UAAU;IAOV;IAEA;IARb,MAAM,CAAQ;IACL,UAAU,CAAY;IACtB,YAAY,CAAe;IAC3B,SAAS,CAAQ;IACjB,YAAY,CAAQ;IACrC,YACqB,YAAoB,EACrC,MAAc,EACG,gBAAwB,EACzC,uBAAsC,EACtC,YAA2B,EAC3B,SAAiB;QAEjB,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAA;QAC9E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;YAC3G,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnD,CAAC,CAAC,CAAC,CAAA;QAEH,MAAM,KAAK,GAAG,mBAAmB,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAEtH,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,gBAAgB,CAAC,CAAA;QAdrC,iBAAY,GAAZ,YAAY,CAAQ;QAEpB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAazC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACjG,MAAM,qBAAqB,GAAwB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAEvG,MAAM,KAAK,GAAG,mBAAmB,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACnI,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAA;QACtE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAA;QACpC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,mBAAmB,CAAC,MAAc,EAAE,UAAsB,EAAE,YAA2B,EAAE,SAAiB;IAC/G,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;QACnC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAC/C,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,eAAe,GAAG,YAAY,EAAE,CAAA;QAC/C,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACtB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACnE,MAAM,CAAC,OAAO,CAAC,IAAI,EACnB,GAAG,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAChD,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAC/J;YACD,GAAG;YACH,UAAU;YACV,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;YACvD,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1C,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,GAAG;YACb,QAAQ,EAAE,SAAS;SACtB,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,YAAoB,EAAE,MAAc,EAAE,KAAa;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,iBAAiB,YAAY,EAAE;QACpC,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACf,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAA;IACzD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,YAAoB,EAAE,MAAc,EAAE,KAAa;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,iBAAiB,YAAY,EAAE;QACpC,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;KACf,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IACjD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,YAAY;AAEZ,iBAAiB;AACjB,uDAAuD;AACvD,uDAAuD;AACvD,yDAAyD;AACzD,yCAAyC;AACzC,wDAAwD;AACxD,+DAA+D;AAC/D,SAAS,YAAY,CAAC,GAAW;IAC7B,OAAO,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AACD,SAAS,cAAc,CAAC,KAAa;IACjC,sBAAsB,EAAE,CAAA;IACxB,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AAChD,CAAC;AACD,MAAM,mBAAoB,SAAQ,YAAY;IAGrB;IAEA;IAJb,MAAM,CAAQ;IACtB,YACqB,KAAa,EAC9B,MAAc,EACG,KAAa;QAE9B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC1D,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACzE,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAA;QARvC,UAAK,GAAL,KAAK,CAAQ;QAEb,UAAK,GAAL,KAAK,CAAQ;QAO9B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IAChC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACzE,MAAM,eAAe,GAAmB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE5F,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,wBAAwB,CAAC,eAA+B,EAAE,cAAsB,EAAE,KAAa;IACpG,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WACzE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WAC1E,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WAC5E,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK;WACvE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,GAAG,cAAc,GAAG,KAAK,CAAA;AACnF,CAAC;AACD,SAAS,sBAAsB,CAAC,eAA+B;IAC3D,OAAO;QACH,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,MAAM;YAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB,CAAA;YAC5F,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;gBAC9B,SAAS;gBACT,GAAG,EAAE,GAAG,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aAC7D,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,QAAQ;YAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC,CAAA;YAC5D,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9E,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;gBACxB,SAAS;gBACT,GAAG,EAAE,GAAG,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aAC7D,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS;YACrE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,CAAA;YAC9D,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/E,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI;gBACzB,SAAS;gBACT,GAAG,EAAE,GAAG,eAAe,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aAC9D,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB,CAAA;YAC7E,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;gBAC3B,SAAS;gBACT,GAAG,EAAE,GAAG,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;aACjD,CAAC,CAAA;QACN,CAAC,CAAC;QACF,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAA;YAC1D,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACrB,SAAS;gBACT,GAAG,EAAE,GAAG,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aAC1D,CAAC,CAAA;QACN,CAAC,CAAC;KACL,CAAA;AACL,CAAC;AACD;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,UAAU,EAAE,KAAK;QACjB,MAAM;QACN,8BAA8B;QAC9B,KAAK;QACL,kBAAkB,EAAE,CAAC;QACrB,iBAAiB,EAAE,IAAI;QACvB,6BAA6B,EAAE,KAAK;QACpC,kBAAkB,EAAE,IAAI;QACxB,yBAAyB,EAAE,KAAK;KACnC,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,UAAU,CAAC,GAAW;IAC3B,sBAAsB,EAAE,CAAA;IACxB,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/D,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,yFAAyF;YACzF,MAAM,KAAK,GAAG,CAAC,CAAA;YAEf,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;YACtE,MAAM,uBAAuB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAC3G,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAA;YACnF,MAAM,WAAW,GAAG,GAAG,kBAAkB,GAAG,cAAc,EAAE,CAAA;YAC5D,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAA;YAE1D,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;gBAC3E,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAA;gBACtD,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBACjC,CAAC;gBACD,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YACF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,KAAK,OAAO;gBAClE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;gBAC7C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAEzD,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAA;YACvD,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI;gBACJ,SAAS,EAAE,oBAAoB;gBAC/B,GAAG,EAAE,WAAW;aACnB,CAAC,CAAA;QACN,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;oBACvB,MAAM,IAAI,sBAAsB,CAAC,+BAA+B,CAAC,CAAA;gBACrE,CAAC;gBAED,iCAAiC;gBACjC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC9E,MAAM,mBAAmB,GAAuB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;gBAE5G,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,OAAO;oBACxG,OAAO,OAAO,CAAC,GAAG,CAAA;gBACtB,CAAC,CAAC,CAAC,CAAA;gBACH,MAAM,wBAAwB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;gBAE5G,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,YAAY;oBACrF,IAAI,YAAY,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;wBACnD,OAAO,CAAC;gCACJ,KAAK,EAAE;oCACH,OAAO,EAAE,CAAC;4CACN,QAAQ,EAAE,GAAG;4CACb,KAAK,EAAE,sDAAsD;yCAChE,CAAC;iCACL;gCACD,IAAI,EAAE,aAAa;gCACnB,UAAU,EAAE,gBAAgB;gCAC5B,GAAG,EAAE,2BAA2B;6BACnC,CAAC,CAAA;oBACN,CAAC;oBACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAA;oBAC9C,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;wBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;oBACjC,CAAC;oBACD,OAAO,EAAE,CAAA;gBACb,CAAC,CAAC,CAAA;gBACF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;gBAC5C,CAAC;gBACD,MAAM,kCAAkC,GAAG,UAAU,YAAY;oBAC7D,QAAQ,YAAY,CAAC,UAAU,EAAE,CAAC;wBAC9B,KAAK,OAAO;4BACR,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBAChD,KAAK,UAAU;4BACX,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBACxD,KAAK,gBAAgB;4BACjB,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBAC7C;4BACI,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;oBAC7C,CAAC;gBACL,CAAC,CAAC,kBAAkB,CAAC,CAAA;gBAErB,IAAI,kCAAkC,KAAK,SAAS,EAAE,CAAC;oBACnD,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAA;gBACvD,CAAC;gBACD,OAAO,IAAI,eAAe,CAAC;oBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9D,IAAI,EAAE,iBAAiB;oBACvB,SAAS,EAAE,kCAAkC;oBAC7C,GAAG,EAAE,gDAAgD;iBACxD,CAAC,CAAA;YACN,CAAC;YAED,yFAAyF;YACzF,MAAM,KAAK,GAAG,CAAC,CAAA;YAEf,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YACrG,MAAM,oBAAoB,GAAuB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YACrG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBACjE,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAA;YACzD,CAAC;YACD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAA;YAC3E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;gBACnF,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;gBACjB,CAAC;gBACD,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YACF,MAAM,WAAW,GAAG,GAAG,eAAe,GAAG,cAAc,EAAE,CAAA;YAGzD,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;gBAChF,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;oBACpD,OAAO,EAAE,CAAA;gBACb,CAAC;gBACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAA;gBACtD,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBACjC,CAAC;gBACD,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YACF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,kCAAkC,GAAG,kBAAkB,CAAC,UAAU,KAAK,OAAO;gBAChF,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;gBAC7C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAEzD,IAAI,kCAAkC,KAAK,SAAS,EAAE,CAAC;gBACnD,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAA;YACvD,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI;gBACJ,SAAS,EAAE,kCAAkC;gBAC7C,GAAG,EAAE,WAAW;aACnB,CAAC,CAAA;QACN,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,aAAa,GAAyB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAEhG,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAA;YAClE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,CAAA;YAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,mBAAmB,CAAC,CAAA;YAClD,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI;gBAC5C,SAAS;gBACT,GAAG,EAAE,GAAG,eAAe,GAAG,cAAc,EAAE;gBAC1C,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe;aACjE,CAAC,CAAA;QAEN,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACV,MAAM,GAAG,GAAG,gEAAgE,cAAc,kDAAkD,CAAA;YAC5I,MAAM,aAAa,GAIf,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CACzB,GAAG,EACH,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CACR,CAAC,IAAI,CAAC,CAAA;YACP,OAAO,IAAI,eAAe,CAAC;gBACvB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,GAAG,EAAE,GAAG,eAAe,GAAG,cAAc,EAAE;gBAC1C,WAAW,EAAE,aAAa,CAAC,eAAe;aAC7C,CAAC,CAAA;QACN,CAAC;QACD,KAAK,QAAQ;YACT,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAC7D,MAAM,wBAAwB,GAA2B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAC7G,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB,CAAA;YAC1H,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAC7F,MAAM,OAAO,GAAG;gBACZ,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;gBAC5D,SAAS;gBACT,GAAG,EAAE,GAAG,iBAAiB,GAAG,cAAc,EAAE;gBAC5C,WAAW,EAAE,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB;gBAC7E,WAAW,EAAE,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;aAChF,CAAA;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;YACvC,CAAC;YACD,OAAO,IAAI,eAAe,CAAC;gBACvB,GAAG,OAAO;gBACV,MAAM;aACT,CAAC,CAAA;QACN,KAAK,cAAc;YACf,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAA;QAChD;YACI,MAAM,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAC5D,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAa;IACtC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,0BAA0B;WACnD,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,wBAAwB;WACjD,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,qBAAqB;WAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,iCAAiC,CAAA;AACrE,CAAC;AACD,SAAS,gBAAgB,CACrB,WAAmB,EACnB,cAGC,EACD,iBAGC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,gBAAgB,WAAW,EAAE;QAClC,cAAc;QACd,iBAAiB;KACpB,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;IACnD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,wBAAwB,CAC7B,MAAc,EACd,KAAa;IAEb,MAAM,GAAG,GAAG,2DAA2D,WAAW,CAAC,QAAQ,uCAAuC,MAAM,UAAU,KAAK,yCAAyC,CAAA;IAChM,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,4BAA4B,CAAC,IAAc;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI;KACP,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAA;IACvE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,iBAAiB,CAAC,GAAW;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC1C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,CAAA;IAChD,IAAI,YAAY,GAAgB,kBAAiC,CAAA;IACjE,IAAI,UAAU,EAAE,CAAC;QACb,YAAY,GAAG,SAAS,CAAA;IAC5B,CAAC;IACD,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACtC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;AACtH,CAAC;AACD,YAAY;AAEZ,yBAAyB;AACzB,SAAS,sBAAsB;IAC3B,OAAO,IAAI,kBAAkB,CACzB;QACI,IAAI,CAAC,IAAI,CAAC,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM;KACnB,EACD;QACI,IAAI,CAAC,KAAK,CAAC,aAAa;KAC3B,EACD,EAAE,CACL,CAAA;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,GAAW,EAAE,IAAoC,EAAE,KAAmB,EAAE,OAAmC;IACnI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,sBAAsB,EAAE,CAAA;IACxB,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/D,QAAQ,YAAY,EAAE,CAAC;QACnB,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,MAAM,aAAa,GAAG,EAAE,CAAA;YACxB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,cAAc,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;YAC9E,MAAM,uBAAuB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAE3G,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAA;YACnF,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAA;YAE1D,MAAM,cAAc,GAAG,cAAc,CAAA;YACrC,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;gBAC3E,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAA;gBACtD,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;gBACjC,CAAC;gBACD,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;YACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;YACD,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAA;YACjD,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CACjC,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC1D,IAAI,EACJ,GAAG,kBAAkB,GAAG,cAAc,EAAE,EACxC,kBAAkB,CAAC,UAAU,KAAK,OAAO;gBACrC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;gBAC7C,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAC5D,CAAA;YACD,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,aAAa,CAAC,CAAA;QACrI,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACX,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;oBACvB,MAAM,IAAI,sBAAsB,CAAC,+BAA+B,CAAC,CAAA;gBACrE,CAAC;gBAED,iCAAiC;gBACjC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC9E,MAAM,mBAAmB,GAAuB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;gBAE5G,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,OAAO;oBACxG,OAAO,OAAO,CAAC,GAAG,CAAA;gBACtB,CAAC,CAAC,CAAC,CAAA;gBACH,MAAM,wBAAwB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;gBAE5G,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,YAAY;oBACrF,IAAI,YAAY,CAAC,UAAU,KAAK,oBAAoB,EAAE,CAAC;wBACnD,OAAO,CAAC;gCACJ,KAAK,EAAE;oCACH,OAAO,EAAE,CAAC;4CACN,QAAQ,EAAE,GAAG;4CACb,KAAK,EAAE,sDAAsD;yCAChE,CAAC;iCACL;gCACD,IAAI,EAAE,aAAa;gCACnB,UAAU,EAAE,gBAAgB;gCAC5B,GAAG,EAAE,2BAA2B;6BACnC,CAAC,CAAA;oBACN,CAAC;oBACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAA;oBAC9C,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;wBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;oBACjC,CAAC;oBACD,OAAO,EAAE,CAAA;gBACb,CAAC,CAAC,CAAA;gBAEF,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;gBAC5C,CAAC;gBACD,MAAM,kCAAkC,GAAG,UAAU,YAAY;oBAC7D,QAAQ,YAAY,CAAC,UAAU,EAAE,CAAC;wBAC9B,KAAK,OAAO;4BACR,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBAChD,KAAK,UAAU;4BACX,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBACxD,KAAK,gBAAgB;4BACjB,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;wBAC7C;4BACI,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAA;oBAC7C,CAAC;gBACL,CAAC,CAAC,kBAAkB,CAAC,CAAA;gBAErB,IAAI,kCAAkC,KAAK,SAAS,EAAE,CAAC;oBACnD,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAA;gBACvD,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CACjC,IAAI,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC7D,iBAAiB,EACjB,GAAG,eAAe,iBAAiB,EACnC,kCAAkC,CACrC,CAAA;gBAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,YAAY;oBACtD,OAAO,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;gBACpD,CAAC,CAAC,CAAA;gBACF,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC7C,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,CAAA;YACf,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;YAChH,MAAM,oBAAoB,GAAuB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAErG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBACjE,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAA;YACzD,CAAC;YACD,MAAM,SAAS,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAErF,OAAO,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC7C,CAAC;QACD,KAAK,MAAM;YACP,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;YAC3F,MAAM,cAAc,GAAG,EAAE,CAAA;YACzB,MAAM,cAAc,GAAG,CAAC,CAAA;YACxB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,cAAc,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;YAC9G,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,cAAc,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;YACjH,MAAM,SAAS,GAAG,UAAU;iBACvB,KAAK,EAAE;iBACP,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC;iBAC1C,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC;iBAC1C,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC;iBAC1C,OAAO,EAAE,CAAA;YACd,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzF,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,sBAAsB,GAAyB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAClF,MAAM,MAAM,GAAG,IAAI,kBAAkB,CACjC,IAAI,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC1D,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAC/C,GAAG,eAAe,GAAG,cAAc,EAAE,EACrC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CACtE,CAAA;YACD,QAAQ,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBAC5D,KAAK,WAAW,CAAC,CAAC,CAAC;oBACf,MAAM,iBAAiB,GAAyB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC7E,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;oBAErH,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;gBAC5G,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACb,MAAM,iBAAiB,GAA4B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;oBAChF,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;gBACzF,CAAC;gBACD;oBACI,MAAM,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;YAC1F,CAAC;QACL,KAAK,QAAQ;YACT,OAAO,IAAI,sBAAsB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC5D,KAAK,MAAM;YACP,OAAO,IAAI,iBAAiB,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QACvD,KAAK,cAAc;YACf,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAA;QAChD;YACI,MAAM,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAC5D,CAAC;AACL,CAAC;AACD;;;;;GAKG;AACH,SAAS,WAAW,CAAC,QAAmB,EAAE,aAAqB;IAC3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,IAAI;QACrD,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,EAAE,CAAA;IACb,CAAC,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,UAAU,OAAO;QACvD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAA;QAElG,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;YAC3E,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;gBACpD,OAAO,EAAE,CAAA;YACb,CAAC;YACD,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAA;YAEtD,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU;mBAC3C,oBAAoB,CAAC,UAAU,KAAK,OAAO;mBAC3C,oBAAoB,CAAC,UAAU,KAAK,SAAS;mBAC7C,oBAAoB,CAAC,UAAU,KAAK,gBAAgB,EACzD,CAAC;gBACC,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACjC,CAAC;YACD,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;QACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QACD,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QAC3C,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG;YACX,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;gBAC3B,OAAO,IAAI,kBAAkB,CACzB,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC/D,YAAY,EACZ,OAAO,CAAC,WAAW,CACtB,CAAA;YACL,CAAC;YACD,OAAO,IAAI,kBAAkB,CACzB,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACpE,YAAY,EACZ,GAAG,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CACrD,CAAA;QACL,CAAC,EAAE,CAAA;QACH,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,QAAQ;YACvC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAChD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAClB,CAAC;AACD,MAAM,sBAAuB,SAAQ,aAAa;IAKzB;IAEA;IANb,MAAM,CAAQ;IACL,MAAM,CAAoB;IAC1B,YAAY,CAAQ;IACrC,YACqB,aAAqB,EACtC,MAAc,EACG,KAAa;QAG9B,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAC5F,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7G,MAAM,SAAS,GAAG,UAAU;aACvB,KAAK,EAAE;aACP,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,CAAC;aAC1C,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,KAAK,CAAC;aAChD,OAAO,EAAE,CAAA;QACd,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3D,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,iBAAiB,GAA2B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/E,MAAM,oBAAoB,GAAwB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAE/E,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,sBAAsB,CAAA;QACpH,MAAM,MAAM,GAAG,IAAI,kBAAkB,CACjC,IAAI,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACzD,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAC/C,GAAG,iBAAiB,GAAG,aAAa,EAAE,EACtC,UAAU,EACV,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAC5D,CAAA;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAA;QAErF,KAAK,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC,CAAA;QA5BrE,kBAAa,GAAb,aAAa,CAAQ;QAErB,UAAK,GAAL,KAAK,CAAQ;QA4B9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACtF,MAAM,oBAAoB,GAAwB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACtG,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACpE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QAC3D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QACtC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,kBAAkB,CAAC,oBAAyC,EAAE,MAA0B;IAC7F,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK;QAClF,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;QAC5C,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC;YACxB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;YACjE,GAAG,EAAE,GAAG,gBAAgB,GAAG,aAAa,CAAC,EAAE,EAAE;YAC7C,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,UAAU;YAC3C,SAAS;SACZ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,SAAS,gBAAgB,CACrB,aAAqB,EACrB,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,kBAAkB,aAAa,EAAE;QACtC,MAAM;QACN,KAAK;KAER,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAA;IAClE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAgG,EAAE,iBAAqC;IAChK,QAAQ,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,KAAK,OAAO;YACR,CAAC;gBACG,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,IAAI,eAAe,CAAC,sBAAsB,CAAC,CAAA;gBACrD,CAAC;gBACD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;gBACtD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,eAAe,CAAC,yBAAyB,CAAC,CAAA;gBACxD,CAAC;gBACD,OAAO,IAAI,gBAAgB,CAAC;oBACxB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxE,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACzE,YAAY,CAAC,OAAO,CAAC,IAAI,EACzB,GAAG,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CACzD;oBACD,6CAA6C;oBAC7C,GAAG,EAAE,GAAG,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACrD,2DAA2D;oBAC3D,SAAS,EAAE,aAAa;iBAC3B,CAAC,CAAA;YACN,CAAC;QACL,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,SAAS;gBAC3D,OAAO,SAAS,CAAC,GAAG,KAAK,SAAS,CAAA;YACtC,CAAC,CAAC,EAAE,KAAK,CAAA;YACT,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAC1D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,4BAA4B,CAAC,CAAA;YAC3D,CAAC;YACD,IAAI,MAAM,GAAG,iBAAiB,CAAA;YAC9B,qIAAqI;YACrI,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,eAAe,CAAC,8BAA8B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC9E,CAAC;gBACD,MAAM,GAAG,IAAI,kBAAkB,CAC3B,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACzE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EACzB,GAAG,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EACpD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAC/C,CAAA;YACL,CAAC;YACD,MAAM,iBAAiB,GAAG;gBACtB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxE,GAAG,EAAE,GAAG,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM;gBACN,uCAAuC;gBACvC,SAAS,EAAE,SAAS;aACvB,CAAA;YACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,gBAAgB,CAAC;oBACxB,GAAG,iBAAiB;oBACpB,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;iBACnD,CAAC,CAAA;YACN,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;QAClD,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACb,OAAO,IAAI,aAAa,CAAC;gBACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACnF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAC3B,GAAG,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAC9D,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CACnD;gBACD,GAAG,EAAE,GAAG,kBAAkB,GAAG,OAAO,CAAC,EAAE,EAAE;gBACzC,UAAU,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;oBACpE,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;gBACnD,CAAC,CAAC,CAAC;gBACH,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;gBACnD,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,GAAG,kBAAkB,GAAG,OAAO,CAAC,EAAE,EAAE;gBAC9C,gBAAgB;gBAChB,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;aACrE,CAAC,CAAA;QACN,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;YAC/C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,eAAe,CAAC,4BAA4B,CAAC,CAAA;YAC3D,CAAC;YACD,MAAM,MAAM,GAAG,iBAAiB,CAAA;YAChC,MAAM,iBAAiB,GAAG;gBACtB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxE,GAAG,EAAE,GAAG,oBAAoB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzD,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM;gBACN,uCAAuC;gBACvC,SAAS,EAAE,SAAS;aACvB,CAAA;YACD,OAAO,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;QAClD,CAAC;QACD;YACI,MAAM,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACvD,CAAC;AACL,CAAC;AACD,MAAM,YAAa,SAAQ,YAAY;IAId;IAIA;IAPJ,KAAK,CAAQ;IACtB,MAAM,CAAQ;IACtB,YACqB,cAAsB,EACvC,aAAyD,EACzD,MAAc,EACd,KAAa,EACI,iBAAqC,EACtD,QAAiB;QAEjB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,YAAY;YACtD,OAAO,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QAVT,mBAAc,GAAd,cAAc,CAAQ;QAItB,sBAAiB,GAAjB,iBAAiB,CAAoB;QAOtD,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC1F,MAAM,uBAAuB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3G,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;YAC9G,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAA;YACtD,IAAI,oBAAoB,CAAC,UAAU,KAAK,OAAO,IAAI,oBAAoB,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAChG,OAAO,CAAC,oBAAoB,CAAC,CAAA;YACjC,CAAC;YACD,OAAO,EAAE,CAAA;QACb,CAAC,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACrC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;QACrB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAA8B,YAAY;gBACvE,OAAO,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YACpD,CAAC,CAAC,CAAA;QACN,CAAC;QAED,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAA;QACjG,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,IAAI,CAAA;QACnC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,mBAAmB,CACxB,WAAmB,EACnB,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,mBAAmB,WAAW,EAAE;QACrC,UAAU,EAAE;YACR,MAAM;YACN,KAAK;SACR;KACJ,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,kBAAkB,CACvB,gBAAwB,EACxB,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,gBAAgB,gBAAgB,EAAE;QACvC,MAAM;QACN,KAAK;KAER,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAA;IAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,qBAAqB,CAC1B,cAAsB,EACtB,MAAc,EACd,KAAa;IAEb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,GAAG,EAAE,gBAAgB,cAAc,EAAE;QACrC,MAAM;QACN,KAAK;KAER,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;IAC7D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,MAAM,YAAa,SAAQ,UAAU;IAGZ;IAGA;IACA;IACA;IAPb,MAAM,CAAQ;IACtB,YACqB,gBAAwB,EACzC,iBAAuC,EACvC,MAAc,EACG,KAAa,EACb,MAA0B,EAC1B,iBAAyB;QAE1C,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAC9E,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAA;QAE1F,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,CAAA;QAVpB,qBAAgB,GAAhB,gBAAgB,CAAQ;QAGxB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAoB;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAQ;QAO1C,IAAI,CAAC,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;IAC7D,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3F,MAAM,iBAAiB,GAAyB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACpG,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACxF,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAA;QAE1F,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,IAAI,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;QAE9D,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,eAAe,CAAC,iBAAuC,EAAE,MAA0B,EAAE,iBAAyB;IACnH,OAAO,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,iBAAiB;QACzF,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAA;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;YAChF,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnD,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM;YACN,QAAQ,EAAE,iBAAiB;YAC3B,GAAG,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YAC5D,UAAU;YACV,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;YACxD,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,YAAY,CAAC,GAAG;SAC7B,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,MAAM,YAAa,SAAQ,UAAU;IAGZ;IAGA;IACA;IANb,MAAM,CAAQ;IACtB,YACqB,cAAsB,EACvC,iBAA0C,EAC1C,MAAc,EACG,KAAa,EACb,MAA0B;QAE3C,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;QAC3D,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAA;QAE1F,KAAK,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,CAAA;QATpB,mBAAc,GAAd,cAAc,CAAQ;QAGtB,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAoB;QAO3C,IAAI,CAAC,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;IAC7D,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5F,MAAM,iBAAiB,GAA4B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACvG,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAChE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAA;QAE1F,IAAI,CAAC,OAAO,GAAG,WAAW,KAAK,IAAI,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAA;QAE9D,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,eAAe,CAAC,iBAA0C,EAAE,MAA0B;IAC3F,OAAO,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,iBAAiB;QACzF,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAA;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM;YAChF,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnD,CAAC,CAAC,CAAC,CAAA;QACH,OAAO,IAAI,aAAa,CAAC;YACrB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,MAAM;YACN,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI;YACvE,GAAG,EAAE,GAAG,kBAAkB,GAAG,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YAC5D,UAAU;YACV,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI;YACxD,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,YAAY,CAAC,GAAG;SAC7B,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,MAAM,iBAAkB,SAAQ,aAAa;IAIpB;IAEA;IALb,MAAM,CAAQ;IACL,eAAe,CAAQ;IACxC,YACqB,QAAgB,EACjC,MAAc,EACG,KAAa;QAE9B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACrE,MAAM,kBAAkB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACtG,MAAM,SAAS,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;QAC3D,MAAM,eAAe,GAAG,kBAAkB,CAAC,4BAA4B,CAAA;QAEvE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC,CAAA;QATjC,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,UAAK,GAAL,KAAK,CAAQ;QAS9B,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;IAC1C,CAAC;IACQ,QAAQ;QACb,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpF,MAAM,kBAAkB,GAA0B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QACtG,MAAM,SAAS,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;QAE3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAA;QAC9D,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;QAEtC,OAAO,IAAI,CAAA;IACf,CAAC;IACQ,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AACD,SAAS,mBAAmB,CACxB,QAAgB,EAChB,MAAc,EACd,KAAa;IAEb,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gEAAgE,QAAQ,YAAY,CAAC,CAAA;IACzG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,qBAAqB,CAAC,kBAAyC;IACpE,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,QAAQ;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;QACpC,OAAO,IAAI,gBAAgB,CAAC;YACxB,EAAE,EAAE,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,IAAI,kBAAkB,CAC1B,IAAI,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAC3E,QAAQ,CAAC,UAAU,EACnB,GAAG,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAEzD;YACD,kFAAkF;YAClF,GAAG,EAAE,GAAG,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACzD,wDAAwD;YACxD,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC;SAC3C,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AACD,YAAY;AAEZ,eAAe;AACf,SAAS,gBAAgB;IACrB,IAAI,SAAS,GAAa,EAAE,CAAA;IAC5B,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,gBAAgB,GAAoB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE9F,SAAS,GAAG;YACR,GAAG,SAAS;YACZ,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;gBACtE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;gBACnC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,KAAK,OAAO;wBACR,OAAO,GAAG,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBACxD,KAAK,UAAU;wBACX,OAAO,GAAG,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBAC3D,KAAK,gBAAgB;wBACjB,OAAO,GAAG,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBAC5D,KAAK,WAAW;wBACZ,OAAO,EAAE,CAAA;oBACb,KAAK,SAAS;wBACV,OAAO,EAAE,CAAA;oBACb,KAAK,QAAQ;wBACT,OAAO,EAAE,CAAA;oBACb;wBACI,MAAM,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;gBACpD,CAAC;YACL,CAAC,CAAC;SACL,CAAA;QAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YAClE,IAAI,GAAG,KAAK,CAAA;QAChB,CAAC;QACD,MAAM,IAAI,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AACpB,CAAC;AACD,SAAS,YAAY,CAAC,MAAc,EAAE,KAAa;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC;QACzD,KAAK;QACL,MAAM;QACN,OAAO,EAAE,KAAK;QACd,eAAe,EAAE,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,4BAA4B,EAAE,IAAI;QAClC,YAAY,EAAE,KAAK;KACtB,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;IAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAc,EAAE,KAAa;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,KAAK;QACL,MAAM;KACT,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAA;IAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,mBAAmB,CAAC,MAAc,EAAE,KAAa;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,KAAK;QACL,MAAM;KACT,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,cAAc,EAAE;YACZ,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,kEAAkE;SACjF;KACJ,CAAC,CAAA;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;IAC7D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9C,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpG,CAAC;AACD,SAAS,cAAc;IACnB,MAAM,GAAG,GAAG,gEAAgE,WAAW,CAAC,QAAQ,YAAY,CAAA;IAC5G,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,CAAA;AACpF,CAAC;AACD,SAAS,oBAAoB;IACzB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,CAAA;IACzC,MAAM,kBAAkB,GAAsB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;IAClG,IAAI,SAAS,GAAa,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,OAAO;QACvE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACnD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,GAAG,iBAAiB,GAAG,MAAM,EAAE,CAAA;QAC1C,CAAC;aAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,GAAG,eAAe,GAAG,MAAM,EAAE,CAAA;QACxC,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACpD,MAAM,gBAAgB,GAAoB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAE9F,SAAS,GAAG;YACR,GAAG,SAAS;YACZ,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;gBACtE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAA;gBACnC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,KAAK,OAAO;wBACR,OAAO,EAAE,CAAA;oBACb,KAAK,UAAU;wBACX,OAAO,EAAE,CAAA;oBACb,KAAK,gBAAgB;wBACjB,OAAO,EAAE,CAAA;oBACb,KAAK,WAAW;wBACZ,OAAO,GAAG,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBACvD,KAAK,SAAS;wBACV,OAAO,GAAG,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBACvD,KAAK,QAAQ;wBACT,OAAO,GAAG,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;oBACzD;wBACI,MAAM,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;gBACpD,CAAC;YACL,CAAC,CAAC;SACL,CAAA;QAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC;YAClE,IAAI,GAAG,KAAK,CAAA;QAChB,CAAC;QACD,MAAM,IAAI,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,SAAS,CAAA;AACpB,CAAC;AACD,MAAM,EAAE,GAAG,WAAW,IAAI,OAAO,MAAM,IAAI,UAAU,IAAI,OAAO,MAAM,CAAC,eAAe,CAAA;AACtF,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACtC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACd,MAAM,CAAC,GAAG,EAAE,CAAA;IACZ,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC3C,OAAO,CAAC,CAAA;AACZ,CAAC,CAAC,CAAC,CAAC,CAAA;AACJ,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1B,OAAO,UAAU,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACd,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClB,MAAM,IAAI,eAAe,CAAC,4BAA4B,CAAC,CAAA;YAC3D,CAAC;YACD,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;gBAChB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACZ,CAAC,CAAA;AACD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AACvB,SAAS,kBAAkB,CAAC,GAAW;IACnC,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACjD,sBAAsB,EAAE,CAAA;IACxB,OAAO,IAAI,sBAAsB,CAAC,cAAc,CAAC,CAAA;AACrD,CAAC;AACD,MAAM,sBAAuB,SAAQ,eAAe;IAoCnB;IAnCrB,gBAAgB,GAAG,EAAE,CAAA;IACrB,WAAW,GAAG,EAAE,CAAA;IAChB,aAAa,GAAG,KAAK,CAAA;IACrB,aAAa,GAAG,KAAK,CAAA;IACrB,WAAW,GAAG,KAAK,CAAA;IACnB,UAAU,GAAG,KAAK,CAAA;IAClB,UAAU,GAAG,KAAK,CAAA;IAC1B,gCAAgC;IAChC,6BAA6B;IAC7B,kCAAkC;IAC1B,aAAa,GAAG,EAAE,CAAA;IAClB,MAAM,CAAc;IACpB,YAAY,GAAG,CAAC,CAAA;IACP,SAAS,GAAG,EAAE,EAAE,CAAA;IACjC,gDAAgD;IAChD,sEAAsE;IACtE,2DAA2D;IAC3D,yCAAyC;IACzC,qCAAqC;IACpB,GAAG,GAAG,sBAAsB,CAAA;IAC5B,SAAS,GAAG,sCAAsC,CAAA;IAClD,YAAY,GAAG,wBAAwB,CAAA;IACvC,iBAAiB,GAAG,CAAC,CAAA;IACrB,QAAQ,GAAG,MAAM,CAAA;IAClC,gDAAgD;IAChD,sEAAsE;IACtE,2DAA2D;IAC3D,yCAAyC;IACzC,qCAAqC;IACrC,gDAAgD;IAChD,sEAAsE;IACtE,2DAA2D;IAC3D,yCAAyC;IACzC,qCAAqC;IAC7B,OAAO,GAAG,CAAC,CAAA;IACnB,YAA6B,MAAc;QACvC,MAAM,gBAAgB,GAAG,CAAC,CAAA;QAC1B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;QAFL,WAAM,GAAN,MAAM,CAAQ;QAIvC,yDAAyD;QAEzD,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,+CAA+C,WAAW,CAAC,YAAY,EAAE,CAAA;QACrF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAChB,IAAI,EAAE,GAAG,EAAE;gBACP,GAAG,CAAC,MAAM,CAAC,CAAA;gBACX,oCAAoC;gBACpC,mBAAmB;gBACnB,MAAM;YAEV,CAAC;YACD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACvB,CAAC;YACD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACvB,CAAC;YACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,GAAG,CAAC,WAAW,CAAC,CAAA;gBAChB,MAAM,UAAU,GAkBZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACnB,IAAI,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC;oBAG5B,IAAI,UAAU,CAAC,GAAG,KAAK,gCAAgC,EAAE,CAAC;wBACtD,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC5D,GAAG,CAAC,2DAA2D,CAAC,CAAA;4BAChE,GAAG,CAAC,GAAG,CAAC,CAAA;4BACR,OAAM;wBACV,CAAC;wBACD,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;4BAC1D,GAAG,CAAC,sCAAsC,CAAC,CAAA;4BAC3C,GAAG,CAAC,GAAG,CAAC,CAAA;4BACR,OAAM;wBACV,CAAC;wBACD,sCAAsC;wBACtC,GAAG,CAAC,uBAAuB,CAAC,CAAA;wBAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC5E,OAAO,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,CAAA;wBACvC,CAAC,CAAC,EAAE,QAAQ,CAAA;wBACZ,gFAAgF;wBAChF,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;4BAClD,GAAG,CAAC,2BAA2B,CAAC,CAAA;4BAChC,GAAG,CAAC,GAAG,CAAC,CAAA;4BACR,OAAM;4BACN,mDAAmD;wBACvD,CAAC;wBAID,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAA;wBAC/E,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;4BAC5D,GAAG,CAAC,gCAAgC,CAAC,CAAA;4BACrC,GAAG,CAAC,GAAG,CAAC,CAAA;4BACR,OAAM;4BACN,wDAAwD;wBAC5D,CAAC;wBACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;wBAC9B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;wBACxC,GAAG,CAAC,GAAG,CAAC,CAAA;wBACR,IAAI;wBAKJ,wCAAwC;wBAExC,0BAA0B;wBAG1B,+BAA+B;wBAE/B,kDAAkD;wBAElD,IAAI;wBAEJ,OAAM;oBACV,CAAC;oBAED,GAAG,CAAC,oBAAoB,CAAC,CAAA;oBACzB,GAAG,CAAC,GAAG,CAAC,CAAA;oBAER,OAAM;gBACV,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;gBAChE,kBAAkB;gBAElB,GAAG,CAAC,oBAAoB,CAAC,CAAA;gBACzB,MAAM,YAAY,GAAG,6DAA6D,CAAA;gBAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAC5B,YAAY;gBACZ,mBAAmB;gBACnB,kEAAkE;gBAClE,gBAAgB;gBAChB,qCAAqC;gBACrC,+BAA+B;gBAC/B,wCAAwC;gBACxC,6BAA6B;gBAC7B,uCAAuC;gBACvC,uCAAuC;gBACvC,qCAAqC;gBACrC,qCAAqC;gBACrC,qCAAqC;gBACrC,mBAAmB;gBACnB,gBAAgB;gBAChB,oYAAoY;gBACpY,qDAAqD;gBACrD,+BAA+B;gBAC/B,kCAAkC;gBAClC,QAAQ;gBACR,MAAM;gBACN,IAAI,CAAC,SAAS,CACV,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,qDAAqD,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,2BAA2B,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAChyB,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CACR,CAAA;gBACD,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAEb,GAAG,CAAC,uBAAuB,CAAC,CAAA;gBAC5B,MAAM,sBAAsB,GAAG,mEAAmE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;gBAE/H,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CACxC,KAAK,EACL,sBAAsB,EACtB,IAAI,CAAC,SAAS,CAAC;oBACX,aAAa,EAAE,eAAe;oBAC9B,QAAQ,EACR;wBACI,aAAa,EACb;4BACI,cAAc,EAAE;gCACZ,eAAe,EAAE,KAAK;gCACtB,QAAQ,EAAE,IAAI;gCACd,yBAAyB,EAAE,IAAI;6BAClC;yBACJ;qBACJ;iBACJ,CAAC,EACF;oBACI,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE;oBACnD,yBAAyB,EAAE,IAAI,CAAC,aAAa;iBAChD,EACD,KAAK,CAAC,CAAA;gBAEV,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC9C,GAAG,CAAC,WAAW,CAAC,CAAA;gBAGhB,yDAAyD;gBAGzD,yBAAyB;gBAEzB,yBAAyB;gBAEzB,+BAA+B;gBAE/B,uCAAuC;gBAGvC,mBAAmB;gBAEnB,IAAI;gBACJ,qBAAqB;gBACrB,4BAA4B;gBAC5B,qGAAqG;gBACrG,qGAAqG;gBACrG,8BAA8B;gBAC9B,6DAA6D;YAEjE,CAAC;YACD,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE;gBACnB,GAAG,CAAC,SAAS,CAAC,CAAA;gBACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC1B,CAAC;SACJ,CAAC,CAAA;IACN,CAAC;IACQ,MAAM,CAAC,OAAe;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;IAC/B,CAAC;IACQ,UAAU,CAAC,OAAe,EAAE,UAAmB;QAEpD,4UAA4U;QAE5U,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAM;QACV,CAAC;QAGD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAEjD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,GAAG,CAAC,cAAc,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAM;QACV,CAAC;QAID,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YAEjD,GAAG,CAAC,iBAAiB,CAAC,CAAA;YACtB,MAAM,GAAG,GAAG,mEAAmE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;YAC5G,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;YAClH,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEb,MAAM,IAAI,GAAG,+DAA+D,IAAI,CAAC,SAAS,EAAE,CAAA;YAC5F,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CACvE,EAAC,SAAS,EAAC,IAAI,CAAC,OAAO,EAAC,WAAW,EAAC,EAAC,kBAAkB,EAAC,IAAI,CAAC,gBAAgB,EAAC,UAAU,EAAC,IAAI,CAAC,WAAW,EAAC,QAAQ,EAAC,KAAK,EAAC,EAAC,WAAW,EAAC,EAAC,gBAAgB,EAAC,CAAC,EAAC,UAAU,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,CAAC,QAAQ,EAAC,YAAY,EAAC,OAAO,EAAC,SAAS,EAAC,MAAM,EAAC,eAAe,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,mBAAmB,EAAC,KAAK,EAAC,cAAc,EAAC,YAAY,EAAC,CACvU,EAAE,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;YAClE,GAAG,CAAC,SAAS,CAAC,CAAA;YAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiEE;YAIF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAG3B,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAM;QACV,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,GAAG,CAAC,kBAAkB,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;gBAEvC,sBAAsB;YAC1B,CAAC;YACD,MAAM,qBAAqB,GAAG,+DAA+D,IAAI,CAAC,SAAS,QAAQ,CAAA;YACnH,MAAM,QAAQ,GAAsE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CACrH,KAAK,EACL,qBAAqB;YACrB,mBAAmB;YACnB,gDAAgD;YAEhD,MAAM;YACN,IAAI,CAAC,SAAS,CACV,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,0BAA0B,EAAE,CACtX,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChB,GAAG,CAAC,QAAQ,CAAC,CAAA;YACb,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAA;YAI/D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAG1B,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAM;QACV,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YAIzB,0BAA0B;YAG1B,uBAAuB;YACvB,UAAU;YACV,8BAA8B;YAC9B,uBAAuB;YACvB,kBAAkB;YAClB,2CAA2C;YAC3C,0BAA0B;YAC1B,gCAAgC;YAChC,8BAA8B;YAC9B,QAAQ;YACR,eAAe;YACf,WAAW;YACX,mCAAmC;YACnC,wBAAwB;YACxB,kBAAkB;YAClB,yBAAyB;YACzB,sBAAsB;YACtB,wGAAwG;YACxG,eAAe;YACf,yBAAyB;YACzB,MAAM;YAEN,MAAM,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAA;YAEtD,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAC7B,MAAM,mBAAmB,GAAG,+DAA+D,IAAI,CAAC,SAAS,QAAQ,CAAA;YACjH,MAAM,SAAS,GAAsE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CACtH,KAAK,EACL,mBAAmB;YACnB,mBAAmB;YACnB,gDAAgD;YAEhD,MAAM;YACN,IAAI,CAAC,SAAS,CACV,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAC/U,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChB,GAAG,CAAC,SAAS,CAAC,CAAA;YACd,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAA;YAChE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,cAAc;YACd,+BAA+B;YAC/B,wBAAwB;YACxB,IAAI;YAGJ,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACrB,oHAAoH;YACpH,MAAM,SAAS,GAAsE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CACtH,KAAK,EACL,mBAAmB;YACnB,mBAAmB;YACnB,gDAAgD;YAEhD,MAAM;YACN,IAAI,CAAC,SAAS,CACV,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,CAC9U,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChB,GAAG,CAAC,SAAS,CAAC,CAAA;YACd,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,mEAAmE;YAEnE,UAAU;YACV,+BAA+B;YAC/B,wBAAwB;YACxB,IAAI;YAEJ,GAAG,CAAC,eAAe,CAAC,CAAA;YACpB,oHAAoH;YACpH,MAAM,SAAS,GAAsE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CACtH,KAAK,EACL,mBAAmB;YACnB,mBAAmB;YACnB,gDAAgD;YAEhD,MAAM;YACN,IAAI,CAAC,SAAS,CACV,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,CACnW,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChB,GAAG,CAAC,SAAS,CAAC,CAAA;YACd,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAA;YAChE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YAEjB,UAAU;YACV,+BAA+B;YAC/B,wBAAwB;YACxB,IAAI;YAGJ,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC5B,MAAM,oBAAoB,GAAG,+DAA+D,IAAI,CAAC,SAAS,QAAQ,CAAA;YAClH,MAAM,QAAQ,GAAsE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CACrH,KAAK,EACL,oBAAoB;YACpB,mBAAmB;YACnB,gDAAgD;YAEhD,MAAM;YACN,IAAI,CAAC,SAAS,CACV,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAC3W,EACD,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;YAChB,GAAG,CAAC,QAAQ,CAAC,CAAA;YACb,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAA;YAC/D,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;YACjB,8BAA8B;QAGlC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAM;QACV,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC;YAChD,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC5B,MAAM,YAAY,GAAG,0EAA0E,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;YACpI,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CACrC,YAAY;YACZ,uCAAuC;YACvC,0KAA0K;YAC1K,OAAO;YACP,IAAI,CAAC,SAAS,CAAC;gBACX,SAAS,EAAE;oBACP,SAAS,EAAE;wBACP,iDAAiD;wBACjD,2DAA2D;wBAC3D,GAAG,EAAE,iBAAiB,IAAI,CAAC,YAAY,EAAE;wBACzC,GAAG,EAAE,2BAA2B,IAAI,CAAC,YAAY,EAAE;wBACnD,UAAU,EAAE,EAAE;qBACjB;oBACD,aAAa,EAAE;wBACX,oBAAoB,EAAE,OAAO;wBAC7B,iCAAiC;wBACjC,iBAAiB,EAAE,6CAA6C;wBAChE,qBAAqB,EAAE,cAAc;qBACxC;oBACD,SAAS,EAAE;wBACP,SAAS,EAAE,WAAW;wBACtB,SAAS,EAAE;4BACP,WAAW,EAAE,IAAI,CAAC,iBAAiB;4BACnC,SAAS,EAAE,IAAI,CAAC,GAAG;4BACnB,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC5B;wBACD,yBAAyB,EAAE,EAAE;qBAChC;oBACD,gBAAgB,EAAE;wBACd,mBAAmB,EAAE;4BACjB,sCAAsC;yBACzC;wBACD,iBAAiB,EAAE;4BACf,sCAAsC;yBACzC;wBACD,YAAY,EAAE,kCAAkC;qBACnD;oBACD,UAAU,EAAE,MAAM;iBACrB;aACJ,CAAC;YACF,mBAAmB;YACnB,iBAAiB;YACjB,4BAA4B;YAC5B,qBAAqB;YACrB,4BAA4B;YAC5B,2DAA2D;YAC3D,oEAAoE;YACpE,aAAa;YACb,8MAA8M;YAC9M,uBAAuB;YACvB,mFAAmF;YACnF,aAAa;YACb,qKAAqK;YACrK,QAAQ;YACR,yDAAyD;YACzD,6BAA6B;YAC7B,qCAAqC;YACrC,WAAW;YACX,MAAM;YACN,EAAE,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE,EAAE,EACvD,KAAK,CACR,CAAA;YACD,GAAG,CAAC,iBAAiB,CAAC,CAAA;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAC1B,CAAC;IACL,CAAC;CACJ;AACD,YAAY;AAEZ,mBAAmB;AACnB,SAAS,kBAAkB,CAAC,SAAiB;IACzC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAChF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAA;QACpB,CAAC;QACD,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAuB,YAAY,CAAC,CAAC,CAAuB,CAAA;IAC5E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,OAAO;YACR,OAAO,2BAA2B,MAAM,EAAE,CAAA;QAC9C,KAAK,QAAQ;YACT,OAAO,8BAA8B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;QACrE;YACI,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC3C,CAAC;AACL,CAAC;AACD,SAAS,WAAW,CAAC,GAAW;IAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;AAChC,CAAC;AACD,SAAS,SAAS,CAAC,GAAW;IAC1B,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,wHAAwH,CAAC,CAAA;IACxJ,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,CAAA;QACR,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAY,UAAqB,CAAA;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,aAAa,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC/B,CAAC;AACD;;;;GAIG;AACH,SAAS,gCAAgC,CAAC,YAAoB;IAC1D,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;AACjE,CAAC;AACD,SAAS,YAAY,CAAC,KAAY;IAC9B,GAAG,CAAC,KAAK,CAAC,CAAA;AACd,CAAC;AACD,SAAS,eAAe,CAAI,KAAQ;IAChC,GAAG,CAAC,KAAK,CAAC,CAAA;IACV,OAAO,KAAK,CAAA;AAChB,CAAC;AAGD,SAAS,iBAAiB,CAAC,KAAY,EAAE,iBAA0B;IAC/D,GAAG,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5B,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,IAAI,eAAe,CAAC,iBAAiB,CAAC,CAAA;IACjD,CAAC;IACD,OAAM;AACV,CAAC;AACD,YAAY;AAEZ,aAAa;AAEb,iFAAiF;AACjF,MAAM,CAAC,GAAG,kBAAkB,CAAA;AAC5B,MAAM,CAAC,GAAG,gEAAgE,CAAA;AAC1E,MAAM,EAAE,GAAa,EAAE,CAAA;AACvB,EAAE,CAAC,MAAM,GAAG,GAAG,CAAA;AACf,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;IAC3B,mBAAmB;IACnB,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;AACpC,MAAM,EAAE,GAAa,EAAE,CAAA;AACvB,EAAE,CAAC,MAAM,GAAG,GAAG,CAAA;AACf,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE;IAChC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;AAE7B,SAAS,OAAO,CAAC,WAAmB;IAChC,OAAO,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1C,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM;YACf,OAAO,IAAI,CAAA;QACf,MAAM,CAAC,GAAG,sBAAsB,EAC1B,CAAC,GAAG,UAAU,EACd,CAAC,GAAG,MAAM,CAAA;QAChB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACjB,mBAAmB;QACnB,OAAO,CAAC,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxN,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,GAAG,CAAC;YACV,mBAAmB;YACnB,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,mBAAmB;YACnB,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC;YACL,mBAAmB;YACnB,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,mBAAmB;YACnB,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC;YACL,mBAAmB;YACnB,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACxB,mBAAmB;YACnB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IACxS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAChC,CAAC;AACD,YAAY;AAEZ,kDAAkD;AAClD,iDAAiD;AACjD,OAAO,EACH,OAAO,EACP,YAAY,EACZ,eAAe,EACf,kBAAkB,EACrB,CAAA"} \ No newline at end of file +{"version":3,"file":"SpotifyScript.js","sourceRoot":"http://localhost:8080/","sources":["SpotifyScript.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/SpotifyScript.ts b/build/SpotifyScript.ts index b910559..389aa8d 100644 --- a/build/SpotifyScript.ts +++ b/build/SpotifyScript.ts @@ -74,6 +74,7 @@ const PLATFORM = "Spotify" as const const HARDCODED_ZERO = 0 as const const HARDCODED_EMPTY_STRING = "" as const +const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", "") const local_http = http // const local_utility = utility @@ -380,7 +381,7 @@ function getHome() { } }) } - const playlists = format_page(sections, 4) + const playlists = format_page(sections, 4, "Home") return new ContentPager(playlists, false) } function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } { @@ -512,12 +513,12 @@ function format_song_and_episode_results(search_response: SearchResponse) { return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id), name: episode.data.name, - author: new PlatformAuthorLink( + author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink( new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url - ), + ) : EMPTY_AUTHOR, url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) { return new Thumbnail(image.url, image.height) @@ -526,7 +527,7 @@ function format_song_and_episode_results(search_response: SearchResponse) { viewCount: HARDCODED_ZERO, isLive: false, shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, - datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000 + datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000 }) }) ] @@ -616,7 +617,11 @@ function getContentDetails(url: string) { const format = local_state.is_premium ? "MP4_256" : "MP4_128" - const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format })?.file_id + const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file + if(files === undefined){ + throw new ScriptException("missing alternative file list") + } + const maybe_file_id = files.find(function (file) { return file.format === format })?.file_id if (maybe_file_id === undefined) { throw new ScriptException("missing expected format") } @@ -770,6 +775,7 @@ function getContentDetails(url: string) { return [] } const transcript_response: TranscriptResponse = JSON.parse(results[2].body) + const subtitle_name = function () { switch (transcript_response.language) { case "en": @@ -791,7 +797,7 @@ function getContentDetails(url: string) { end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds } vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n` - vtt_text += `${section.text.sentence.text}\n` + vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n` vtt_text += "\n" }) return [{ @@ -1253,6 +1259,9 @@ class LikedEpisodesPager extends VideoPager { } function format_collection_episodes(response: LikedEpisodesResponse) { return response.data.me.library.episodes.items.map(function (episode) { + if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) { + throw new ScriptException("unreachable") + } return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id), name: episode.episode.data.name, @@ -2127,7 +2136,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o if (browse_page_response.data.browse.__typename === "GenericError") { throw new ScriptException("error loading genre page") } - const playlists = format_page(browse_page_response.data.browse.sections.items, limit) + const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel) return new ContentPager(playlists, false) } @@ -2183,7 +2192,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o * @param display_limit maximum number of items to display per section * @returns */ -function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] { +function format_page(sections: Section[], display_limit: number, page_title: string): (PlatformPlaylist | PlatformVideo)[] { const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] { if (is_playlist_section(item)) { return [item] @@ -2192,7 +2201,7 @@ function format_page(sections: Section[], display_limit: number): (PlatformPlayl }) const content = filtered_sections.flatMap(function (section) { const section_title = section.data.title - const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel + const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel const section_items = section.sectionItems.items.flatMap(function (section_item) { if (section_item.content.__typename === "UnknownType") { @@ -2396,6 +2405,9 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S return new PlatformPlaylist(platform_playlist) } case "Episode": { + if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) { + throw new ScriptException("unreachable") + } return new PlatformVideo({ id: new PlatformID(PLATFORM, section.id, plugin.config.id), name: section.name, @@ -2877,172 +2889,424 @@ function getUserSubscriptions(): string[] { } return following } -const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues -const gt = (e: number) => ht ? function (e) { - return crypto.getRandomValues(new Uint8Array(e)) -}(e) : function (e) { - const t = [] - for (; t.length < e;) - t.push(Math.floor(256 * Math.random())) - return t -}(e) -const ft = (e: number) => { - const t = Math.ceil(e / 2) - return function (e) { - let t = "" - for (let n = 0; n < e.length; n++) { - const i = e[n] - if (i === undefined) { - throw new ScriptException("issue generating device id") - } - i < 16 && (t += "0"), - t += i.toString(16) - } - return t - }(gt(t)) -} -const vt = () => ft(40) + function getPlaybackTracker(url: string): PlaybackTracker { - const { content_uri_id } = parse_content_url(url) + const { content_uri_id, content_type } = parse_content_url(url) check_and_update_token() - return new SpotifyPlaybackTracker(content_uri_id) + return new SpotifyPlaybackTracker(content_uri_id, content_type) } class SpotifyPlaybackTracker extends PlaybackTracker { - private state_machine_id = "" - private playback_id = "" + private recording_play = false private play_recorded = false - private socket_closed = false - private another_one = false - private in_between = false - private transfered = false - // private device_active = false - // private transfered = false - // private start_triggered = false - private connection_id = "" - private socket: SocketResult - private init_seconds = 0 - private readonly device_id = vt() - // private readonly uid = "ccf999d7241e13521c2e" - // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s" - // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh" - // private readonly track_album_index = 3 - // private readonly duration = 145746 - private readonly uid = "1347b3deaefee32b7d2b" - private readonly track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A" - private readonly album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW" - private readonly track_album_index = 2 - private readonly duration = 109750 - // private readonly uid = "296cf850453478739645" - // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty" - // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T" - // private readonly track_album_index = 4 - // private readonly duration = 171989 - // private readonly uid = "8167260601e9aab35d02" - // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp" - // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK" - // private readonly track_album_index = 5 - // private readonly duration = 111266 - private seq_num = 3 - constructor(private readonly uri_id: string) { - const interval_seconds = 4 + private total_seconds_played = 0 + private readonly device_id: string + private readonly context_url: string + private readonly context_uri: string + private readonly skip_to_data: { + readonly content_type: Exclude<ContentType, "track"> + readonly track_uri: string + } | { + readonly content_type: Exclude<ContentType, "episode"> + readonly track_uri: string + readonly uid: string + readonly track_album_index: number + } + private readonly duration: number + private readonly interval_seconds: number + constructor(uri_id: string, content_type: ContentType) { + const interval_seconds = 2 super(interval_seconds * 1000) + this.interval_seconds = interval_seconds + + // generate device id + const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues + const gt = (e: number) => ht ? function (e) { + return crypto.getRandomValues(new Uint8Array(e)) + }(e) : function (e) { + const t = [] + for (; t.length < e;) + t.push(Math.floor(256 * Math.random())) + return t + }(e) + const ft = (e: number) => { + const t = Math.ceil(e / 2) + return function (e) { + let t = "" + for (let n = 0; n < e.length; n++) { + const i = e[n] + if (i === undefined) { + throw new ScriptException("issue generating device id") + } + i < 16 && (t += "0"), + t += i.toString(16) + } + return t + }(gt(t)) + } + const vt = () => ft(40) + this.device_id = vt() + + // load track info + switch (content_type) { + case "episode": { + const { url, headers } = episode_metadata_args(uri_id) + const response: EpisodeMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body) + switch (response.data.episodeUnionV2.__typename) { + case "Chapter": + this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri + break + case "Episode": + this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri + break + default: + throw assert_exhaustive(response.data.episodeUnionV2, "unreachable") + } + this.context_url = `context://${this.context_uri}` + this.skip_to_data = { + content_type: "episode", + track_uri: response.data.episodeUnionV2.uri + } + this.duration = response.data.episodeUnionV2.duration.totalMilliseconds + break + } + case "track": + const { url, headers } = track_metadata_args(uri_id) + const response: TrackMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body) + const track_album_index = response.data.trackUnion.trackNumber - 1 + const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1) + const tracks_response: AlbumTracksResponse = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body) + this.context_uri = response.data.trackUnion.albumOfTrack.uri + this.context_url = `context://${this.context_uri}` + this.duration = response.data.trackUnion.duration.totalMilliseconds + const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid + if (uid === undefined) { + throw new ScriptException("can't find song uid") + } + this.skip_to_data = { + content_type: "track", + uid, + track_uri: response.data.trackUnion.uri, + track_album_index + } + break + default: + throw assert_exhaustive(content_type, "unreachable") + } + } + override onInit(_seconds: number): void { - // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40" + } + override onProgress(_seconds: number, is_playing: boolean): void { + if (is_playing) { + // this ends up lagging behind. + this.total_seconds_played += this.interval_seconds + } - log("connecting to websocket") - const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}` - this.socket = http.socket(url, {}, false) - this.socket.connect({ - open: () => { - log("open") - // this.socket.send(JSON.stringify({ - // type: "ping" - // })) + if (is_playing && !this.recording_play && this.total_seconds_played > 30) { + this.recording_play = true - }, - closed: (code, reason) => { - console.log(code.toString()) - console.log(reason) - }, - closing: (code, reason) => { - console.log(code.toString()) - console.log(reason) - }, - message: (msg) => { - log("a message") - const connection: { - readonly headers: { - readonly "Spotify-Connection-Id": string - } - readonly method: "PUT" - readonly type: "message" - } | { - readonly type: "message" - readonly uri: string - readonly payloads: { - readonly state_machine: { - readonly state_machine_id: string - readonly states: { - readonly state_id: string - readonly track_uid: string - }[] - } - }[] - } = JSON.parse(msg) - if (!("method" in connection)) { + log("creating WebSocket connection") + // setup WebSocket connection + const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}` + const socket = http.socket(url, {}, false) + socket.connect({ + open: () => { - if (connection.uri === "hm://track-playback/v1/command") { - if (connection.payloads[0]?.state_machine.states.length === 0) { - log("ignored WS message just informing us of the active device") - log(msg) - return + }, + closed: (code, reason) => { + console.log(code.toString()) + console.log(reason) + }, + closing: (code, reason) => { + console.log(code.toString()) + console.log(reason) + }, + message: (msg) => { + // ignore queued messages + if (this.play_recorded) { + log("ignoring queued message") + return + } + const message: { + readonly headers: { + readonly "Spotify-Connection-Id": string } - if (this.playback_id !== "" && this.state_machine_id !== "") { - log("ignored WS message ids already found") + readonly method: "PUT" + readonly type: "message" + } | { + readonly type: "message" + readonly uri: string + readonly payloads: { + readonly state_machine: { + readonly state_machine_id: string + readonly states: { + readonly state_id: string + readonly track_uid: string + readonly track: number + }[] + readonly tracks: { + readonly metadata: { + readonly uri: string + } + }[] + } + }[] + } = JSON.parse(msg) + + // this is the initial connection message + if ("method" in message) { + const connection_id = message.headers["Spotify-Connection-Id"] + + const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices" + local_http.POST( + track_playback_url, + JSON.stringify( + { + device: { + brand: "spotify", + capabilities: { + change_volume: true, + enable_play_token: true, + supports_file_media_type: true, + play_token_lost_behavior: "pause", + disable_connect: false, + audio_podcasts: true, + video_playback: true, + manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] + }, + device_id: this.device_id, + device_type: "computer", + metadata: {}, + model: "web_player", + name: "Web Player (Grayjay)", + platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop", + is_group: false + }, + outro_endcontent_snooping: false, + connection_id: connection_id, + client_version: "harmony:4.42.0-2780565f", + volume: 65535 + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false + ) + + const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` + local_http.requestWithBody( + "PUT", + connect_state_url, + JSON.stringify({ + "member_type": "CONNECT_STATE", + "device": + { + "device_info": + { + "capabilities": { + "can_be_player": false, + "hidden": true, + "needs_full_player_state": true + } + } + } + }), + { + Authorization: `Bearer ${local_state.bearer_token}`, + "X-Spotify-Connection-Id": connection_id + }, + false) + const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}` + local_http.POST( + transfer_url, + JSON.stringify({ + "command": { + "context": { + uri: this.context_uri, + url: this.context_url, + "metadata": {} + }, + "play_origin": { + "feature_identifier": "album", + //feature_identifier: "show", + //feature_identifier: "audiobook", + "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", + "referrer_identifier": "your_library" + }, + "options": { + "license": "on-demand", + "skip_to": this.skip_to_data.content_type === "track" ? { + track_index: this.skip_to_data.track_album_index, + track_uid: this.skip_to_data.uid, + track_uri: this.skip_to_data.track_uri + } : { + track_uri: this.skip_to_data.track_uri + }, + "player_options_override": {} + }, + "logging_params": { + "page_instance_ids": [ + "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" + ], + "interaction_ids": [ + "d3697919-e8be-425d-98bc-1ea70e28963a" + ], + "command_id": "46b1903536f6eda76783840368982c5e" + }, + "endpoint": "play" + } + }), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false + ) + return + } + + if (message.uri === "hm://track-playback/v1/command") { + if (message.payloads[0]?.state_machine.states.length === 0) { + log("ignored WS message that was informing of the active device") log(msg) return } - // if (this.state_machine_id === "") { - log("reading state details") - const playback_id = connection.payloads[0]?.state_machine.states.find((state) => { - return state.track_uid === this.uid - })?.state_id - // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id - if (playback_id === undefined || playback_id === "") { + + const state_machine = message.payloads[0]?.state_machine + const playback_id = (() => { + const data = this.skip_to_data + switch (data.content_type) { + case "episode": { + return state_machine?.states.find((state) => { + return state_machine.tracks[state.track]?.metadata.uri === data.track_uri + })?.state_id + } + case "track": { + return message.payloads[0]?.state_machine.states.find((state) => { + return state.track_uid === data.uid + })?.state_id + } + default: + throw assert_exhaustive(data) + } + })() + + if (playback_id === undefined) { log("error missing playback_id") log(msg) return - // throw new ScriptException("missing playback_id") } - - - const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id - if (state_machine_id === undefined || state_machine_id === "") { + let state_machine_id = state_machine?.state_machine_id + if (state_machine_id === undefined) { log("error missing state_machine_id") log(msg) return - // throw new ScriptException("missing state_machine_id") } - this.playback_id = playback_id - this.state_machine_id = state_machine_id - log(msg) - // } - - - - // payloads statemachine states state_id - - // this.playback_id = "11" + let seq_num = 3 + const initial_state_machine_id = state_machine_id + const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` + + // simulate song play + const before_track_load: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "before_track_load" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = before_track_load.state_machine.state_machine_id + seq_num += 1 + + local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "speed_changed" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false) + seq_num += 1 + + const speed_change: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 0, + debug_source: "speed_changed" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = speed_change.state_machine.state_machine_id + seq_num += 1 + + const started_playing: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 1360, + debug_source: "started_playing" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = started_playing.state_machine.state_machine_id + seq_num += 1 + + const played_threshold_reached: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 30786, + debug_source: "played_threshold_reached" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = played_threshold_reached.state_machine.state_machine_id + seq_num += 1 - // this.state_machine_id = "69" + // delete the device + const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` + local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false) - // if (!this.start_triggered && this.transfered) { + const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}` + local_http.requestWithBody("DELETE", deregister, JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 40786, + debug_source: "deregister" + } + ), { Authorization: `Bearer ${local_state.bearer_token}` }, false) - // } + socket.close() + this.play_recorded = true + log("closing WebSocket connection") return } @@ -3051,448 +3315,13 @@ class SpotifyPlaybackTracker extends PlaybackTracker { log(msg) return + }, + failure: (exception) => { + log("failure") + console.log(exception) } - this.connection_id = connection.headers["Spotify-Connection-Id"] - // register device - - log("registering device") - const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices" - const response = local_http.POST( - register_url, - // JSON.stringify({ - // connection_id: connection.headers["Spotify-Connection-Id"], - // device: { - // device_id: this.device_id, - // model: "web_player", - // name: "Web Player (Grayjay)", - // // capabilities: { - // // change_volume: false, - // // audio_podcasts: true, - // // manifest_formats: [ - // // "file_ids_mp3", - // // "file_urls_mp3" - // // ] - // // }, - // "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]}, - // client_version: "harmony:4.42.0-2780565f", - // // brand: "spotify", - // device_type: "computer" - // } - // }), - JSON.stringify( - { "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false - ) - log(response) - - log("grabbing devices info") - const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` - - const response1 = local_http.requestWithBody( - "PUT", - another_register_thing, - JSON.stringify({ - "member_type": "CONNECT_STATE", - "device": - { - "device_info": - { - "capabilities": { - "can_be_player": false, - "hidden": true, - "needs_full_player_state": true - } - } - } - }), - { - Authorization: `Bearer ${local_state.bearer_token}`, - "X-Spotify-Connection-Id": this.connection_id - }, - false) - - const device_info = JSON.parse(response1.body) - log(device_info) - - - // this.device_active = "active_device_id" in device_info - - - // this.transfered = true - - // this.registered = true - - // payloads cluster playerstate - - // payloads statemachine staemachine_id - - - // if (1 + 2 > 3) { - - // } - // log(response.body) - // gives the list of devices - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2 - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9 - // actually registers a device - //https://gue1-spclient.spotify.com/track-playback/v1/devices - - }, - failure: (exception) => { - log("failure") - console.log(exception) - } - }) - } - override onInit(seconds: number): void { - this.init_seconds = seconds - } - override onProgress(seconds: number, is_playing: boolean): void { - - //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"} - - if (this.socket_closed) { - return - } - - - if (seconds - this.init_seconds > 70 && is_playing) { - - this.socket.close() - this.socket_closed = true - log("done closing") - } - - if (this.another_one) { - return - } - - - - if (seconds - this.init_seconds > 60 && is_playing) { - - log("deleting device") - const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` - const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false) - log(response) - - const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}` - const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify( - {"seq_num":this.seq_num,"state_ref":{"state_machine_id":this.state_machine_id,"state_id":this.playback_id,"paused":false},"sub_state":{"playback_speed":1,"position":40786,"duration":this.duration,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":40786,"debug_source":"deregister"} - ) ,{ Authorization: `Bearer ${local_state.bearer_token}` }, false) - log(response2) - - /* - log("trigger finish") - - const initial_state_machine_id = this.state_machine_id - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response1) - this.seq_num += 1 - this.state_machine_id = response1.state_machine.state_machine_id - - - - - log("triggering before play") - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response2) - this.state_machine_id = response2.state_machine.state_machine_id - this.seq_num += 1 - - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("speed change 1") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response3) - this.seq_num += 1 - - */ - - - - this.another_one = true - - - } - - if (this.in_between) { - return - } - - if (seconds - this.init_seconds > 50 && is_playing) { - if (!this.socket.isOpen) { - log("socket not open!") - } else { - log(`recording play of ${this.uri_id}`) - - // this.socket.close() - } - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response) - this.seq_num += 1 - this.state_machine_id = response.state_machine.state_machine_id - - - - this.in_between = true - - - } - - if (this.play_recorded) { - return - } - if (seconds - this.init_seconds > 15 && is_playing) { - this.play_recorded = true - - - - // log(this.connection_id) - - - // command id is random - //t = e=>{ - // const t = Math.ceil(e / 2); - // return function(e) { - // let t = ""; - // for (let n = 0; n < e.length; n++) { - // const i = e[n]; - // i < 16 && (t += "0"), - // t += i.toString(16) - // } - // return t - // }(gt(t)) - // const un = /^[0-9a-f]{32}$/i - // , pn = ()=>ft(32) - // , mn = e=>{ - // if (e && (t = e, - // !un.test(t))) - // throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`); - // var t; - // return e || pn() - // } - - const initial_state_machine_id = this.state_machine_id - - log("triggering before play") - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response1) - this.state_machine_id = response1.state_machine.state_machine_id - this.seq_num += 1 - - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("speed change 1") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response3) - this.seq_num += 1 - // this.state_machine_id = response3.state_machine.state_machine_id - - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - log("speedchange 2") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response4: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response4) - this.state_machine_id = response4.state_machine.state_machine_id - this.seq_num += 1 - - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("triggering play start") - const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - started_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response) - this.state_machine_id = response.state_machine.state_machine_id - this.seq_num += 1 - // this.start_triggered = true - - - } + }) - if (this.transfered) { - return - } - if (seconds - this.init_seconds > 5 && is_playing) { - log("transfering to device") - const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}` - const transfer_response = local_http.POST( - transfer_url, - // this.device_active ? JSON.stringify( - // { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" } - // ) : - JSON.stringify({ - "command": { - "context": { - // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN", - // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN", - uri: `spotify:album:${this.album_uri_id}`, - url: `context://spotify:album:${this.album_uri_id}`, - "metadata": {} - }, - "play_origin": { - "feature_identifier": "album", - // "feature_identifier": "track", - "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", - "referrer_identifier": "your_library" - }, - "options": { - "license": "on-demand", - "skip_to": { - track_index: this.track_album_index, - track_uid: this.uid, - track_uri: this.track_uri - }, - "player_options_override": {} - }, - "logging_params": { - "page_instance_ids": [ - "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" - ], - "interaction_ids": [ - "d3697919-e8be-425d-98bc-1ea70e28963a" - ], - "command_id": "46b1903536f6eda76783840368982c5e" - }, - "endpoint": "play" - } - }), - // JSON.stringify({ - // command: { - // endpoint: "play", - // context: { - // metadata: {}, - // uri: "spotify:track:7aohwSiTDju51QmC54AUba", - // url: "context://spotify:track:7aohwSiTDju51QmC54AUba" - // }, - // "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" }, - // "options": { - // "license": "on-demand", "skip_to": {}, "player_options_override": {} - // }, - // "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" }, - // } - // // command_id: "1ec91233c1cd60f69f5de11f513b2887", - // // transfer_options: { - // // restore_paused: "pause" - // // } - // }), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false - ) - log(transfer_response) - this.transfered = true } } } diff --git a/src/SpotifyScript.ts b/src/SpotifyScript.ts index eeb0f82..c902a86 100644 --- a/src/SpotifyScript.ts +++ b/src/SpotifyScript.ts @@ -74,6 +74,7 @@ const PLATFORM = "Spotify" as const const HARDCODED_ZERO = 0 as const const HARDCODED_EMPTY_STRING = "" as const +const EMPTY_AUTHOR = new PlatformAuthorLink(new PlatformID(PLATFORM, "", plugin.config.id), "", "") const local_http = http // const local_utility = utility @@ -380,7 +381,7 @@ function getHome() { } }) } - const playlists = format_page(sections, 4) + const playlists = format_page(sections, 4, "Home") return new ContentPager(playlists, false) } function whats_new_args(offset: number, limit: number): { readonly url: string, readonly headers: { Authorization: string } } { @@ -512,12 +513,12 @@ function format_song_and_episode_results(search_response: SearchResponse) { return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.data.uri), plugin.config.id), name: episode.data.name, - author: new PlatformAuthorLink( + author: episode.data.podcastV2.data.__typename === "Podcast" ? new PlatformAuthorLink( new PlatformID(PLATFORM, id_from_uri(episode.data.podcastV2.data.uri), plugin.config.id), episode.data.podcastV2.data.name, `${ARTIST_URL_PREFIX}${id_from_uri(episode.data.podcastV2.data.uri)}`, episode.data.podcastV2.data.coverArt?.sources[0]?.url - ), + ) : EMPTY_AUTHOR, url: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, thumbnails: new Thumbnails(episode.data.coverArt.sources.map(function (image) { return new Thumbnail(image.url, image.height) @@ -526,7 +527,7 @@ function format_song_and_episode_results(search_response: SearchResponse) { viewCount: HARDCODED_ZERO, isLive: false, shareUrl: `${EPISODE_URL_PREFIX}${id_from_uri(episode.data.uri)}`, - datetime: new Date(episode.data.releaseDate.isoString).getTime() / 1000 + datetime: episode.data.releaseDate === null ? HARDCODED_ZERO : new Date(episode.data.releaseDate.isoString).getTime() / 1000 }) }) ] @@ -616,7 +617,11 @@ function getContentDetails(url: string) { const format = local_state.is_premium ? "MP4_256" : "MP4_128" - const maybe_file_id = song_metadata_response.file.find(function (file) { return file.format === format })?.file_id + const files = song_metadata_response.file === undefined ? song_metadata_response.alternative?.[0]?.file : song_metadata_response.file + if(files === undefined){ + throw new ScriptException("missing alternative file list") + } + const maybe_file_id = files.find(function (file) { return file.format === format })?.file_id if (maybe_file_id === undefined) { throw new ScriptException("missing expected format") } @@ -770,6 +775,7 @@ function getContentDetails(url: string) { return [] } const transcript_response: TranscriptResponse = JSON.parse(results[2].body) + const subtitle_name = function () { switch (transcript_response.language) { case "en": @@ -791,7 +797,7 @@ function getContentDetails(url: string) { end = episode_metadata_response.data.episodeUnionV2.duration.totalMilliseconds } vtt_text += `${milliseconds_to_WebVTT_timestamp(section.startMs)} --> ${milliseconds_to_WebVTT_timestamp(end)}\n` - vtt_text += `${section.text.sentence.text}\n` + vtt_text += `${"text" in section ? section.text.sentence.text : section.fallback.sentence.text}\n` vtt_text += "\n" }) return [{ @@ -1253,6 +1259,9 @@ class LikedEpisodesPager extends VideoPager { } function format_collection_episodes(response: LikedEpisodesResponse) { return response.data.me.library.episodes.items.map(function (episode) { + if (episode.episode.data.podcastV2.data.__typename === "NotFound" || episode.episode.data.releaseDate === null) { + throw new ScriptException("unreachable") + } return new PlatformVideo({ id: new PlatformID(PLATFORM, id_from_uri(episode.episode._uri), plugin.config.id), name: episode.episode.data.name, @@ -2127,7 +2136,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o if (browse_page_response.data.browse.__typename === "GenericError") { throw new ScriptException("error loading genre page") } - const playlists = format_page(browse_page_response.data.browse.sections.items, limit) + const playlists = format_page(browse_page_response.data.browse.sections.items, limit, browse_page_response.data.browse.header.title.transformedLabel) return new ContentPager(playlists, false) } @@ -2183,7 +2192,7 @@ function getChannelContents(url: string, type: ChannelTypeCapabilities | null, o * @param display_limit maximum number of items to display per section * @returns */ -function format_page(sections: Section[], display_limit: number): (PlatformPlaylist | PlatformVideo)[] { +function format_page(sections: Section[], display_limit: number, page_title: string): (PlatformPlaylist | PlatformVideo)[] { const filtered_sections = sections.flatMap(function (item): (GenrePlaylistSection | HomePlaylistSection | WhatsNewSection | RecentlyPlayedSection)[] { if (is_playlist_section(item)) { return [item] @@ -2192,7 +2201,7 @@ function format_page(sections: Section[], display_limit: number): (PlatformPlayl }) const content = filtered_sections.flatMap(function (section) { const section_title = section.data.title - const section_name = "text" in section_title ? section_title.text : section_title.transformedLabel + const section_name = section_title === null ? page_title : "text" in section_title ? section_title.text : section_title.transformedLabel const section_items = section.sectionItems.items.flatMap(function (section_item) { if (section_item.content.__typename === "UnknownType") { @@ -2396,6 +2405,9 @@ function format_section_item(section: SectionItemAlbum | SectionItemPlaylist | S return new PlatformPlaylist(platform_playlist) } case "Episode": { + if (section.podcastV2.data.__typename === "NotFound" || section.releaseDate === null) { + throw new ScriptException("unreachable") + } return new PlatformVideo({ id: new PlatformID(PLATFORM, section.id, plugin.config.id), name: section.name, @@ -2877,172 +2889,424 @@ function getUserSubscriptions(): string[] { } return following } -const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues -const gt = (e: number) => ht ? function (e) { - return crypto.getRandomValues(new Uint8Array(e)) -}(e) : function (e) { - const t = [] - for (; t.length < e;) - t.push(Math.floor(256 * Math.random())) - return t -}(e) -const ft = (e: number) => { - const t = Math.ceil(e / 2) - return function (e) { - let t = "" - for (let n = 0; n < e.length; n++) { - const i = e[n] - if (i === undefined) { - throw new ScriptException("issue generating device id") - } - i < 16 && (t += "0"), - t += i.toString(16) - } - return t - }(gt(t)) -} -const vt = () => ft(40) + function getPlaybackTracker(url: string): PlaybackTracker { - const { content_uri_id } = parse_content_url(url) + const { content_uri_id, content_type } = parse_content_url(url) check_and_update_token() - return new SpotifyPlaybackTracker(content_uri_id) + return new SpotifyPlaybackTracker(content_uri_id, content_type) } class SpotifyPlaybackTracker extends PlaybackTracker { - private state_machine_id = "" - private playback_id = "" + private recording_play = false private play_recorded = false - private socket_closed = false - private another_one = false - private in_between = false - private transfered = false - // private device_active = false - // private transfered = false - // private start_triggered = false - private connection_id = "" - private socket: SocketResult - private init_seconds = 0 - private readonly device_id = vt() - // private readonly uid = "ccf999d7241e13521c2e" - // private readonly track_uri = "spotify:track:4pbG9SUmWIvsROVLF0zF9s" - // private readonly album_uri_id = "7vEJAtP3KgKSpOHVgwm3Eh" - // private readonly track_album_index = 3 - // private readonly duration = 145746 - private readonly uid = "1347b3deaefee32b7d2b" - private readonly track_uri = "spotify:track:2tQG2nFEHhWsH05kFKlC4A" - private readonly album_uri_id = "0BaIaHcyBXuOWeM4Aas4EW" - private readonly track_album_index = 2 - private readonly duration = 109750 - // private readonly uid = "296cf850453478739645" - // private readonly track_uri = "spotify:track:77uEkHMJ6EnOZjd1Hh9Tty" - // private readonly album_uri_id = "6wOJyevNYXevqTZCn6Xk5T" - // private readonly track_album_index = 4 - // private readonly duration = 171989 - // private readonly uid = "8167260601e9aab35d02" - // private readonly track_uri = "spotify:track:4Op5aSB6JSVzp7Jhi5hQKp" - // private readonly album_uri_id = "7skmDXP36SNveM5XKFoLuK" - // private readonly track_album_index = 5 - // private readonly duration = 111266 - private seq_num = 3 - constructor(private readonly uri_id: string) { - const interval_seconds = 4 + private total_seconds_played = 0 + private readonly device_id: string + private readonly context_url: string + private readonly context_uri: string + private readonly skip_to_data: { + readonly content_type: Exclude<ContentType, "track"> + readonly track_uri: string + } | { + readonly content_type: Exclude<ContentType, "episode"> + readonly track_uri: string + readonly uid: string + readonly track_album_index: number + } + private readonly duration: number + private readonly interval_seconds: number + constructor(uri_id: string, content_type: ContentType) { + const interval_seconds = 2 super(interval_seconds * 1000) + this.interval_seconds = interval_seconds + + // generate device id + const ht = "undefined" != typeof crypto && "function" == typeof crypto.getRandomValues + const gt = (e: number) => ht ? function (e) { + return crypto.getRandomValues(new Uint8Array(e)) + }(e) : function (e) { + const t = [] + for (; t.length < e;) + t.push(Math.floor(256 * Math.random())) + return t + }(e) + const ft = (e: number) => { + const t = Math.ceil(e / 2) + return function (e) { + let t = "" + for (let n = 0; n < e.length; n++) { + const i = e[n] + if (i === undefined) { + throw new ScriptException("issue generating device id") + } + i < 16 && (t += "0"), + t += i.toString(16) + } + return t + }(gt(t)) + } + const vt = () => ft(40) + this.device_id = vt() + + // load track info + switch (content_type) { + case "episode": { + const { url, headers } = episode_metadata_args(uri_id) + const response: EpisodeMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body) + switch (response.data.episodeUnionV2.__typename) { + case "Chapter": + this.context_uri = response.data.episodeUnionV2.audiobookV2.data.uri + break + case "Episode": + this.context_uri = response.data.episodeUnionV2.podcastV2.data.uri + break + default: + throw assert_exhaustive(response.data.episodeUnionV2, "unreachable") + } + this.context_url = `context://${this.context_uri}` + this.skip_to_data = { + content_type: "episode", + track_uri: response.data.episodeUnionV2.uri + } + this.duration = response.data.episodeUnionV2.duration.totalMilliseconds + break + } + case "track": + const { url, headers } = track_metadata_args(uri_id) + const response: TrackMetadataResponse = JSON.parse(local_http.GET(url, headers, false).body) + const track_album_index = response.data.trackUnion.trackNumber - 1 + const { url: tracks_url, headers: tracks_headers } = album_tracks_args(id_from_uri(response.data.trackUnion.albumOfTrack.uri), track_album_index, 1) + const tracks_response: AlbumTracksResponse = JSON.parse(local_http.GET(tracks_url, tracks_headers, false).body) + this.context_uri = response.data.trackUnion.albumOfTrack.uri + this.context_url = `context://${this.context_uri}` + this.duration = response.data.trackUnion.duration.totalMilliseconds + const uid = tracks_response.data.albumUnion.tracks.items[0]?.uid + if (uid === undefined) { + throw new ScriptException("can't find song uid") + } + this.skip_to_data = { + content_type: "track", + uid, + track_uri: response.data.trackUnion.uri, + track_album_index + } + break + default: + throw assert_exhaustive(content_type, "unreachable") + } + } + override onInit(_seconds: number): void { - // this.device_id = "b27bde830fd81dbff77339f7ed344db1a40" + } + override onProgress(_seconds: number, is_playing: boolean): void { + if (is_playing) { + // this ends up lagging behind. + this.total_seconds_played += this.interval_seconds + } - log("connecting to websocket") - const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}` - this.socket = http.socket(url, {}, false) - this.socket.connect({ - open: () => { - log("open") - // this.socket.send(JSON.stringify({ - // type: "ping" - // })) + if (is_playing && !this.recording_play && this.total_seconds_played > 30) { + this.recording_play = true - }, - closed: (code, reason) => { - console.log(code.toString()) - console.log(reason) - }, - closing: (code, reason) => { - console.log(code.toString()) - console.log(reason) - }, - message: (msg) => { - log("a message") - const connection: { - readonly headers: { - readonly "Spotify-Connection-Id": string - } - readonly method: "PUT" - readonly type: "message" - } | { - readonly type: "message" - readonly uri: string - readonly payloads: { - readonly state_machine: { - readonly state_machine_id: string - readonly states: { - readonly state_id: string - readonly track_uid: string - }[] - } - }[] - } = JSON.parse(msg) - if (!("method" in connection)) { + log("creating WebSocket connection") + // setup WebSocket connection + const url = `wss://gue1-dealer.spotify.com/?access_token=${local_state.bearer_token}` + const socket = http.socket(url, {}, false) + socket.connect({ + open: () => { - if (connection.uri === "hm://track-playback/v1/command") { - if (connection.payloads[0]?.state_machine.states.length === 0) { - log("ignored WS message just informing us of the active device") - log(msg) - return + }, + closed: (code, reason) => { + console.log(code.toString()) + console.log(reason) + }, + closing: (code, reason) => { + console.log(code.toString()) + console.log(reason) + }, + message: (msg) => { + // ignore queued messages + if (this.play_recorded) { + log("ignoring queued message") + return + } + const message: { + readonly headers: { + readonly "Spotify-Connection-Id": string } - if (this.playback_id !== "" && this.state_machine_id !== "") { - log("ignored WS message ids already found") + readonly method: "PUT" + readonly type: "message" + } | { + readonly type: "message" + readonly uri: string + readonly payloads: { + readonly state_machine: { + readonly state_machine_id: string + readonly states: { + readonly state_id: string + readonly track_uid: string + readonly track: number + }[] + readonly tracks: { + readonly metadata: { + readonly uri: string + } + }[] + } + }[] + } = JSON.parse(msg) + + // this is the initial connection message + if ("method" in message) { + const connection_id = message.headers["Spotify-Connection-Id"] + + const track_playback_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices" + local_http.POST( + track_playback_url, + JSON.stringify( + { + device: { + brand: "spotify", + capabilities: { + change_volume: true, + enable_play_token: true, + supports_file_media_type: true, + play_token_lost_behavior: "pause", + disable_connect: false, + audio_podcasts: true, + video_playback: true, + manifest_formats: ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] + }, + device_id: this.device_id, + device_type: "computer", + metadata: {}, + model: "web_player", + name: "Web Player (Grayjay)", + platform_identifier: "web_player linux undefined;chrome 125.0.0.0;desktop", + is_group: false + }, + outro_endcontent_snooping: false, + connection_id: connection_id, + client_version: "harmony:4.42.0-2780565f", + volume: 65535 + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false + ) + + const connect_state_url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` + local_http.requestWithBody( + "PUT", + connect_state_url, + JSON.stringify({ + "member_type": "CONNECT_STATE", + "device": + { + "device_info": + { + "capabilities": { + "can_be_player": false, + "hidden": true, + "needs_full_player_state": true + } + } + } + }), + { + Authorization: `Bearer ${local_state.bearer_token}`, + "X-Spotify-Connection-Id": connection_id + }, + false) + const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}` + local_http.POST( + transfer_url, + JSON.stringify({ + "command": { + "context": { + uri: this.context_uri, + url: this.context_url, + "metadata": {} + }, + "play_origin": { + "feature_identifier": "album", + //feature_identifier: "show", + //feature_identifier: "audiobook", + "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", + "referrer_identifier": "your_library" + }, + "options": { + "license": "on-demand", + "skip_to": this.skip_to_data.content_type === "track" ? { + track_index: this.skip_to_data.track_album_index, + track_uid: this.skip_to_data.uid, + track_uri: this.skip_to_data.track_uri + } : { + track_uri: this.skip_to_data.track_uri + }, + "player_options_override": {} + }, + "logging_params": { + "page_instance_ids": [ + "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" + ], + "interaction_ids": [ + "d3697919-e8be-425d-98bc-1ea70e28963a" + ], + "command_id": "46b1903536f6eda76783840368982c5e" + }, + "endpoint": "play" + } + }), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false + ) + return + } + + if (message.uri === "hm://track-playback/v1/command") { + if (message.payloads[0]?.state_machine.states.length === 0) { + log("ignored WS message that was informing of the active device") log(msg) return } - // if (this.state_machine_id === "") { - log("reading state details") - const playback_id = connection.payloads[0]?.state_machine.states.find((state) => { - return state.track_uid === this.uid - })?.state_id - // const playback_id = connection.payloads[0]?.state_machine.states[0]?.state_id - if (playback_id === undefined || playback_id === "") { + + const state_machine = message.payloads[0]?.state_machine + const playback_id = (() => { + const data = this.skip_to_data + switch (data.content_type) { + case "episode": { + return state_machine?.states.find((state) => { + return state_machine.tracks[state.track]?.metadata.uri === data.track_uri + })?.state_id + } + case "track": { + return message.payloads[0]?.state_machine.states.find((state) => { + return state.track_uid === data.uid + })?.state_id + } + default: + throw assert_exhaustive(data) + } + })() + + if (playback_id === undefined) { log("error missing playback_id") log(msg) return - // throw new ScriptException("missing playback_id") } - - - const state_machine_id = connection.payloads[0]?.state_machine.state_machine_id - if (state_machine_id === undefined || state_machine_id === "") { + let state_machine_id = state_machine?.state_machine_id + if (state_machine_id === undefined) { log("error missing state_machine_id") log(msg) return - // throw new ScriptException("missing state_machine_id") } - this.playback_id = playback_id - this.state_machine_id = state_machine_id - log(msg) - // } - - - - // payloads statemachine states state_id - - // this.playback_id = "11" + let seq_num = 3 + const initial_state_machine_id = state_machine_id + const state_update_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` + + // simulate song play + const before_track_load: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "before_track_load" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = before_track_load.state_machine.state_machine_id + seq_num += 1 + + local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: initial_state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 0, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + debug_source: "speed_changed" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false) + seq_num += 1 + + const speed_change: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 0, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 0, + debug_source: "speed_changed" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = speed_change.state_machine.state_machine_id + seq_num += 1 + + const started_playing: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 1360, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 1360, + debug_source: "started_playing" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = started_playing.state_machine.state_machine_id + seq_num += 1 + + const played_threshold_reached: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( + "PUT", + state_update_url, + JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 30786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 30786, + debug_source: "played_threshold_reached" + } + ), + { Authorization: `Bearer ${local_state.bearer_token}` }, + false).body) + state_machine_id = played_threshold_reached.state_machine.state_machine_id + seq_num += 1 - // this.state_machine_id = "69" + // delete the device + const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` + local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false) - // if (!this.start_triggered && this.transfered) { + const deregister = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}` + local_http.requestWithBody("DELETE", deregister, JSON.stringify( + { + seq_num: seq_num, + state_ref: { state_machine_id: state_machine_id, state_id: playback_id, paused: false }, + sub_state: { playback_speed: 1, position: 40786, duration: this.duration, media_type: "AUDIO", bitrate: 128000, audio_quality: "HIGH", format: 10 }, + previous_position: 40786, + debug_source: "deregister" + } + ), { Authorization: `Bearer ${local_state.bearer_token}` }, false) - // } + socket.close() + this.play_recorded = true + log("closing WebSocket connection") return } @@ -3051,448 +3315,13 @@ class SpotifyPlaybackTracker extends PlaybackTracker { log(msg) return + }, + failure: (exception) => { + log("failure") + console.log(exception) } - this.connection_id = connection.headers["Spotify-Connection-Id"] - // register device - - log("registering device") - const register_url = "https://gue1-spclient.spotify.com/track-playback/v1/devices" - const response = local_http.POST( - register_url, - // JSON.stringify({ - // connection_id: connection.headers["Spotify-Connection-Id"], - // device: { - // device_id: this.device_id, - // model: "web_player", - // name: "Web Player (Grayjay)", - // // capabilities: { - // // change_volume: false, - // // audio_podcasts: true, - // // manifest_formats: [ - // // "file_ids_mp3", - // // "file_urls_mp3" - // // ] - // // }, - // "capabilities":{"change_volume":true,"enable_play_token":true,"supports_file_media_type":true,"play_token_lost_behavior":"pause","disable_connect":false,"audio_podcasts":true,"video_playback":true,"manifest_formats":["file_ids_mp3","file_urls_mp3","manifest_urls_audio_ad","manifest_ids_video","file_urls_external","file_ids_mp4","file_ids_mp4_dual","manifest_urls_audio_ad"]}, - // client_version: "harmony:4.42.0-2780565f", - // // brand: "spotify", - // device_type: "computer" - // } - // }), - JSON.stringify( - { "device": { "brand": "spotify", "capabilities": { "change_volume": true, "enable_play_token": true, "supports_file_media_type": true, "play_token_lost_behavior": "pause", "disable_connect": false, "audio_podcasts": true, "video_playback": true, "manifest_formats": ["file_ids_mp3", "file_urls_mp3", "manifest_urls_audio_ad", "manifest_ids_video", "file_urls_external", "file_ids_mp4", "file_ids_mp4_dual", "manifest_urls_audio_ad"] }, "device_id": this.device_id, "device_type": "computer", "metadata": {}, "model": "web_player", "name": "Web Player (Chrome)", "platform_identifier": "web_player linux undefined;chrome 125.0.0.0;desktop", "is_group": false }, "outro_endcontent_snooping": false, "connection_id": this.connection_id, "client_version": "harmony:4.42.0-2780565f", "volume": 65535 } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false - ) - log(response) - - log("grabbing devices info") - const another_register_thing = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` - - const response1 = local_http.requestWithBody( - "PUT", - another_register_thing, - JSON.stringify({ - "member_type": "CONNECT_STATE", - "device": - { - "device_info": - { - "capabilities": { - "can_be_player": false, - "hidden": true, - "needs_full_player_state": true - } - } - } - }), - { - Authorization: `Bearer ${local_state.bearer_token}`, - "X-Spotify-Connection-Id": this.connection_id - }, - false) - - const device_info = JSON.parse(response1.body) - log(device_info) - - - // this.device_active = "active_device_id" in device_info - - - // this.transfered = true - - // this.registered = true - - // payloads cluster playerstate - - // payloads statemachine staemachine_id - - - // if (1 + 2 > 3) { - - // } - // log(response.body) - // gives the list of devices - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_5ef1df4daf071872bfe5ae0714efafa29f2 - //https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_ce5888d21908a6372f02c2c0155f3d7d1c9 - // actually registers a device - //https://gue1-spclient.spotify.com/track-playback/v1/devices - - }, - failure: (exception) => { - log("failure") - console.log(exception) - } - }) - } - override onInit(seconds: number): void { - this.init_seconds = seconds - } - override onProgress(seconds: number, is_playing: boolean): void { - - //{"seq_num":15,"state_ref":{"state_machine_id":"ChQ0Jnocbbg7kDx3WOjgNutMUyLLzA","state_id":"8425aeb0fef142d597d1b578c5f31061","paused":true},"sub_state":{"playback_speed":0,"position":33535,"duration":307927,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":33535,"debug_source":"pause"} - - if (this.socket_closed) { - return - } - - - if (seconds - this.init_seconds > 70 && is_playing) { - - this.socket.close() - this.socket_closed = true - log("done closing") - } - - if (this.another_one) { - return - } - - - - if (seconds - this.init_seconds > 60 && is_playing) { - - log("deleting device") - const url = `https://gue1-spclient.spotify.com/connect-state/v1/devices/hobs_${this.device_id.slice(0, 35)}` - const response = local_http.request("DELETE", url, { Authorization: `Bearer ${local_state.bearer_token}` }, false) - log(response) - - const url2 = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}` - const response2 = local_http.requestWithBody("DELETE", url2, JSON.stringify( - {"seq_num":this.seq_num,"state_ref":{"state_machine_id":this.state_machine_id,"state_id":this.playback_id,"paused":false},"sub_state":{"playback_speed":1,"position":40786,"duration":this.duration,"media_type":"AUDIO","bitrate":128000,"audio_quality":"HIGH","format":10},"previous_position":40786,"debug_source":"deregister"} - ) ,{ Authorization: `Bearer ${local_state.bearer_token}` }, false) - log(response2) - - /* - log("trigger finish") - - const initial_state_machine_id = this.state_machine_id - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": this.duration - 158, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": this.duration - 158, "playback_stats": { "ms_total_est": this.duration, "ms_metadata_duration": 0, "ms_manifest_latency": 196, "ms_latency": 1188, "start_offset_ms": 14, "ms_initial_buffering": 451, "ms_initial_rebuffer": 451, "ms_seek_rebuffering": 0, "ms_stalled": 0, "max_ms_seek_rebuffering": 0, "max_ms_stalled": 0, "n_stalls": 0, "n_rendition_upgrade": 0, "n_rendition_downgrade": 0, "bps_bandwidth_max": 0, "bps_bandwidth_min": 0, "bps_bandwidth_avg": 0, "audiocodec": "mp4", "start_bitrate": 128000, "time_weighted_bitrate": 0, "key_system": "widevine", "ms_key_latency": 1796, "total_bytes": 3494928, "local_time_ms": Date.now(), "n_dropped_video_frames": 0, "n_total_video_frames": 0, "resolution_max": 0, "resolution_min": 0, "strategy": "MSE" }, "debug_source": "track_data_finalized" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response1) - this.seq_num += 1 - this.state_machine_id = response1.state_machine.state_machine_id - - - - - log("triggering before play") - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response2: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response2) - this.state_machine_id = response2.state_machine.state_machine_id - this.seq_num += 1 - - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("speed change 1") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": true }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response3) - this.seq_num += 1 - - */ - - - - this.another_one = true - - - } - - if (this.in_between) { - return - } - - if (seconds - this.init_seconds > 50 && is_playing) { - if (!this.socket.isOpen) { - log("socket not open!") - } else { - log(`recording play of ${this.uri_id}`) - - // this.socket.close() - } - const register_playback_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - register_playback_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 30786, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 30786, "debug_source": "played_threshold_reached" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response) - this.seq_num += 1 - this.state_machine_id = response.state_machine.state_machine_id - - - - this.in_between = true - - - } - - if (this.play_recorded) { - return - } - if (seconds - this.init_seconds > 15 && is_playing) { - this.play_recorded = true - - - - // log(this.connection_id) - - - // command id is random - //t = e=>{ - // const t = Math.ceil(e / 2); - // return function(e) { - // let t = ""; - // for (let n = 0; n < e.length; n++) { - // const i = e[n]; - // i < 16 && (t += "0"), - // t += i.toString(16) - // } - // return t - // }(gt(t)) - // const un = /^[0-9a-f]{32}$/i - // , pn = ()=>ft(32) - // , mn = e=>{ - // if (e && (t = e, - // !un.test(t))) - // throw new TypeError(`Invalid commandId. Expected a 32 character hex string but got: ${e}`); - // var t; - // return e || pn() - // } - - const initial_state_machine_id = this.state_machine_id - - log("triggering before play") - const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response1: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "before_track_load" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response1) - this.state_machine_id = response1.state_machine.state_machine_id - this.seq_num += 1 - - // let res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("speed change 1") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response3: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": initial_state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 0, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response3) - this.seq_num += 1 - // this.state_machine_id = response3.state_machine.state_machine_id - - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - log("speedchange 2") - // const before_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response4: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - before_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 0, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 0, "debug_source": "speed_changed" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response4) - this.state_machine_id = response4.state_machine.state_machine_id - this.seq_num += 1 - - // res = 0 - // for(let i = 0; i<10000;i++){ - // res = (res+1)*2/2 - // } - - - log("triggering play start") - const started_playling_url = `https://gue1-spclient.spotify.com/track-playback/v1/devices/${this.device_id}/state` - const response: { readonly state_machine: { readonly state_machine_id: string } } = JSON.parse(local_http.requestWithBody( - "PUT", - started_playling_url, - // JSON.stringify({ - // debug_source: "played_threshold_reached", - - // }), - JSON.stringify( - { "seq_num": this.seq_num, "state_ref": { "state_machine_id": this.state_machine_id, "state_id": this.playback_id, "paused": false }, "sub_state": { "playback_speed": 1, "position": 1360, "duration": this.duration, "media_type": "AUDIO", "bitrate": 128000, "audio_quality": "HIGH", "format": 10 }, "previous_position": 1360, "debug_source": "started_playing" } - ), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false).body) - log(response) - this.state_machine_id = response.state_machine.state_machine_id - this.seq_num += 1 - // this.start_triggered = true - - - } + }) - if (this.transfered) { - return - } - if (seconds - this.init_seconds > 5 && is_playing) { - log("transfering to device") - const transfer_url = `https://gue1-spclient.spotify.com/connect-state/v1/player/command/from/${this.device_id}/to/${this.device_id}` - const transfer_response = local_http.POST( - transfer_url, - // this.device_active ? JSON.stringify( - // { "transfer_options": { "restore_paused": "restore" }, "interaction_id": "cf075506-9bc9-4af6-a164-93778f310345", "command_id": "3bcf58bc37afa628c3d441df53efc469" } - // ) : - JSON.stringify({ - "command": { - "context": { - // "uri": "spotify:track:6CbPF34njo6PpWYTFQrMZN", - // "url": "context://spotify:track:6CbPF34njo6PpWYTFQrMZN", - uri: `spotify:album:${this.album_uri_id}`, - url: `context://spotify:album:${this.album_uri_id}`, - "metadata": {} - }, - "play_origin": { - "feature_identifier": "album", - // "feature_identifier": "track", - "feature_version": "web-player_2024-05-24_1716563359844_29d0a3b", - "referrer_identifier": "your_library" - }, - "options": { - "license": "on-demand", - "skip_to": { - track_index: this.track_album_index, - track_uid: this.uid, - track_uri: this.track_uri - }, - "player_options_override": {} - }, - "logging_params": { - "page_instance_ids": [ - "54d854fb-fcb4-4e1f-a600-4fd9cbfaac2e" - ], - "interaction_ids": [ - "d3697919-e8be-425d-98bc-1ea70e28963a" - ], - "command_id": "46b1903536f6eda76783840368982c5e" - }, - "endpoint": "play" - } - }), - // JSON.stringify({ - // command: { - // endpoint: "play", - // context: { - // metadata: {}, - // uri: "spotify:track:7aohwSiTDju51QmC54AUba", - // url: "context://spotify:track:7aohwSiTDju51QmC54AUba" - // }, - // "logging_params": { "page_instance_ids": ["5616d9d6-c44f-4cda-a7c2-167890dd2beb"], "interaction_ids": ["72ab0dbb-7a83-4644-8bad-550d65ff8e77"], "command_id": "0f85a8b2347ff239207f32344d7da9d6" }, - // "options": { - // "license": "on-demand", "skip_to": {}, "player_options_override": {} - // }, - // "play_origin": { "feature_identifier": "track", "feature_version": "web-player_2024-05-23_1716493666036_b53deef", "referrer_identifier": "your_library" }, - // } - // // command_id: "1ec91233c1cd60f69f5de11f513b2887", - // // transfer_options: { - // // restore_paused: "pause" - // // } - // }), - { Authorization: `Bearer ${local_state.bearer_token}` }, - false - ) - log(transfer_response) - this.transfered = true } } } diff --git a/src/types.ts b/src/types.ts index 50fb27f..cd256ce 100644 --- a/src/types.ts +++ b/src/types.ts @@ -288,9 +288,12 @@ export type SectionItemEpisode = { readonly coverArt: null | { readonly sources: ImageSources } + readonly __typename: "Podcast" + } | { + readonly __typename: "NotFound" } } - readonly releaseDate: { + readonly releaseDate: null | { readonly isoString: string } } @@ -359,7 +362,7 @@ export type SectionItemArtist = { export type GenrePlaylistSection = { readonly data: { readonly __typename: "BrowseGenericSectionData" - readonly title: { + readonly title: null | { readonly transformedLabel: string } } @@ -522,6 +525,13 @@ export type TranscriptResponse = { } | { readonly startMs: number readonly title: unknown + } | { + readonly startMs: number + readonly fallback: { + readonly sentence: { + readonly text: string + } + } })[] readonly language: "en" } @@ -649,6 +659,8 @@ export type TrackMetadataResponse = { readonly data: { readonly trackUnion: { readonly playcount: string + readonly uri: string + readonly trackNumber: number readonly firstArtist: { readonly items: { readonly id: string @@ -664,6 +676,7 @@ export type TrackMetadataResponse = { readonly date: { readonly isoString: string } + readonly uri: string } readonly duration: { readonly totalMilliseconds: number @@ -731,13 +744,18 @@ export type SongMetadataResponse = { name: string }[] readonly canonical_uri: string - readonly file: { - readonly file_id: string - // only MP4_128 and MP4_256 are available on the web and therefore what we support - readonly format: "MP4_128" | "AAC_24" | "MP4_256" | "MP4_256_DUAL" | "OGG_VORBIS_320" + readonly file: Files | undefined + readonly alternative: undefined | { + readonly file: Files }[] } +type Files = { + readonly file_id: string + // only MP4_128 and MP4_256 are available on the web and therefore what we support + readonly format: "MP4_128" | "AAC_24" | "MP4_256" | "MP4_256_DUAL" | "OGG_VORBIS_320" +}[] + export type ShowMetadataResponse = { readonly data: { readonly podcastUnionV2: { @@ -805,6 +823,7 @@ export type Tracks = { } readonly uri: string } + readonly uid: string }[] readonly totalCount: number } -- GitLab