@jsenv/core 27.0.0-alpha.48 → 27.0.0-alpha.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/event_source_client.js +2 -6
- package/dist/event_source_client.js.map +13 -14
- package/dist/import_meta_hot.js +86 -0
- package/dist/import_meta_hot.js.map +42 -0
- package/package.json +2 -2
- package/src/build/build.js +21 -7
- package/src/build/build_urls_generator.js +2 -2
- package/src/omega/kitchen.js +4 -4
- package/src/omega/server/file_service.js +4 -4
- package/src/omega/server/user_agent.js +4 -2
- package/src/omega/url_graph/url_info_transformations.js +2 -2
- package/src/plugins/bundling/js_module/bundle_js_module.js +32 -2
- package/src/plugins/bundling/jsenv_plugin_bundling.js +9 -6
- package/src/plugins/html_supervisor/jsenv_plugin_html_supervisor.js +2 -2
- package/src/plugins/import_meta_hot/jsenv_plugin_import_meta_hot.js +12 -8
- package/src/plugins/importmap/jsenv_plugin_importmap.js +2 -2
- package/src/plugins/inline/jsenv_plugin_html_inline_content.js +5 -5
- package/src/plugins/inline/jsenv_plugin_js_inline_content.js +2 -2
- package/src/plugins/plugin_controller.js +3 -0
- package/src/plugins/plugins.js +3 -1
- package/src/plugins/transpilation/as_js_classic/jsenv_plugin_script_type_module_as_classic.js +3 -3
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { urlHotMetas } from "./import_meta_hot.js";
|
|
2
|
+
|
|
1
3
|
/* eslint-env browser */
|
|
2
4
|
const createEventSourceConnection = (eventSourceUrl, events = {}, {
|
|
3
5
|
retryMaxAttempt = Infinity,
|
|
@@ -203,12 +205,6 @@ const listenEvent = (emitter, event, callback) => {
|
|
|
203
205
|
};
|
|
204
206
|
};
|
|
205
207
|
|
|
206
|
-
/*
|
|
207
|
-
* https://vitejs.dev/guide/api-hmr.html#hot-accept-deps-cb
|
|
208
|
-
* https://modern-web.dev/docs/dev-server/plugins/hmr/
|
|
209
|
-
*/
|
|
210
|
-
const urlHotMetas = {};
|
|
211
|
-
|
|
212
208
|
const isAutoreloadEnabled = () => {
|
|
213
209
|
const value = window.localStorage.getItem("autoreload");
|
|
214
210
|
|
|
@@ -1,23 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"file": "event_source_client.js",
|
|
4
3
|
"sources": [
|
|
5
4
|
"../node_modules/@jsenv/utils/event_source/event_source.js",
|
|
6
|
-
"../src/plugins/import_meta_hot/client/import_meta_hot.js",
|
|
7
5
|
"../src/plugins/autoreload/dev_sse/client/autoreload_preference.js",
|
|
8
6
|
"../src/plugins/autoreload/dev_sse/client/url_helpers.js",
|
|
9
7
|
"../node_modules/@jsenv/utils/html_ast/html_attribute_src_set.js",
|
|
10
8
|
"../src/plugins/autoreload/dev_sse/client/reload.js",
|
|
11
|
-
"../src/plugins/autoreload/dev_sse/client/event_source_client.js"
|
|
12
|
-
|
|
13
|
-
"sourcesContent": [
|
|
14
|
-
"/* eslint-env browser */\n\nexport const createEventSourceConnection = (\n eventSourceUrl,\n events = {},\n { retryMaxAttempt = Infinity, retryAllocatedMs = Infinity, lastEventId } = {},\n) => {\n const { EventSource } = window\n if (typeof EventSource !== \"function\") {\n return () => {}\n }\n\n const eventSourceOrigin = new URL(eventSourceUrl).origin\n Object.keys(events).forEach((eventName) => {\n const eventCallback = events[eventName]\n events[eventName] = (e) => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId\n }\n eventCallback(e)\n }\n }\n })\n\n const status = {\n value: \"default\",\n goTo: (value) => {\n if (value === status.value) {\n return\n }\n status.value = value\n status.onchange()\n },\n onchange: () => {},\n }\n let _disconnect = () => {}\n\n const attemptConnection = (url) => {\n const eventSource = new EventSource(url, {\n withCredentials: true,\n })\n _disconnect = () => {\n if (status.value !== \"connecting\" && status.value !== \"connected\") {\n console.warn(\n `disconnect() ignored because connection is ${status.value}`,\n )\n return\n }\n eventSource.onerror = undefined\n eventSource.close()\n Object.keys(events).forEach((eventName) => {\n eventSource.removeEventListener(eventName, events[eventName])\n })\n status.goTo(\"disconnected\")\n }\n let retryCount = 0\n let firstRetryMs = Date.now()\n eventSource.onerror = (errorEvent) => {\n if (errorEvent.target.readyState === EventSource.CONNECTING) {\n if (retryCount > retryMaxAttempt) {\n console.info(`could not connect after ${retryMaxAttempt} attempt`)\n _disconnect()\n return\n }\n\n if (retryCount === 0) {\n firstRetryMs = Date.now()\n } else {\n const allRetryDuration = Date.now() - firstRetryMs\n if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {\n console.info(\n `could not connect in less than ${retryAllocatedMs} ms`,\n )\n _disconnect()\n return\n }\n }\n\n retryCount++\n status.goTo(\"connecting\")\n return\n }\n\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n _disconnect()\n return\n }\n }\n eventSource.onopen = () => {\n status.goTo(\"connected\")\n }\n Object.keys(events).forEach((eventName) => {\n eventSource.addEventListener(eventName, events[eventName])\n })\n if (!events.hasOwnProperty(\"welcome\")) {\n eventSource.addEventListener(\"welcome\", (e) => {\n if (e.origin === eventSourceOrigin && e.lastEventId) {\n lastEventId = e.lastEventId\n }\n })\n }\n status.goTo(\"connecting\")\n }\n\n let connect = () => {\n attemptConnection(eventSourceUrl)\n connect = () => {\n attemptConnection(\n lastEventId\n ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId)\n : eventSourceUrl,\n )\n }\n }\n\n const removePageUnloadListener = listenPageUnload(() => {\n if (status.value === \"connecting\" || status.value === \"connected\") {\n _disconnect()\n }\n })\n\n const destroy = () => {\n removePageUnloadListener()\n _disconnect()\n }\n\n return {\n status,\n connect,\n disconnect: () => _disconnect(),\n destroy,\n }\n}\n\nconst addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {\n if (url.indexOf(\"?\") === -1) {\n url += \"?\"\n } else {\n url += \"&\"\n }\n return `${url}last-event-id=${encodeURIComponent(lastEventId)}`\n}\n\n// const listenPageMightFreeze = (callback) => {\n// const removePageHideListener = listenEvent(window, \"pagehide\", (pageHideEvent) => {\n// if (pageHideEvent.persisted === true) {\n// callback(pageHideEvent)\n// }\n// })\n// return removePageHideListener\n// }\n\n// const listenPageFreeze = (callback) => {\n// const removeFreezeListener = listenEvent(document, \"freeze\", (freezeEvent) => {\n// callback(freezeEvent)\n// })\n// return removeFreezeListener\n// }\n\n// const listenPageIsRestored = (callback) => {\n// const removeResumeListener = listenEvent(document, \"resume\", (resumeEvent) => {\n// removePageshowListener()\n// callback(resumeEvent)\n// })\n// const removePageshowListener = listenEvent(window, \"pageshow\", (pageshowEvent) => {\n// if (pageshowEvent.persisted === true) {\n// removePageshowListener()\n// removeResumeListener()\n// callback(pageshowEvent)\n// }\n// })\n// return () => {\n// removeResumeListener()\n// removePageshowListener()\n// }\n// }\n\nconst listenPageUnload = (callback) => {\n const removePageHideListener = listenEvent(\n window,\n \"pagehide\",\n (pageHideEvent) => {\n if (pageHideEvent.persisted !== true) {\n callback(pageHideEvent)\n }\n },\n )\n return removePageHideListener\n}\n\nconst listenEvent = (emitter, event, callback) => {\n emitter.addEventListener(event, callback)\n return () => {\n emitter.removeEventListener(event, callback)\n }\n}\n",
|
|
15
|
-
"/*\n * https://vitejs.dev/guide/api-hmr.html#hot-accept-deps-cb\n * https://modern-web.dev/docs/dev-server/plugins/hmr/\n */\n\nexport const urlHotMetas = {}\n\nexport const createImportMetaHot = (importMetaUrl) => {\n const data = {}\n const url = asUrlWithoutHmrQuery(importMetaUrl)\n\n return {\n data,\n accept: (firstArg, secondArg) => {\n if (!firstArg) {\n addUrlMeta(url, {\n dependencies: [url],\n acceptCallback: () => {},\n })\n return\n }\n if (typeof firstArg === \"function\") {\n addUrlMeta(url, {\n dependencies: [url],\n acceptCallback: firstArg,\n })\n return\n }\n if (typeof firstArg === \"string\") {\n addUrlMeta(url, {\n dependencies: [firstArg],\n acceptCallback: secondArg,\n })\n return\n }\n if (Array.isArray(firstArg)) {\n addUrlMeta(url, {\n dependencies: firstArg,\n acceptCallback: secondArg,\n })\n return\n }\n throw new Error(\n `invalid call to import.meta.hot.accept(), received ${firstArg}`,\n )\n },\n dispose: (callback) => {\n addUrlMeta(url, {\n disposeCallback: () => {\n return callback(data)\n },\n })\n },\n decline: () => {\n addUrlMeta(url, {\n declined: true,\n })\n },\n invalidate: () => {\n addUrlMeta(url, {\n invalidated: true,\n })\n },\n }\n}\n\nconst addUrlMeta = (url, meta) => {\n urlHotMetas[url] = {\n ...urlHotMetas[url],\n ...meta,\n }\n}\n\nconst asUrlWithoutHmrQuery = (url) => {\n const urlObject = new URL(url)\n if (urlObject.searchParams.has(\"hmr\")) {\n urlObject.searchParams.delete(\"hmr\")\n urlObject.searchParams.delete(\"v\")\n return urlObject.href\n }\n return url\n}\n",
|
|
16
|
-
"export const isAutoreloadEnabled = () => {\n const value = window.localStorage.getItem(\"autoreload\")\n if (value === \"0\") {\n return false\n }\n return true\n}\n\nexport const setAutoreloadPreference = (value) => {\n window.localStorage.setItem(\"autoreload\", value ? \"1\" : \"0\")\n}\n",
|
|
17
|
-
"export const compareTwoUrlPaths = (url, otherUrl) => {\n if (url === otherUrl) {\n return true\n }\n const urlObject = new URL(url)\n const otherUrlObject = new URL(otherUrl)\n return (\n urlObject.origin === otherUrlObject.origin &&\n urlObject.pathname === otherUrlObject.pathname\n )\n}\n\nexport const injectQuery = (url, query) => {\n const urlObject = new URL(url)\n const { searchParams } = urlObject\n Object.keys(query).forEach((key) => {\n searchParams.set(key, query[key])\n })\n return String(urlObject)\n}\n",
|
|
18
|
-
"export const htmlAttributeSrcSet = {\n parse: (srcset) => {\n const srcCandidates = []\n srcset.split(\",\").forEach((set) => {\n const [specifier, descriptor] = set.trim().split(\" \")\n srcCandidates.push({\n specifier,\n descriptor,\n })\n })\n return srcCandidates\n },\n stringify: (srcCandidates) => {\n const srcset = srcCandidates\n .map(({ specifier, descriptor }) => `${specifier} ${descriptor}`)\n .join(\", \")\n return srcset\n },\n}\n",
|
|
19
|
-
"import { htmlAttributeSrcSet } from \"@jsenv/utils/html_ast/html_attribute_src_set.js\"\n\nimport { injectQuery, compareTwoUrlPaths } from \"./url_helpers.js\"\n\nexport const reloadHtmlPage = () => {\n window.location.reload(true)\n}\n\n// This function can consider everything as hot reloadable:\n// - no need to check [hot-accept]and [hot-decline] attributes for instance\n// This is because if something should full reload, we receive \"full_reload\"\n// from server and this function is not called\nexport const reloadDOMNodesUsingUrl = (urlToReload) => {\n const mutations = []\n const shouldReloadUrl = (urlCandidate) => {\n return compareTwoUrlPaths(urlCandidate, urlToReload)\n }\n const visitNodeAttributeAsUrl = (node, attributeName) => {\n let attribute = node[attributeName]\n if (!attribute) {\n return\n }\n if (SVGAnimatedString && attribute instanceof SVGAnimatedString) {\n attribute = attribute.animVal\n }\n if (!shouldReloadUrl(attribute)) {\n return\n }\n mutations.push(() => {\n node[attributeName] = injectQuery(attribute, { hmr: Date.now() })\n })\n }\n Array.from(document.querySelectorAll(`link[rel=\"stylesheet\"]`)).forEach(\n (link) => {\n visitNodeAttributeAsUrl(link, \"href\")\n },\n )\n Array.from(document.querySelectorAll(`link[rel=\"icon\"]`)).forEach((link) => {\n visitNodeAttributeAsUrl(link, \"href\")\n })\n Array.from(document.querySelector(\"script\")).forEach((script) => {\n visitNodeAttributeAsUrl(script, \"src\")\n })\n // There is no real need to update a.href because the ressource will be fetched when clicked.\n // But in a scenario where the ressource was already visited and is in browser cache, adding\n // the dynamic query param ensure the cache is invalidated\n Array.from(document.querySelectorAll(\"a\")).forEach((a) => {\n visitNodeAttributeAsUrl(a, \"href\")\n })\n // About iframes:\n // - By default iframe itself and everything inside trigger a parent page full-reload\n // - Adding [hot-accept] on the iframe means parent page won't reload when iframe full/hot reload\n // In that case and if there is code in the iframe and parent doing post message communication:\n // you must put import.meta.hot.decline() for code involved in communication.\n // (both in parent and iframe)\n Array.from(document.querySelectorAll(\"img\")).forEach((img) => {\n visitNodeAttributeAsUrl(img, \"src\")\n const srcset = img.srcset\n if (srcset) {\n const srcCandidates = htmlAttributeSrcSet.parse(srcset)\n srcCandidates.forEach((srcCandidate) => {\n const url = new URL(srcCandidate.specifier, `${window.location.href}`)\n if (shouldReloadUrl(url)) {\n srcCandidate.specifier = injectQuery(url, { hmr: Date.now() })\n }\n })\n mutations.push(() => {\n img.srcset = htmlAttributeSrcSet.stringify(srcCandidates)\n })\n }\n })\n Array.from(document.querySelectorAll(\"source\")).forEach((source) => {\n visitNodeAttributeAsUrl(source, \"src\")\n })\n // svg image tag\n Array.from(document.querySelectorAll(\"image\")).forEach((image) => {\n visitNodeAttributeAsUrl(image, \"href\")\n })\n // svg use\n Array.from(document.querySelectorAll(\"use\")).forEach((use) => {\n visitNodeAttributeAsUrl(use, \"href\")\n })\n mutations.forEach((mutation) => {\n mutation()\n })\n}\n\nexport const reloadJsImport = async (url) => {\n const urlWithHmr = injectQuery(url, { hmr: Date.now() })\n const namespace = await import(urlWithHmr)\n return namespace\n}\n\nexport const reloadAllCss = () => {\n const links = Array.from(document.getElementsByTagName(\"link\"))\n links.forEach((link) => {\n if (link.rel === \"stylesheet\") {\n link.href = injectQuery(link.href, { hmr: Date.now() })\n }\n })\n}\n",
|
|
20
|
-
"import { createEventSourceConnection } from \"@jsenv/utils/event_source/event_source.js\"\nimport { urlHotMetas } from \"../../../import_meta_hot/client/import_meta_hot.js\"\nimport {\n isAutoreloadEnabled,\n setAutoreloadPreference,\n} from \"./autoreload_preference.js\"\nimport { compareTwoUrlPaths } from \"./url_helpers.js\"\nimport {\n reloadHtmlPage,\n reloadDOMNodesUsingUrl,\n reloadJsImport,\n} from \"./reload.js\"\n\nconst reloadMessages = []\nconst reloadMessagesSignal = { onchange: () => {} }\nlet pendingCallbacks = []\nlet running = false\nconst addToHotQueue = async (callback) => {\n pendingCallbacks.push(callback)\n dequeue()\n}\nconst dequeue = async () => {\n if (running) {\n return\n }\n const callbacks = pendingCallbacks.slice()\n pendingCallbacks = []\n running = true\n await callbacks.reduce(async (previous, callback) => {\n await previous\n await callback()\n }, Promise.resolve())\n running = false\n if (pendingCallbacks.length) {\n dequeue()\n }\n}\n\nconst applyReloadMessageEffects = async () => {\n const someEffectIsFullReload = reloadMessages.some(\n (reloadMessage) => reloadMessage.type === \"full\",\n )\n if (someEffectIsFullReload) {\n reloadHtmlPage()\n return\n }\n\n const onApplied = (reloadMessage) => {\n const index = reloadMessages.indexOf(reloadMessage)\n reloadMessages.splice(index, 1)\n reloadMessagesSignal.onchange()\n }\n const setReloadMessagePromise = (reloadMessage, promise) => {\n reloadMessage.status = \"pending\"\n promise.then(\n () => {\n onApplied(reloadMessage)\n },\n (e) => {\n // TODO: reuse error display from html supervisor\n console.error(e)\n console.error(\n `[hmr] Failed to reload after ${reloadMessage.reason}.\nThis could be due to syntax errors or importing non-existent modules (see errors above)`,\n )\n reloadMessage.status = \"failed\"\n reloadMessagesSignal.onchange()\n },\n )\n }\n reloadMessages.forEach((reloadMessage) => {\n if (reloadMessage.type === \"hot\") {\n const promise = addToHotQueue(() => {\n return applyHotReload(reloadMessage)\n })\n setReloadMessagePromise(reloadMessage, promise)\n } else {\n setReloadMessagePromise(reloadMessage, Promise.resolve())\n }\n })\n reloadMessagesSignal.onchange() // reload status is \"pending\"\n}\n\nconst applyHotReload = async ({ hotInstructions }) => {\n await hotInstructions.reduce(\n async (previous, { type, boundary, acceptedBy }) => {\n await previous\n\n const urlToFetch = new URL(boundary, `${window.location.origin}/`).href\n const urlHotMeta = urlHotMetas[urlToFetch]\n // TODO: we should return when there is no url hot meta because\n // it means code was not executed (code splitting with dynamic import)\n // if (!urlHotMeta) {return }\n\n if (type === \"prune\") {\n console.group(`[jsenv] prune: ${boundary} (inside ${acceptedBy})`)\n } else if (acceptedBy === boundary) {\n console.group(`[jsenv] hot reloading: ${boundary}`)\n } else {\n console.group(`[jsenv] hot reloading: ${acceptedBy} inside ${boundary}`)\n }\n if (urlHotMeta && urlHotMeta.disposeCallback) {\n console.log(`call dispose callback`)\n await urlHotMeta.disposeCallback()\n }\n if (type === \"prune\") {\n delete urlHotMetas[urlToFetch]\n console.log(`cleanup pruned url`)\n console.groupEnd()\n return null\n }\n if (type === \"js_module\") {\n console.log(`importing js module`)\n const namespace = await reloadJsImport(urlToFetch)\n if (urlHotMeta && urlHotMeta.acceptCallback) {\n await urlHotMeta.acceptCallback(namespace)\n }\n console.log(`js module import done`)\n console.groupEnd()\n return namespace\n }\n if (type === \"html\") {\n if (!compareTwoUrlPaths(urlToFetch, window.location.href)) {\n // we are not in that HTML page\n return null\n }\n console.log(`reloading url`)\n const urlToReload = new URL(acceptedBy, `${window.location.origin}/`)\n .href\n reloadDOMNodesUsingUrl(urlToReload)\n console.log(`url reloaded`)\n console.groupEnd()\n return null\n }\n console.warn(`unknown update type: \"${type}\"`)\n return null\n },\n Promise.resolve(),\n )\n}\n\nconst addReloadMessage = (reloadMessage) => {\n reloadMessages.push(reloadMessage)\n if (isAutoreloadEnabled()) {\n applyReloadMessageEffects()\n } else {\n reloadMessagesSignal.onchange()\n }\n}\n\nconst eventsourceConnection = createEventSourceConnection(\n document.location.href,\n {\n reload: ({ data }) => {\n const reloadMessage = JSON.parse(data)\n addReloadMessage(reloadMessage)\n },\n },\n {\n retryMaxAttempt: Infinity,\n retryAllocatedMs: 20 * 1000,\n },\n)\n\nconst { status, connect, disconnect } = eventsourceConnection\nconnect()\nwindow.__jsenv_event_source_client__ = {\n status,\n connect,\n disconnect,\n isAutoreloadEnabled,\n setAutoreloadPreference,\n urlHotMetas,\n reloadMessages,\n reloadMessagesSignal,\n applyReloadMessageEffects,\n addReloadMessage,\n}\n\n// const findHotMetaUrl = (originalFileRelativeUrl) => {\n// return Object.keys(urlHotMetas).find((compileUrl) => {\n// return (\n// parseCompiledUrl(compileUrl).fileRelativeUrl === originalFileRelativeUrl\n// )\n// })\n// }\n"
|
|
9
|
+
"../src/plugins/autoreload/dev_sse/client/event_source_client.js",
|
|
10
|
+
""
|
|
21
11
|
],
|
|
22
12
|
"names": [
|
|
23
13
|
"createEventSourceConnection",
|
|
@@ -82,7 +72,6 @@
|
|
|
82
72
|
"persisted",
|
|
83
73
|
"emitter",
|
|
84
74
|
"event",
|
|
85
|
-
"urlHotMetas",
|
|
86
75
|
"isAutoreloadEnabled",
|
|
87
76
|
"localStorage",
|
|
88
77
|
"getItem",
|
|
@@ -171,6 +160,7 @@
|
|
|
171
160
|
"boundary",
|
|
172
161
|
"acceptedBy",
|
|
173
162
|
"urlToFetch",
|
|
163
|
+
"urlHotMetas",
|
|
174
164
|
"group",
|
|
175
165
|
"urlHotMeta",
|
|
176
166
|
"disposeCallback",
|
|
@@ -184,5 +174,14 @@
|
|
|
184
174
|
"JSON",
|
|
185
175
|
"__jsenv_event_source_client__"
|
|
186
176
|
],
|
|
187
|
-
"mappings": "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"
|
|
177
|
+
"mappings": "AMAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC;AACnD;AACA,ANFA,CMEC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,ANDO,CMCN,CAAC,CAAC,CAAC,CAAC,CAAC,ANDOA,CMCN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANDO,CMCN,CAAC,CAAC,ANDO,CMCN,ANAnCC,CMAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANDR,CMCS,CAAC,ANCnDC,CMDoD,CAAC,CAAC,CAAC,CAAC,CAAC,ANCnD,CMDoD,CAAC,CAAC,ANCnD,CMDoD,CAAC,ANDrB,CMCsB,CAAC,ANEhE,CMFiE;AACnE,ANCIC,CMDH,CAAC,ANCEA,CMDD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANCE,CMDD,CAAC,CAAC,ANCEC,CMDD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANC1B,CMD2B;AAC7B,ANAgCC,CMA/B,CAAC,ANA8BA,CMA7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANA8B,CMA7B,CAAC,CAAC,ANA8BD,CMA7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANA3B,CMA4B;AAC9B,AND6DE,CMC5D,CAAC,AND2DA,CMC1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANDgDA;AME7D,ANFE,CMED,ANFC,CMEA,CAAC,CAAC,ANFyE,CMExE,CAAC,ANLqC,CMKpC,CAAC,CAAC,CAAC,CAAC,ANDN,CMCO;AACZ,CAAC,CAAC,ANDA,CMCC,CAAC,CAAC,CAAC,CAAC,CAAC,ANDA,CMCC;AACT,ANFUC,CMET,CAAC,CAAC,CAAC,ANFMA,CMEL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANFLA;AMGV,ANHQ,CMGP,CAAC,CAAC,ANHK,CMGJ,CAAC,CAAC,ANHoBC,CMGnB,CAAC,CAAC,CAAC,CAAC,CAAC,ANHV,CMGW,ANHX;AMIF;AACA,ANJE,CMID,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJAD,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJlB,CMImB,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJrC,CMIsC,CAAC,ANJA,CMIC;AAC1C,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,ANJf,CMIgB,ANJhB;AMKJ,ANJG,CMIF,CAAC,CAAC,ANJA;AMKH;AACA,ANJE,CMID,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJAE,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,ANJAC,CMIC,CAAC,CAAC,ANJP,CMIQ,ANJAT,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJtB,CMIuB,CAAC,ANJAU,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJxD,CMIyD,ANJzD;AMKF,CAAC,CAAC,ANJAC,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,ANJAC,CMIC,CAAC,CAAC,CAAC,ANJX,CMIY,ANJAX,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJlB,CMImB,CAAC,ANJAY,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJ3B,CMI4B,ANJCC,CMIA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJT,CMIU,CAAC,CAAC,CAAC,ANJE,CMID;AAC5C,ANJI,CMIH,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJAC,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,CAAC,CAAC,ANJAd,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJA,CMIC,ANJAa,CMIC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANJV,CMIW,ANJvC,CMIwC,ANJxC;AMKJ;AACA,ANLIb,CMKH,CAAC,CAAC,CAAC,ANLAA,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,ANLAa,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLV,CMKW,ANLjB,CMKkB,CAAC,CAAC,ANLCE,CMKA,ANLD,CMKE,CAAC,CAAC,CAAC,ANLE,CMKD;AAC9B,ANLM,CMKL,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,ANLAA,CMKC,ANLA,CMKC,ANLAN,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLR,CMKS,CAAC,CAAC,CAAC,CAAC,ANLAF,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLlC,CMKmC,CAAC,ANLA,CMKC;AAC3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,ANLAQ,CMKC,ANLA,CMKC,ANLAX,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLjB,CMKkB,CAAC,ANLA,CMKC;AAC5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLAA,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,ANLAW,CMKC,ANLA,CMKC,ANLAX,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANL3B,CMK4B,ANL5B;AMMV,ANLS,CMKR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA;AMMT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNAU,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,ANNAC,CMMC,ANNF,CMMG,ANNhB,CMMiB,ANNjB;AMOR,ANNO,CMMN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA;AMOP,CAAC,CAAC,CAAC,CAAC,CAAC,ANbD,CMaE,ANbF;AMcJ,CAAC,CAAC,CAAC,ANhBD,CMgBE,ANhBF,CMgBG,ANhBH;AMiBF,ANLE,CMKD,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLAC,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,ANLA,CMKC;AAClB,ANLIC,CMKH,CAAC,CAAC,CAAC,ANLAA,CMKC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNH,CMMI;AACrB,CAAC,CAAC,CAAC,CAAC,ANLAC,CMKC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,ANLCD,CMKA,CAAC,CAAC,CAAC,CAAC,ANLL,CMKM,CAAC,CAAC,CAAC,ANLE,CMKD;AACpB,ANLM,CMKL,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,ANLAA,CMKC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,CAAC,ANLAD,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,ANLAC,CMKC,CAAC,CAAC,CAAC,CAAC,ANL1B,CMK2B,CAAC,ANLA,CMKC;AACnC,ANLQ,CMKP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA,CMKC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLP;AMMR,ANLO,CMKN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANLA;AMMP;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNAD,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,ANNAC,CMMC,CAAC,CAAC,CAAC,CAAC,ANNZ,CMMa,CAAC,CAAC,ANNAA,CMMC,CAAC,CAAC,CAAC,CAAC,ANNpB,CMMqB,ANNrB;AMON,ANNMD,CMML,CAAC,CAAC,CAAC,CAAC,CAAC,ANNAA,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,ANNAG,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNf,CMMgB,CAAC,ANNjB,CMMkB,ANNlB;AMON,CAAC,CAAC,CAAC,CAAC,CAAC,ANdY,CMcX;AACN,CAAC,CAAC,CAAC,CAAC,ANNAA,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,CAAC,ANNA,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,CAAC,ANNA;AMOtB,CAAC,CAAC,CAAC,ANhBD,CMgBE,ANhBF;AMiBF;AACA,ANPE,CMOD,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,ANPAC,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,ANP1B,CMO2B,ANP3B;AMQF;AACA,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAC,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,ANPCC,CMOA,CAAC,CAAC,ANPH,CMOI,CAAC,CAAC,CAAC,ANPE,CMOD;AACpC,ANPI,CMOH,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAC,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,ANPAlB,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPf,CMOgB,ANPAiB,CMOC,CAAC,CAAC,ANPnB,CMOoB,CAAC,ANPA,CMOC;AAC9C,ANPME,CMOL,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,CAAC,ANPA,CMOC,CAAC,CAAC,CAAC,ANPJ;AMQvB,ANT6C,CMS5C,CAAC,CAAC,CAAC,CAAC,ANTmB,CMSlB,ANTF,CMSG,ANTH;AMUJ;AACA,ANRIJ,CMQH,CAAC,CAAC,CAAC,ANRAA,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC;AACzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,ANRAJ,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,ANRAC,CMQC,CAAC,CAAC,CAAC,CAAC,ANRZ,CMQa,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANR7B,CMQ8B,CAAC,CAAC,CAAC,ANRAD,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,ANRAC,CMQC,CAAC,CAAC,CAAC,CAAC,ANRZ,CMQa,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRjE,CMQkE,CAAC,ANRA,CMQC;AAC1E,ANRQQ,CMQP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRAA,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,ANRAC,CMQC,CAAC,CAAC,CAAC,ANRZ,CMQa,ANPmCV,CMOlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPVA,CMOW,ANPXA,CMOY,CAAC,CAAC,CAAC,CAAC,CAAC,ANPjBA,CMOkB,ANPlBA,CMOmB,CAAC,CAAC,CAAC,CAAC,CAAC,ANPlB,CMOmB,ANPlBC,CMOmB,CAAC,CAAC,CAAC,CAAC,ANR9E,CMQ+E,ANR/E,CMQgF,ANRhF,CMQiF,ANRjF;AMSR,ANNQ,CMMP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA,CMMC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNP;AMOR,ANNO,CMMN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANNA;AMOP;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAM,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAI,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPnB,CMOoB,CAAC,CAAC,ANPAC,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANP/B,CMOgC,ANPhC;AMQN,ANPML,CMOL,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAM,CMOC,CAAC,CAAC,CAAC,CAAC,ANPjB,CMOkB,CAAC,ANPnB,CMOoB,ANPpB;AMQN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAnB,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAC,CMOC,CAAC,CAAC,CAAC,ANPX,CMOY,ANPAX,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPlB,CMOmB,CAAC,ANPAY,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANP3B,CMO4B,ANPCC,CMOA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPT,CMOU,CAAC,CAAC,CAAC,ANPE,CMOD;AAChD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAU,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAO,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANP/B,CMOgC,ANPAjB,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPzC,CMO0C,CAAC,ANPAb,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAa,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPV,CMOW,ANP5D,CMO6D,ANP7D,CMO8D,ANP9D;AMQR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTD,CMSE,ANTF,CMSG,ANTH;AMUN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPAG,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,ANPA,CMOC,ANPAE,CMOC,CAAC,CAAC,CAAC,ANPX,CMOY,ANPA,CMOC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANP1B,CMO2B,ANP3B,CMO4B,ANP5B;AMQN,CAAC,CAAC,CAAC,CAAC,CAAC,ANpBD,CMoBE,ANpBF;AMqBJ;AACA,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,ANRAa,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,ANRA,CMQC,ANRlB,CMQmB,ANRnB;AMSJ,ANRI,CMQH,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,CAAC,ANRAC,CMQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANRA,CMQC,CAAC,CAAC,ANRAC,CMQC,CAAC,CAAC,CAAC,ANRA,CMQC,ANRAC,CMQC,CAAC,CAAC,ANRR,CMQS,CAAC,ANR7B,CMQ8B,ANR9B;AMSJ;AACA,ANTIX,CMSH,CAAC,CAAC,CAAC,ANTAA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTAI,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTnB,CMSoB,CAAC,CAAC,ANTCQ,CMSA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTV,CMSW,CAAC,CAAC,CAAC,ANTE,CMSD;AACzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,CAAC,CAAC,CAAC,ANTAA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTAC,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTjB,CMSkB,ANTAC,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT5B,CMS6B,CAAC,CAAC,CAAC,CAAC,ANTAhC,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTAiC,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT3D,CMS4D,CAAC,ANTA,CMSC;AACpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,CAAC,CAAC,CAAC,ANTAP,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,CAAC,CAAC,ANTA9B,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANThC,CMSiC,CAAC,ANTA,CMSC;AAC3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTAwB,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTAc,CMSC,CAAC,CAAC,CAAC,ANTZ,CMSa,ANTb,CMSc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTvC,CMSwC,ANTxC,CMSyC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT9C,CMS+C,ANTPtC,CMSQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT9D,CMS+D,CAAC,ANThE,CMSiE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT1E,CMS2E,ANT3E,CMS4E,ANT5E,CMS6E,ANT7E;AMUV;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVAmB,CMUC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVA,CMUC,CAAC,ANVF,CMUG,ANVH;AMWrB;AACA,ANXU,CMWT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXP;AMYV,ANXS,CMWR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA;AMYT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,CAAC,ANXAW,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,ANXpB,CMWqB,CAAC,ANXA,CMWC;AAC/B,ANXUC,CMWT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXAA,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,ANXAC,CMWC,CAAC,CAAC,CAAC,ANXA,CMWC,ANXAC,CMWC,CAAC,CAAC,ANXR,CMWS,CAAC,ANXzB,CMW0B,ANX1B;AMYV,ANXS,CMWR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbD,CMaE,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC;AAChB,ANXU,CMWT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXAM,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,CAAC,ANXAP,CMWC,CAAC,CAAC,CAAC,ANXA,CMWC,ANXAC,CMWC,CAAC,CAAC,ANXR,CMWS,CAAC,CAAC,CAAC,CAAC,ANXAF,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXlD,CMWmD,ANXnD;AMYV;AACA,ANZU,CMYT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,CAAC,ANZA7B,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,CAAC,ANZAqC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,ANZArC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZ3D,CMY4D,CAAC,ANZA,CMYC;AACxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZAsB,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,ANZAc,CMYC,CAAC,CAAC,CAAC,ANZZ,CMYa,ANZb,CMYc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZ9C,CMY+C,ANZ/C,CMYgD,CAAC,CAAC,CAAC,CAAC,CAAC,ANZrD,CMYsD,ANXlBpC,CMWmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZtE,CMYuE,CAAC,ANZxE,CMYyE,CAAC,CAAC,CAAC,CAAC,ANZ7E,CMY8E,ANZ9E,CMY+E,ANZ/E,CMYgF,ANZhF;AMaZ;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXAiB,CMWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANXA,CMWC,CAAC,ANXF,CMWG,ANXH;AMYvB;AACA,ANZY,CMYX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZP;AMaZ,ANZW,CMYV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA;AMaX,ANZS,CMYR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA;AMaT;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZAW,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,ANZF,CMYG,ANZH;AMalB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZAf,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,ANZAE,CMYC,CAAC,CAAC,CAAC,ANZX,CMYY,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZxB,CMYyB,ANZzB,CMY0B,ANZ1B;AMaR,ANZQ,CMYP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZP;AMaR,ANZO,CMYN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA;AMaP;AACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,CAAC,CAAC,ANZAiB,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,ANZAC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZjB,CMYkB,ANZAC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZ5B,CMY6B,CAAC,CAAC,CAAC,CAAC,ANZAhC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,ANZAoC,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZvD,CMYwD,CAAC,ANZA,CMYC;AAChE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZArB,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANZA,CMYC,CAAC,ANZF,CMYG,ANZH;AManB;AACA,ANbQ,CMaP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbP;AMcR,ANbO,CMaN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA;AMcP,CAAC,CAAC,CAAC,CAAC,CAAC,AN3CD,CM2CE,AN3CF;AM4CJ;AACA,CAAC,CAAC,CAAC,CAAC,ANdAG,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,ANdAmB,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdlB,CMcmB,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC;AAChC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA1B,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,ANdAE,CMcC,CAAC,CAAC,CAAC,ANdX,CMcY,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdvB,CMcwB,ANdxB,CMcyB,ANdzB;AMeN,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBD,CMgBE,ANhBF;AMiBJ;AACA,CAAC,CAAC,CAAC,CAAC,ANfAR,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,ANfAC,CMeC,CAAC,CAAC,CAAC,ANfX,CMeY,ANfAX,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANflB,CMemB,CAAC,ANfAY,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANf3B,CMe4B,ANfCC,CMeA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfT,CMeU,CAAC,CAAC,CAAC,ANfE,CMeD;AAC9C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfAU,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,ANfAoB,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANf5B,CMe6B,ANfA9B,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANftC,CMeuC,CAAC,ANfAb,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,ANfAa,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfV,CMeW,ANfzD,CMe0D,ANf1D,CMe2D,ANf3D;AMgBN,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBD,CMiBE,ANjBF,CMiBG,ANjBH;AMkBJ;AACA,ANhBI,CMgBH,CAAC,CAAC,CAAC,ANhBA,CMgBC,CAAC,CAAC,CAAC,ANhBA,CMgBC,ANhBAb,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBA,CMgBC,ANhBA4C,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBrB,CMgBsB,ANhBA,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB/B,CMgBgC,ANhBrC,CMgBsC,CAAC,ANhBA,CMgBC;AAC5C,ANhBMrB,CMgBL,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBAA,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBA,CMgBC,ANhBAoB,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB5B,CMgB6B,ANhBA,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBtC,CMgBuC,CAAC,ANhBC5B,CMgBA,ANhBD,CMgBE,CAAC,CAAC,CAAC,ANhBE,CMgBD;AACpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBA,CMgBC,CAAC,CAAC,CAAC,ANhBAA,CMgBC,ANhBA,CMgBC,ANhBAN,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBR,CMgBS,CAAC,CAAC,CAAC,CAAC,ANhBAF,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB9B,CMgB+B,CAAC,CAAC,CAAC,ANhBAQ,CMgBC,ANhBA,CMgBC,ANhBAX,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBnD,CMgBoD,CAAC,ANhBA,CMgBC;AAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBAA,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBA,CMgBC,CAAC,CAAC,ANhBAW,CMgBC,ANhBA,CMgBC,ANhBAX,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB3B,CMgB4B,ANhB5B;AMiBV,ANhBS,CMgBR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBA;AMiBT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANpBD,CMoBE,ANpBF,CMoBG,ANpBH;AMqBN,ANhBK,CMgBJ,CAAC,CAAC,CAAC,CAAC,ANhBA;AMiBL;AACA,CAAC,CAAC,CAAC,CAAC,ANjBAY,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBA,CMiBC,ANjBAE,CMiBC,CAAC,CAAC,CAAC,ANjBX,CMiBY,ANjBA,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBxB,CMiByB,ANjBzB,CMiB0B,ANjB1B;AMkBJ,CAAC,CAAC,CAAC,ANlFD,CMkFE,ANlFF;AMmFF;AACA,CAAC,CAAC,ANjBA,CMiBC,CAAC,CAAC,CAAC,ANjBA2B,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBA,CMiBC,CAAC,CAAC,ANjBA,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBA,CMiBC;AACvB,CAAC,CAAC,CAAC,CAAC,ANjBAxB,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBA,CMiBC,ANjBAtB,CMiBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBf,CMiBgB,ANjBjC,CMiBkC,ANjBlC;AMkBJ;AACA,ANlBI8C,CMkBH,CAAC,CAAC,CAAC,ANlBAA,CMkBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANlBA,CMkBC,CAAC,CAAC,ANlBA,CMkBC,CAAC,CAAC,CAAC,CAAC,CAAC,ANlBA,CMkBC;AACrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANlBAxB,CMkBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANlBA,CMkBC,ANjBhBjB,CMiBiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBhB,CMiBiB,CAAC,CAAC,ANhB1B0C,CMgB2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB1B,CMgB2B,ANhB1B/C,CMgB2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBzC,CMgB0C,CAAC,ANhB1BK,CMgB2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBtD,CMgBuD,ANjBjF,CMiBkF,CAAC,CAAC,ANf3FL,CMe4F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANlB9F,CMkB+F,ANlBhH,CMkBiH,ANlBjH;AMmBN,CAAC,CAAC,CAAC,CAAC,CAAC,ANpBD,CMoBE,ANpBF;AMqBJ,CAAC,CAAC,CAAC,ANvBD,CMuBE,ANvBF;AMwBF;AACA,ANdE,CMcD,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdAgD,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,ANdAC,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC;AAC3D,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,ANdAhC,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,ANdAC,CMcC,CAAC,CAAC,CAAC,CAAC,ANdZ,CMca,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANd7B,CMc8B,CAAC,CAAC,CAAC,ANdAD,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,ANdAC,CMcC,CAAC,CAAC,CAAC,CAAC,ANdZ,CMca,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdjE,CMckE,CAAC,ANdA,CMcC;AACxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdAG,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,ANdF,CMcG,ANdH;AMejB,ANdK,CMcJ,CAAC,CAAC,CAAC,CAAC,ANdA;AMeL,ANdG,CMcF,CAAC,CAAC,ANlBgD,CMkB/C,ANlBF,CMkBG,ANlBH;AMmBF;AACA,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA6B,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC;AACzB,CAAC,CAAC,CAAC,CAAC,ANdAF,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANdA,CMcC,CAAC,ANdF,CMcG,ANdH;AMe5B;AACA,CAAC,CAAC,CAAC,CAAC,ANfA3B,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,ANfF,CMeG,ANfH;AMgBf,CAAC,CAAC,CAAC,ANlBD,CMkBE,ANlBF;AMmBF;AACA,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC;AACV,CAAC,CAAC,CAAC,CAAC,ANfAJ,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBD,CMgBE;AACX,CAAC,CAAC,CAAC,CAAC,ANfA6B,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANjBF,CMiBG;AACZ,CAAC,CAAC,CAAC,CAAC,ANfAK,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,ANfA,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA9B,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,ANlB1B,CMkB2B;AACpC,ANfI6B,CMeH,CAAC,CAAC,CAAC,ANfAA,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfPA;AMgBJ,CAAC,CAAC,CAAC,ANpBD,CMoBE,ANpBF;AMqBF,ANfC,CMeA,ANlJM,CMkJL,ANlJK;AMmJP;AACA,ANfA,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfAH,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,ANfA,CMeC,ANfAxB,CMeC,CAAC,CAAC,ANfJ,CMeK,CAAC,ANfAlB,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfjB,CMekB,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC;AACjE,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,CAAC,ANfAkB,CMeC,CAAC,CAAC,ANfA,CMeC,ANfA6B,CMeC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANfX,CMeY,ANfA,CMeC,CAAC,CAAC,ANff,CMegB,ANfK,CMeJ,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC,ANfA,CMeC,ANf3B,CMe4B,CAAC,ANfA,CMeC;AAChC,ANfI7B,CMeH,CAAC,CAAC,CAAC,ANfAA,CMeC,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,ANfV,CMeW,ANfX;AMgBJ,ANfG,CMeF,CAAC,CAAC,ANjBD,CMiBE,CAAC,CAAC,CAAC,CAAC,CAAC,ANfA,CMeC;AACV,ANfIA,CMeH,CAAC,CAAC,CAAC,ANfAA,CMeC,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,CAAC,ANfA,CMeC,CAAC,CAAC,ANfV,CMeW,ANfX;AMgBJ,ANfG,CMeF,CAAC,CAAC,ANfA;AMgBH;AACA,ANhBE,CMgBD,CAAC,ANhBA,CMgBC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBP,CMgBQ,CAAC,ANhBT,CMgBU,ANhBV,CMgBW,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBhB,CMgBiB,ANhBPA,CMgBQ,CAAC,CAAC,ANhBpB,CMgBqB,CAAC,ANhBtB,CMgBuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBtC,CMgBuC,ANhBvC,CMgBwC,ANhBxC,CMgByC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB9C,CMgB+C,ANhBjB8B,CMgBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhBjB,CMgBkB,ANhBjBhD,CMgBkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANhB7B,CMgB8B,ANhB9E,CMgB+E,ANhB/E,CMgBgF,ANhBhF;AMiBF,ANhBC,CMgBA,ANvBD,CMuBE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,ANdA,CMcC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,ANdA,CMcC,CAAC,CAAC,CAAC;AACJ,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,ANbA,CMaC,CAAC,CAAC,CAAC;AACJ,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,ANZA,CMYC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,ANZA,CMYC,CAAC,CAAC,CAAC;AACJ;AACA;AACA,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA4C,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA,CMaC,CAAC,CAAC,ANbCK,CMaA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbR,CMaS,CAAC,CAAC,CAAC,ANbE,CMaD;AACtC,CAAC,CAAC,ANbA,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbAC,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA,CMaC,CAAC,CAAC,ANbAC,CMaC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbA,CMaC,ANZzCjD,CMY0C,CAAC,CAAC,CAAC,CAAC,CAAC,ANbP,CMaQ,CAAC,ANXjD,CMWkD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANbnB,CMaoB,CAAC,ANV5DkD,CMU6D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANV1E,CMU2E,CAAC,CAAC,CAAC,ANV3D,CMU4D;AACnF,ANVM,CMUL,CAAC,CAAC,CAAC,ANVE,CMUD,CAAC,CAAC,CAAC,ANVEA,CMUD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVE,CMUD,ANVEC,CMUD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVrB,CMUsB,CAAC,CAAC,CAAC,CAAC,ANVE,CMUD,CAAC,CAAC,CAAC,ANVlC,CMUmC,CAAC,ANVE,CMUD;AAC3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVEJ,CMUD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVE,CMUD,ANVEG,CMUD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANVZ,CMUa,ANVrB,CMUsB,ANVtB;AMWR,ANVO,CMUN,CAAC,CAAC,CAAC,CAAC,ANVE;AMWP,ANVK,CMUJ,CAAC,CAAC,ANjByC,CMiBxC,ANjBF,CMiBG,ANjBH;AMkBF,ANTE,CMSD,CAAC,ANTA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTAF,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT7B,CMS8B,ANT9B;AMUF,ANTC,CMSA,ANpBD,CMoBE,ANpBF;AMqBA;AACA,ANTA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTAC,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,CAAC,CAAC,ANTA,CMSC,ANTAG,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTR,CMSS,CAAC,ANTAC,CMSC,CAAC,CAAC,CAAC,CAAC,ANTf,CMSgB,CAAC,ANTAN,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTzB,CMS0B,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC;AACnD,ANTEK,CMSD,CAAC,ANTAA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTAf,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTxB,CMSyB,ANTAgB,CMSC,CAAC,CAAC,CAAC,CAAC,ANT9B,CMS+B,CAAC,ANTAN,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTxC,CMSyC,ANTzC,CMS0C,ANT1C;AMUF,ANTE,CMSD,CAAC,ANTA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC;AAChB,ANTIK,CMSH,CAAC,CAAC,CAAC,ANTAA,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANTA,CMSC,ANTA5B,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT3B,CMS4B,ANTA6B,CMSC,CAAC,CAAC,CAAC,CAAC,ANTjC,CMSkC,CAAC,ANTAN,CMSC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ANT3C,CMS4C,ANT5C,CMS6C,ANT7C;AMUJ,CAAC,CAAC,CAAC,ANXD,CMWE,ANXF;AMYF,ANTC,CMSA,ANdD,CMcE;AACF;AACA,AL/MO,CK+MN,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MOO,CK+MN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MO,CK+MN,CAAC,CAAC,AL/MO,CK+MN,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MO,CK+MN;AACnC,CAAC,CAAC,AL/MA,CK+MC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MA3C,CK+MC,CAAC,CAAC,CAAC,CAAC,AL/MA,CK+MC,CAAC,CAAC,AL/MAX,CK+MC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MA,CK+MC,AL/MAuD,CK+MC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MnB,CK+MoB,AL/MAC,CK+MC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/M3B,CK+M4B,AL/MA,CK+MC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AL/MxC,CK+MyC,AL/MvD,CK+MwD,AL/MxD;AKgNF;AACA,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,CAAC,ALhNA7C,CKgNC,CAAC,CAAC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,ALhNjB,CKgNkB,CAAC,ALhNA,CKgNC;AACtB,ALhNI,CKgNH,CAAC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,CAAC,CAAC,ALhNZ,CKgNa,ALhNb;AKiNJ,ALhNG,CKgNF,CAAC,CAAC,ALhNA;AKiNH;AACA,ALjNE,CKiND,CAAC,ALjNA,CKiNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALjNA,CKiNC,CAAC,CAAC,CAAC,ALjNX,CKiNY,ALjNZ;AKkNF,ALjNC,CKiNA,ALvNM,CKuNL,ALvNK;AKwNP,ALhNO,CKgNN,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNO8C,CKgNN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNO,CKgNN,CAAC,CAAC,ALhNQ9C,CKgNP,CAAC,CAAC,CAAC,CAAC,ALhNE,CKgND,CAAC,CAAC,CAAC,ALhNS,CKgNR;AAC1C,CAAC,CAAC,ALhNAX,CKgNC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNA,CKgNC,ALhNAuD,CKgNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNnB,CKgNoB,ALhNAG,CKgNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhN3B,CKgN4B,ALhNA,CKgNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ALhNxC,CKgNyC,CAAC,ALhNA/C,CKgNC,CAAC,CAAC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,ALhNN,CKgNO,CAAC,CAAC,ALhNA,CKgNC,CAAC,CAAC,ALhN3D,CKgN4D,ALhN5D,CKgN6D,ALhN7D;AKiNF,ALhNC,CKgNA,ALlNM,CKkNL;AACF;AACA,AJ5NO,CI4NN,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NOgD,CI4NN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NO,CI4NN,CAAC,CAAC,AJ5NO,CI4NN,AJ5NO3C,CI4NN,CAAC,CAAC,AJ5NG,CI4NF,CAAC,AJ5NO4C,CI4NN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NP,CI4NQ,CAAC,CAAC,CAAC,CAAC,AJ5NO,CI4NN;AAC/C,CAAC,CAAC,AJ5NA,CI4NC,CAAC,CAAC,CAAC,AJ5NA5C,CI4NC,CAAC,CAAC,AJ5NA,CI4NC,CAAC,CAAC,CAAC,CAAC,AJ5NA4C,CI4NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NpB,CI4NqB,CAAC,AJ5NA,CI4NC;AACzB,AJ5NI,CI4NH,CAAC,CAAC,CAAC,AJ5NA,CI4NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NA,CI4NC,CAAC,CAAC,CAAC,AJ5NX,CI4NY,AJ5NZ;AI6NJ,AJ5NG,CI4NF,CAAC,CAAC,AJ5NA;AI6NH;AACA,AJ7NE,CI6ND,CAAC,AJ7NA,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NAC,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NA,CI6NC,CAAC,CAAC,AJ7NA,CI6NC,CAAC,CAAC,CAAC,AJ7NA3D,CI6NC,CAAC,CAAC,AJ7NP,CI6NQ,AJ7NAc,CI6NC,CAAC,CAAC,AJ7NX,CI6NY,AJ7N9B,CI6N+B,AJ7N/B;AI8NF,AJ7NE,CI6ND,CAAC,AJ7NA,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NA8C,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NA,CI6NC,CAAC,CAAC,AJ7NA,CI6NC,CAAC,CAAC,CAAC,AJ7NA5D,CI6NC,CAAC,CAAC,AJ7NP,CI6NQ,AJ7NA0D,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NhB,CI6NiB,AJ7NxC,CI6NyC,AJ7NzC;AI8NF,AJ7NE,CI6ND,CAAC,AJ7NA,CI6NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NLC,CI4NM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NL,CI4NM,AJ5NL1D,CI4NM,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NrB,CI4NsB,CAAC,CAAC,CAAC,CAAC,AJ5NL2D,CI4NM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5NL,CI4NM,AJ5NL3D,CI4NM,CAAC,CAAC,CAAC,CAAC,CAAC,AJ5N/C,CI4NgD,CAAC,CAAC,CAAC,AJ3NnD0D,CI2NoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NnD,CI2NoD,AJ3NnDE,CI2NoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NrE,CI2NsE,CAAC,CAAC,CAAC,CAAC,AJ3NnDD,CI2NoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NnD,CI2NoD,AJ3NnDC,CI2NoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ7NnG,CI6NoG,AJ7NpG;AI8NF,AJ1NC,CI0NA,AJpOM,CIoOL,AJpOK;AIqOP,AJzNO,CIyNN,CAAC,CAAC,CAAC,CAAC,CAAC,AJzNOC,CIyNN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJzNO,CIyNN,CAAC,CAAC,AJzNO,CIyNN,AJzNOhD,CIyNN,CAAC,CAAC,AJzNG,CIyNF,CAAC,AJzNOiD,CIyNN,CAAC,CAAC,CAAC,CAAC,AJzNJ,CIyNK,CAAC,CAAC,CAAC,CAAC,AJzNO,CIyNN;AACrC,AJzNE,CIyND,CAAC,AJzNA,CIyNC,CAAC,CAAC,CAAC,CAAC,CAAC,AJzNAJ,CIyNC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJzNA,CIyNC,CAAC,CAAC,AJzNA,CIyNC,CAAC,CAAC,CAAC,AJzNA3D,CIyNC,CAAC,CAAC,AJzNP,CIyNQ,AJzNAc,CIyNC,CAAC,CAAC,AJzNX,CIyNY,AJzN9B,CIyN+B,AJzN/B;AI0NF,CAAC,CAAC,AJzNA,CIyNC,CAAC,CAAC,CAAC,CAAC,CAAC,AJzNA,CIyNC;AACT,AJ1NUkD,CI0NT,CAAC,CAAC,CAAC,AJ1NMA,CI0NL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ1NNA;AI2NV,AJ3NQ,CI2NP,CAAC,CAAC,AJ3NK,CI2NJ,CAAC,CAAC,AJ3NqBL,CI2NpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3Nb,CI2Nc,AJ3Nd;AI4NF,CAAC,CAAC,AJ3NAzD,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NA,CI2NC,AJ3NAC,CI2NC,CAAC,CAAC,CAAC,AJ3NX,CI2NY,AJ3NA4D,CI2NC,CAAC,CAAC,CAAC,CAAC,AJ3NjB,CI2NkB,CAAC,AJ3NA3D,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3N1B,CI2N2B,AJ3NC6D,CI2NA,CAAC,CAAC,AJ3NH,CI2NI,CAAC,CAAC,CAAC,AJ3NE,CI2ND;AACrC,CAAC,CAAC,CAAC,CAAC,AJ3NAD,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NA,CI2NC,AJ3NAE,CI2NC,CAAC,CAAC,AJ3NhB,CI2NiB,AJ3NAD,CI2NC,CAAC,CAAC,AJ3NpB,CI2NqB,CAAC,AJ3NAF,CI2NC,CAAC,CAAC,CAAC,CAAC,AJ3NA,CI2NC,AJ3NAE,CI2NC,CAAC,CAAC,AJ3NJ,CI2NK,AJ3NhC,CI2NiC,AJ3NjC,CI2NkC,AJ3NlC;AI4NJ,CAAC,CAAC,CAAC,AJ7ND,CI6NE,AJ7NF,CI6NG,AJ7NH;AI8NF,CAAC,CAAC,AJ3NA,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NAE,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NA,CI2NC,AJ3NAR,CI2NC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AJ3NV,CI2NW,AJ3NxB,CI2NyB,AJ3NzB;AI4NF,AJ3NC,CI2NA,AJlOM,CIkOL;AACF;AACA,AHhPO,CGgPN,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPOS,CGgPN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPO,CGgPN,CAAC,CAAC,AHhPO,CGgPN;AAC7B,CAAC,CAAC,AHhPAC,CGgPC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,AHhPCC,CGgPA,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPN,CGgPO,CAAC,CAAC,CAAC,AHhPE,CGgPD;AACpB,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAC,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,AHhPA,CGgPC,CAAC,AHhPxB,CGgPyB,AHhPzB;AGiPJ,CAAC,CAAC,CAAC,CAAC,AHhPAD,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,AHhPAE,CGgPC,CAAC,CAAC,CAAC,CAAC,AHhPZ,CGgPa,AHhPA,CGgPC,CAAC,CAAC,AHhPhB,CGgPiB,CAAC,AHhPApE,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPzB,CGgP0B,AHhPC8D,CGgPA,CAAC,CAAC,AHhPH,CGgPI,CAAC,CAAC,CAAC,AHhPE,CGgPD;AACtC,AHhPM,CGgPL,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,AHhPAO,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPV,CGgPW,CAAC,AHhPAC,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPtB,CGgPuB,AHhPGR,CGgPF,CAAC,CAAC,AHhPAA,CGgPC,CAAC,CAAC,AHhPA,CGgPC,AHhPAS,CGgPC,CAAC,CAAC,CAAC,AHhPR,CGgPS,CAAC,AHhPCH,CGgPA,AHhPAA,CGgPC,CAAC,CAAC,CAAC,CAAC,AHhPhB,CGgPiB,AHhPA,CGgPC,CAAC,CAAC,AHhPpB,CGgPqB,AHhPrD,CGgPsD,AHhPtD;AGiPN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAD,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,AHhPAK,CGgPC,CAAC,CAAC,CAAC,AHhPlB,CGgPmB,AHhPA,CGgPC;AAC1B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAH,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHjPQ,CGiPP;AAClB,AHhPQC,CGgPP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAA,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPVA;AGiPR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHnPD,CGmPE,AHnPF,CGmPG,AHnPH;AGoPN,CAAC,CAAC,CAAC,CAAC,CAAC,AHtPD,CGsPE,AHtPF,CGsPG,AHtPH;AGuPJ,AHhPI,CGgPH,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAH,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPpB,CGgPqB,AHhPrB;AGiPJ,CAAC,CAAC,CAAC,AH3PgC,CG2P/B;AACJ,CAAC,CAAC,AHhPAM,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,AHhPCN,CGgPA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPb,CGgPc,CAAC,CAAC,CAAC,AHhPE,CGgPD;AAC/B,AHhPI,CGgPH,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPAD,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,CAAC,CAAC,AHhPAC,CGgPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPA,CGgPC,AH/O1BO,CG+O2B,CAAC,CAAC,AHhPjB,CGgPkB,AH/O1B,CG+O2B,AH/O1B,CG+O2B;AACvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPQL,CGgPP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHhPH,CGgPI;AAChB,AHjPyBC,CGiPxB,CAAC,CAAC,CAAC,CAAC,CAAC,AHjPmBA,CGiPlB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHjPSA;AGkPzB,CAAC,CAAC,CAAC,CAAC,CAAC,AHlPM,CGkPL,CAAC,CAAC,CAAC,CAAC,AHlPC,CGkPA,CAAC,AHlPD,CGkPE,AHlPF,CGkPG,CAAC,CAAC,CAAC,CAAC,CAAC,AHlPR,CGkPS,AHlPyBD,CGkPxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHlPlB,CGkPmB,CAAC,AHlP2BC,CGkP1B,CAAC,CAAC,AHlPwBA,CGkPvB,AHlPuBA,CGkPtB,AHlPsBA,CGkPrB,CAAC,CAAC,CAAC,CAAC,CAAC,AHlPgBA,CGkPf,AHlPeA,CGkPd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHlP1C,CGkP2C,AHnPnC,CGmPoC,AHjPhDK,CGiPiD,AHjPjDA,CGiPkD,CAAC,CAAC,CAAC,AHnPzC,CGmP0C,AHjPjD,CGiPkD,CAAC,CAAC,CAAC,AHnP9C,CGmP+C,AHnP9D,CGmP+D,AHnP/D;AGoPJ,AHjPI,CGiPH,CAAC,CAAC,CAAC,AHjPA,CGiPC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AHjPAT,CGiPC,CAAC,CAAC,CAAC,CAAC,CAAC,AHjPb,CGiPc,AHjPd;AGkPJ,AHjPG,CGiPF,CAAC,CAAC,AHjPA;AGkPH,AHnQmC,CGmQlC,AHnQM,CGmQL;AACF;AACA,AFjQO,CEiQN,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQOU,CEiQN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN;AAC9B,AFnQA,CEmQC,CAAC,AFjQAlF,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQA,CEiQC,AFjQAmF,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQf,CEiQgB,AFjQAC,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQtB,CEiQuB,AFjQA,CEiQC,CAAC,CAAC,CAAC,AFjQ3B,CEiQ4B,AFjQ5B,CEiQ6B,AFjQ7B;AEkQF,AFjQC,CEiQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,AF/PA,CE+PC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,AF/PA,CE+PC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,AFnQA;AEoQA,AFhQO,CEgQN,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,AFhQQC,CEgQP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,CAAC,AFnQO,CEmQN;AAC/C,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,AFhQA,CEgQC,CAAC,AFnQA,CEmQC,AFnQA;AEoQvB,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFjQA,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQZ,CEiQa,CAAC,CAAC,CAAC,AFnQA,CEmQC;AAC3C,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFjQA,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQA1B,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQA,CEiQC,AFjQA2B,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQb,CEiQc,CAAC,AFjQAD,CEiQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFjQ1B,CEiQ2B,AFjQpD,CEiQqD,AFjQrD;AEkQJ,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA;AEoQJ,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFlQAE,CEkQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFlQA,CEkQC,CAAC,CAAC,AFlQA,CEkQC,AFlQAC,CEkQC,CAAC,CAAC,CAAC,AFlQL,CEkQM,CAAC,AFlQAC,CEkQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFlQpB,CEkQqB,CAAC,CAAC,CAAC,CAAC,AFlQA,CEkQC;AAC5D,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFlQA,CEkQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFlQA,CEkQC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFlQA,CEkQC,AFlQAA,CEkQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQxC,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQAC,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,AFnQA,CEmQC;AACrB,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQD;AEoQZ,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA;AEoQL,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFpQA,CEoQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQA,CEoQC,CAAC,CAAC,CAAC,AFpQAA,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQA,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQAC,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQ/D,CEoQgE,CAAC,AFpQA,CEoQC;AACtE,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQAD,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQA,CEoQC,CAAC,CAAC,AFpQAA,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQA,CEoQC,AFpQAE,CEoQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFpQ7B,CEoQ8B,AFpQ9B;AEqQN,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA;AEoQL,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFrQA,CEqQC,CAAC,CAAC,CAAC,AFrQA,CEqQC,AFrQAC,CEqQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFrQA,CEqQC,AFrQAH,CEqQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFrQV,CEqQW,AFrQ/B,CEqQgC,CAAC,AFrQA,CEqQC;AACtC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFrQA,CEqQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA;AEoQb,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA;AEoQL,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFtQAI,CEsQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFtQA,CEsQC,AFtQAhB,CEsQC,CAAC,CAAC,CAAC,AFtQd,CEsQe,AFtQA,CEsQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFtQA,CEsQC;AAC1B,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFtQAU,CEsQC,CAAC,CAAC,CAAC,AFtQA,CEsQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFtQnB,CEsQoB,CAAC,CAAC,AFtQAxB,CEsQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFtQA,CEsQC,AFtQA0B,CEsQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFtQV,CEsQW,CAAC,AFtQA,CEsQC;AACpD,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQ6CK,CEuQ5C,CAAC,CAAC,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFvQ6C,CEuQ5C,AFvQ6CnE,CEuQ5C,CAAC,CAAC,AFvQqC,CEuQpC,CAAC,AFvQmC;AEwQ1D,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQgC,CEwQ/B,AFnQA,CEmQC,AFnQA;AEoQT,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AF1QD,CE0QE,AFnQA,CEmQC,AFnQD;AEoQN,AFnQA,CEmQC,CAAC,CAAC,AFtRD,CEsRE,AFnQD;AEoQH,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFzQAoE,CEyQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFzQAC,CEyQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQxB,CEmQyB,AFzQhE,CEyQiE,AFzQD3F,CEyQE,AFzQFA,CEyQG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQzE,CEyQ0E,AFxQvE4F,CEwQwE,CAAC,CAAC,CAAC,AFxQ5E,CEwQ6E,CAAC,CAAC,CAAC,AFxQtE,CEwQuE;AACrF,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQE,CEwQD,AFxQEA,CEwQD,CAAC,CAAC,CAAC,AFxQH,CEwQI,CAAC,AFxQE,CEwQD,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQX,CEwQY,AFxQnC,CEwQoC,AFxQpC;AEyQN,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQL,AFnQA,CEmQC,CAAC,AFvQAF,CEuQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAC,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQzB,CEuQ0B,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQjB,CEmQkB,AFvQ1D,CEuQ2D,AFvQD3F,CEuQE,AFvQFA,CEuQG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQnE,CEuQoE,AFvQD4F,CEuQE,CAAC,CAAC,CAAC,AFvQN,CEuQO,CAAC,CAAC,CAAC,AFvQA,CEuQC;AAC/E,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAA,CEuQC,CAAC,CAAC,CAAC,AFvQL,CEuQM,CAAC,AFvQA,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQb,CEuQc,AFvQrC,CEuQsC,AFvQtC;AEwQJ,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQL,AFnQA,CEmQC,CAAC,AFvQAF,CEuQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFvQAG,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQtB,CEuQuB,AFvQA,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQ/B,CEuQgC,AFvQ3C,CEuQ4C,AFnQA,CEmQC,AFvQA7F,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC;AAClE,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQA8F,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQP,CEuQQ,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFvQtC,CEuQuC,AFnQA;AEoQ3C,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFrSkD,CEqSjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFvQAJ,CEuQC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAK,CEuQC,CAAC,CAAC,CAAC,AFvQV,CEuQW,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAJ,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQzB,CEuQ0B,AFvQA,CEuQC,CAAC,CAAC,AFvQ7B,CEuQ8B,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQlD,CEuQmD,AFnQA,CEmQC,AFvQD,CEuQE,CAAC,CAAC,CAAC,AFvQE,CEuQD;AAC3D,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFvQAK,CEuQC,AFvQF,CEuQG,CAAC,AFvQA,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQV,CEuQW,AFvQlC,CEuQmC,AFnQA;AEoQvC,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAD,CEuQC,CAAC,CAAC,CAAC,AFvQV,CEuQW,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAJ,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQzB,CEuQ0B,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFvQ/B,CEuQgC,AFvQ3C,CEuQ4C,AFnQA,CEmQC,AFvQA3F,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQpD,CEuQqD,AFvQCiG,CEuQA,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFvQE,CEuQD;AAC/D,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFvQAhB,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,AFvQAgB,CEuQC,CAAC,CAAC,AFvQJ,CEuQK,CAAC,AFvQA,CEuQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQxC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFvQA,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA/B,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFvQA,CEuQC,CAAC,CAAC,AFvQA+B,CEuQC,CAAC,CAAC,AFvQA,CEuQC,AFvQA/B,CEuQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA;AEoQ9B,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQV,CEwQW,CAAC,AFnQA,CEmQC;AACjB,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQAC,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,CAAC,CAAC,AFxQAH,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,AFxQAC,CEwQC,CAAC,CAAC,CAAC,CAAC,AFxQzB,CEwQ0B,AFxQAC,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQhC,CEwQiC,AFxQvD,CEwQwD,AFxQxD;AEyQN,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,AFxQAlE,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQrB,CEwQsB,AFxQCkG,CEwQA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQZ,CEwQa,CAAC,CAAC,CAAC,AFxQE,CEwQD;AAC7C,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,AFxQA,CEwQC,CAAC,CAAC,AFxQA,CEwQC,CAAC,CAAC,CAAC,AFxQAtG,CEwQC,CAAC,CAAC,AFxQP,CEwQQ,AFxQAsG,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQA,CEwQC,AFxQA7B,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQ9B,CEwQ+B,CAAC,AFxQG3E,CEwQF,CAAC,AFxQCA,CEwQA,AFxQAA,CEwQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQNA,CEwQO,AFxQPA,CEwQQ,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQP,CEwQQ,AFxQPmF,CEwQQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFxQtB,CEwQuB,AFxQPsB,CEwQQ,CAAC,CAAC,CAAC,AFxQ9D,CEwQ+D,AFxQ3E,CEwQ4E,AFxQ5E,CEwQ6E,AFxQ7E;AEyQR,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFzQAZ,CEyQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQA,CEyQC,AFzQA7E,CEyQC,CAAC,CAAC,AFzQJ,CEyQK,AFzQxB,CEyQyB,CAAC,AFzQA,CEyQC;AACnC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQAwF,CEyQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQA,CEyQC,AFzQA7B,CEyQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQtB,CEyQuB,CAAC,CAAC,AFzQAX,CEyQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFzQA,CEyQC,AFzQAhD,CEyQC,CAAC,CAAC,AFzQJ,CEyQK,CAAC,AFzQA,CEyQC;AACrD,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF1Q0C+E,CE0QzC,CAAC,CAAC,AF1Q0C,CE0QzC,CAAC,AF1Q0CpE,CE0QzC,CAAC,CAAC,CAAC,AF1Q0C,CE0QzC,AF1Q0CC,CE0QzC,CAAC,CAAC,AF1QkC,CE0QjC,CAAC,AF1QgC;AE2Q3D,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQb,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA;AEoQT,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFhRD,CEgRE,AFhRF,CEgRG,AFhRH;AEiRN,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QAkE,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AF3QAhB,CE2QC,CAAC,CAAC,CAAC,AF3Qd,CE2Qe,AF3QA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC;AAC5B,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,AF3QA,CE2QC,AF3QAN,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QV,CE2QW,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AF3QAO,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3Q7B,CE2Q8B,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3Q3C,CE2Q4C,AF3QzD,CE2Q0D,AFnQA;AEoQlE,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF7QD,CE6QE,AFnQA,CEmQC,AFnQA;AEoQT,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQD;AEoQJ,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQL,AFnQA,CEmQC,CAAC,AF3QAiB,CE2QC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AF3QAU,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QzB,CE2Q0B,AF3QA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QlC,CE2QmC,AF3Q9C,CE2Q+C,AFnQA,CEmQC,AF3QApG,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QvD,CE2QwD,AF3QCqG,CE2QA,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QE,CE2QD;AACrE,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AF3QAA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AF3Qd,CE2Qe,AF3QtC,CE2QuC,AF3QvC;AE4QJ,AFnQA,CEmQC,CAAC,CAAC,AF7QD,CE6QE,AFnQA,CEmQC,AFxUkD,CEwUjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtB,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QV,CE2QW,AF3QAD,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AF3QAT,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QzB,CE2Q0B,AF3QA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QjC,CE2QkC,AF3Q7C,CE2Q8C,AF3QC3F,CE2QA,AF3QAA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QtD,CE2QuD,AF3QCsG,CE2QA,CAAC,CAAC,CAAC,CAAC,AF3QL,CE2QM,CAAC,CAAC,CAAC,AF3QE,CE2QD;AACnE,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AF3QAA,CE2QC,CAAC,CAAC,CAAC,CAAC,AF3QN,CE2QO,CAAC,AF3QA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3Qd,CE2Qe,AF3QtC,CE2QuC,AF3QvC;AE4QJ,AFnQA,CEmQC,CAAC,CAAC,AF7QD,CE6QE,AF7QF,CE6QG,AF5UkD,CE4UjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChB,AFnQA;AEoQA,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QV,CE2QW,AF3QAF,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QzB,CE2Q0B,AF3QA,CE2QC,CAAC,CAAC,CAAC,CAAC,AF3Q/B,CE2QgC,AF3Q3C,CE2Q4C,AFnQA,CEmQC,AF3QApG,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QpD,CE2QqD,AF3QCuG,CE2QA,CAAC,CAAC,AF3QH,CE2QI,CAAC,CAAC,CAAC,AF3QE,CE2QD;AAC/D,AFnQA,CEmQC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,AF3QAA,CE2QC,CAAC,CAAC,AF3QJ,CE2QK,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QZ,CE2Qa,AF3QpC,CE2QqC,AFnQA;AEoQzC,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQL,AFnQA,CEmQC,CAAC,AF3QAf,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QjB,CE2QkB,AF3QCgB,CE2QA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QR,CE2QS,CAAC,CAAC,CAAC,AF3QE,CE2QD;AACjC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QAA,CE2QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF3QA,CE2QC,CAAC,AF3QF,CE2QG,AF3QH;AE4QZ,AFnQA,CEmQC,CAAC,CAAC,AF7QD,CE6QE,AF7QF,CE6QG,AF7QH;AE8QF,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQF,AF1QO,CE0QN,CAAC,CAAC,CAAC,CAAC,CAAC,AF1QOC,CE0QN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,AF1QO,CE0QN,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQO,CEmQN,CAAC,CAAC,AF1QF,CE0QG,CAAC,CAAC,CAAC,AF1QS,CE0QR;AACrC,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AFnQA,CEmQC,CAAC,CAAC,AF1QA/C,CE0QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF1QA,CE0QC,AF1QAhD,CE0QC,CAAC,CAAC,AF1QJ,CE0QK,CAAC,AF1QA,CE0QC;AACvC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QoC+E,CE2QnC,CAAC,CAAC,AF3QoC,CE2QnC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,AF3QoC,CE2QnC,AF3QoCnE,CE2QnC,CAAC,CAAC,AFnQA,CEmQC,CAAC,AFnQA;AEoQnB,AFnQA,CEmQC,CAAC,CAAC,AFnQA,CEmQC,AFnQA,CEmQC,AFnQA;AEoQL,AFnQA,CEmQC,CAAC,AF5QA,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QAoF,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QA,CE4QC,CAAC,CAAC,AF5QA,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QA,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QAC,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QjB,CE4QkB,AF5Q1C,CE4Q2C,AF5Q3C;AE6QF,AFnQA,CEmQC,CAAC,AFnQA,CEmQC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QAD,CE4QC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AF5QhB,CE4QiB,AF5QjB;AE6QF,AFnQA,CEmQC,AFhRM,CEgRL;AACF;AACA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD5VAE,CC4VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD5VA,CC4VC,CAAC,CAAC,AD5VA,CC4VC,CAAC,AD5VzB,CC4V0B,ADpWS;ACqWnC,AD5VA,CC4VC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC;AAC9B,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7V6B,CC6V5B,CAAC,AD7V6B,CC6V5B,CAAC,CAAC,CAAC,CAAC,CAAC,AD7V6B,CC6V5B,CAAC,AD7V6B;AC8VjD,AD9V6B,CC8V5B,ADpWA,CCoWC,ADpWA;ACqWF,AD9VA,CC8VC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD9VA,CC8VC,CAAC,CAAC,AD9VA,CC8VC,CAAC,ADpWA,CCoWC,AD9V1B;AC+VA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD9VA,CC8VC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,AD9VnB,CC8VoB,AD9VpB;AC+VA,ADpWA;ACqWA,AD/VA,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VAC,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VA,CC+VC,CAAC,CAAC,AD/VA,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VCpE,CC+VA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/Vd,CC+Ve,CAAC,CAAC,CAAC,AD/VE,CC+VD;AACzC,ADpWA,CCoWC,CAAC,AD/VAqE,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,AD/VrB,CC+VsB,AD/VArE,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/V9B,CC+V+B,AD/V/B,CC+VgC,AD/VhC;ACgWF,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWZ,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA;ACqWF,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWAsE,CCgWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,ADhWA,CCgWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWA,CCgWC;AAC7B,ADpWA,CCoWC,CAAC,ADhWA,CCgWC,CAAC,CAAC,CAAC,ADhWAC,CCgWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC;AAChB,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWX,ADpWA,CCoWC,CAAC,CAAC,ADhWA;ACiWH,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWAC,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADjWAH,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,ADjWAI,CCiWC,CAAC,CAAC,CAAC,CAAC,ADjWtB,CCiWuB,CAAC,ADjW1C,CCiW2C,ADjW3C;ACkWF,ADpWA,CCoWC,CAAC,ADjWAJ,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADjWA,CCiWC,CAAC,ADjWrB,CCiWsB,ADjWtB;ACkWF,ADpWA,CCoWC,CAAC,ADjWAE,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,CAAC,ADjWd,CCiWe,ADjWf;ACkWF,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWAG,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWf,CCiWgB,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWzB,CCiW0B,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC;AACxD,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA;ACqWnB,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA1E,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,ADjWhB,CCiWiB,ADjWjB;ACkWJ,ADpWA,CCoWC,CAAC,CAAC,ADpWK,CCoWJ,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWrB,CCoWsB,ADpWA;ACqWxB,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA;ACqWlB,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWAqE,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlW3B,CCkW4B,CAAC,ADlWA,CCkWC;AAChC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWd,ADpWA,CCoWC,CAAC,CAAC,ADpWA;ACqWH,ADlWC,CCkWA,ADpWA,CCoWC,ADpWA;ACqWF,ADpWA;ACqWA,ADlWA,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWAM,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC,CAAC,CAAC,ADlWA,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC;AAC/C,ADpWA,CCoWC,CAAC,ADlWA,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWAC,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC,CAAC,CAAC,ADlWAT,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC,ADlWAU,CCkWC,CAAC,CAAC,CAAC,ADlWnB,CCkWoB,ADjWhDC,CCiWiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjW9D,CCiW+D,CAAC,CAAC,CAAC,ADjW/CA,CCiWgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjW/C,CCiWgD,ADjW/CC,CCiWgD,CAAC,CAAC,CAAC,ADjWjE,CCiWkE,CAAC,CAAC,CAAC,CAAC,ADjW/C,CCiWgD,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWlE,CCkWmE,ADlWlG,CCkWmG,ADlWnG;ACmWF,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjW1B,CCiW2B,CAAC,ADpWA,CCoWC;AAC/B,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWrB,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWP;ACkWJ,ADpWA,CCoWC,CAAC,CAAC,ADpWA;ACqWH,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADjWA,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWAC,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADjWCF,CCiWA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWb,CCiWc,CAAC,CAAC,CAAC,ADjWE,CCiWD;AACtC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWAG,CCiWC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,CAAC,CAAC,ADjWAd,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,ADjWArE,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWtB,CCiWuB,ADjWAgF,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWpC,CCiWqC,ADjWnD,CCiWoD,ADjWpD;ACkWJ,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWAX,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWA,CCiWC,ADjWAe,CCiWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWrB,CCiWsB,ADjWAD,CCiWC,CAAC,CAAC,CAAC,CAAC,ADjW3B,CCiW4B,CAAC,ADjWA,CCiWC,ADjW9B,CCiW+B,ADjW/B,CCiWgC,ADjWhC;ACkWJ,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWpC,ADpWA,CCoWC,CAAC,CAAC,ADrWD,CCqWE,ADpWA;ACqWJ,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWAE,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWd,CCkWe,CAAC,ADlWAC,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWvB,CCkWwB,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC;AAC/D,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWAN,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC,ADlWAnH,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWpB,CCkWqB,CAAC,CAAC,ADlWA,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWhC,CCkWiC,ADlWjC;ACmWJ,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWAyH,CCkWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWA,CCkWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWZ,CCkWa,ADjWX,CCiWY,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWX,CCiWY;AACxB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWZ,CCiWa,ADpWA,CCoWC,ADpWA;ACqW/B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWD,CCoWE,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADhWC,CCgWA;AACb,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA;ACqWvB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWE,CCgWD,ADhWEC,CCgWD,CAAC,CAAC,CAAC,CAAC,ADhWX,CCgWY,AD/VsBP,CC+VrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VTA,CC+VU,AD/VVA,CC+VW,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VhBA,CC+ViB,AD/VjBA,CC+VkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VjB,CC+VkB,AD/VjBQ,CC+VkB,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWvE,CCgWwE,CAAC,ADhWzE,CCgW0E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWrK,CCgWsK,ADhWtK,CCgWuK,ADhWvK,CCgWwK,ADhWxK;ACiWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VER,CC6VD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VE,CC6VD,AD7VEnH,CC6VD,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VlB,CC6VmB,CAAC,CAAC,AD7VE,CC6VD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7V7B,CC6V8B,AD7V9B;AC8VR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VE,CC6VD,AD7VEG,CC6VD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWtC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,AD1WD,CC0WE,ADpWA,CCoWC,ADpWA;ACqWP,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,ADpWA;ACqWJ,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,AD7VAP,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7Vb,CC6Vc,CAAC,CAAC,CAAC,ADpWA,CCoWC;AAC3C,ADpWA,CCoWC,CAAC,CAAC,CAAC,AD7VA,CC6VC,CAAC,CAAC,CAAC,AD7VAuH,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC,AD7VAC,CC6VC,CAAC,CAAC,CAAC,AD7VlB,CC6VmB,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC,CAAC,CAAC,CAAC,CAAC,AD7VhC,CC6ViC,CAAC,AD7VA,CC6VC;AACvC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VAK,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,AD7VAhB,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC;AAC3C,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,AD7VAU,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7Vd,CC6Ve,AD7VpC,CC6VqC,AD7VrC;AC8VR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,AD/VH;ACgWN,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VAK,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC,AD7VAL,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7Vd,CC6Ve,CAAC,AD7VAM,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VvB,CC6VwB,AD7V/C,CC6VgD,AD7VhD;AC8VN,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADlWD,CCkWE,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC;AACZ,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,AD7VAG,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC,AD7VAC,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7Vf,CC6VgB,CAAC,AD7VjC,CC6VkC,AD7VzD,CC6V0D,AD7V1D;AC8VN,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA,CCoWC,CAAC,CAAC,ADtWD,CCsWE,ADpWA,CCoWC,ADpWA;ACqWL,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADvYY,CCuYX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,ADpWA,CCoWC,ADxYD,CCwYE,ADpWA;ACqWF,ADpWA;ACqWA,AD7VA,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VAC,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC,CAAC,CAAC,AD7VA,CC6VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD7VA,CC6VC;AAC/B,ADpWA,CCoWC,CAAC,AD9V8BC,CC8V7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWjB,AD/V8B,CC+V7B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,AD/VgD,CC+V/C;AACP,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VAA,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VA,CC+VC,AD/VAC,CC+VC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/VtB,CC+VuB,AD9V3B,CC8V4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD9V3BjB,CC8V4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD9V1C,CC8V2C,CAAC,AD9V3B,CC8V4B;AACjD,ADpWA,CCoWC,CAAC,CAAC,CAAC,AD/VmBK,CC+VlB,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACT,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADhWyBa,CCgWxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWS,CCgWR;AACb,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWmCC,CCiWlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWyBA;ACkWvC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACT,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWE,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWEnB,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWZ,CCkWa,ADpWA;ACqWnB,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWEoB,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,ADjWL,CCiWM,ADjWEF,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWd,CCiWe,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADjWLxD,CCiWM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWpB,CCiWqB,ADjWLhF,CCiWM,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWhD,CCiWiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWRsG,CCiWS,CAAC,CAAC,CAAC,ADjW/E,CCiWgF,ADjWhF;ACkWN,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,ADjWEqC,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,ADjWED,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWT,CCiWU,ADjWxC,CCiWyC,ADrWS,CCqWR,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADhWE,CCgWD,CAAC,CAAC,CAAC,ADhWEf,CCgWD,CAAC,CAAC,CAAC,ADhWE,CCgWD,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWlB,CCgWmB,CAAC,ADhWE,CCgWD;AAC3B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADhWEiB,CCgWD,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADhWfH,CCgWgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhW7E,CCgW8E,CAAC,ADhW/E,CCgWgF,CAAC,CAAC,ADhWlF,CCgWmF,ADhWnF,CCgWoF,ADhWpF,CCgWqF,ADhWrF;ACiWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADlWC,CCkWA,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWzB,CCgW0B,CAAC,ADhWE,CCgWD;AACzC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWEzH,CCgWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWE,CCgWD,ADhWE4H,CCgWD,CAAC,CAAC,CAAC,CAAC,ADhWX,CCgWY,ADhWZ,CCgWa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWrC,CCgWsC,ADhWtC,CCgWuC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhW5C,CCgW6C,ADhWLJ,CCgWM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWrD,CCgWsD,ADhWtD,CCgWuD,ADhWvD,CCgWwD,ADhWxD;ACiWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADlWQ,CCkWP,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACZ,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADhWEI,CCgWD,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWvD,CCgWwD,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWfJ,CCgWgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhWpF,CCgWqF,ADhWrF,CCgWsF,ADhWtF,CCgWuF,ADhWvF;ACiWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,CAAC,CAAC,CAAC,ADjWEK,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,ADjWEC,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjW1C,CCiW2C,CAAC,ADjWE,CCiWD;AACnD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADjWEC,CCiWD,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA;ACqW3C,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWEF,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWE,CCiWD,ADjWEC,CCiWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADjWxB,CCiWyB,CAAC,ADjWhC,CCiWiC,ADjWjC;ACkWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADlWE,CCkWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC;AAC3B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWEH,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWE,CCkWD,ADlWED,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWT,CCkWU,ADlW5B,CCkW6B,ADlW7B;ACmWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWE1H,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWT,CCoWU,ADpWV,CCoWW,ADpWX;ACqW7B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWEA,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWE,CCkWD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWd,CCkWe,CAAC,ADpWA,CCoWC,ADpWA;ACqWzB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADlWE,CCkWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA;ACqWlB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADnWE2G,CCmWD,CAAC,CAAC,CAAC,ADnWE,CCmWD,CAAC,CAAC,CAAC,CAAC,ADnWE,CCmWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADnWtB,CCmWuB,CAAC,ADnWE,CCmWD;AAC/B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADnWE,CCmWD,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWN,CCoWO,ADpWP,CCoWQ,ADpWR;ACqWjC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,ADnWE,CCmWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADnWE,CCmWD,ADnWEe,CCmWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADnWT,CCmWU,ADnWhD,CCmWiD,ADnWjD;ACoWR,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWE,CCoWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWE,CCoWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWE,CCoWD,ADpWEM,CCoWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWzC,CCoW0C,CAAC,ADpWE,CCoWD;AACpD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWEH,CCoWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWvB,CCoWwB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWjC,CCoWkC,ADpWxC,CCoWyC,ADpWA;ACqWnD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWP,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWf,CCoWgB,ADpWhB,CCoWiB,ADpWjB;ACqW1B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE7H,CCqWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE,CCqWD,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWd,CCqWe,CAAC,ADpWA,CCoWC,ADpWD;ACqWxB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE,CCqWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE6F,CCqWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWd,CCqWe,ADrWf;ACsWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADtWEc,CCsWD,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWjB,CCsWkB,CAAC,ADtWE,CCsWD;AAC1B,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWEe,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWT,CCsWU,CAAC,ADtWE7I,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWEmF,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWb,CCsWc,ADtWEsB,CCsWD,CAAC,CAAC,CAAC,ADtW/B,CCsWgC,ADtWvD,CCsWwD,CAAC,ADtWE,CCsWD;AAClE,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,ADtWT,CCsWU,ADpWA;ACqWpB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWP,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWEtF,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWE,CCuWD,ADpWA,CCoWC,CAAC,CAAC,ADvWT,CCuWU,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA;ACqWnC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWE,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWEkE,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWE,CCuWD,CAAC,CAAC,ADvWE,CCuWD,CAAC,CAAC,CAAC,ADvWEnF,CCuWD,CAAC,CAAC,ADvWL,CCuWM,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWhB,CCuWiB,CAAC,ADvWKF,CCuWJ,CAAC,ADvWGA,CCuWF,ADvWEA,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWJA,CCuWK,ADvWLA,CCuWM,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWL,CCuWM,ADvWLmF,CCuWM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWpB,CCuWqB,ADvWLhF,CCuWM,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWlD,CCuWmD,CAAC,ADvWpD,CCuWqD,CAAC,CAAC,ADvWvD,CCuWwD,ADvWxD,CCuWyD,ADvWzD,CCuW0D,ADtW3EsG,CCsW4E,CAAC,CAAC,CAAC,ADvWlF,CCuWmF,ADvWnF;ACwWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWEpB,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWV,CCsWW,ADtWjC,CCsWkC,ADtWlC;ACuWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWElE,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADpWA,CCoWC,CAAC,CAAC,ADtWT,CCsWU,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWb,CCoWc,ADpWd,CCoWe,ADpWf;ACqWnB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWEA,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWEiI,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWd,CCsWe,CAAC,ADtWhB,CCsWiB,ADtWjB;ACuWR,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA;ACqWlB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWL,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADvWEjI,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWE,CCuWD,ADvWEC,CCuWD,CAAC,CAAC,CAAC,ADvWV,CCuWW,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWpB,CCoWqB,ADpWrB,CCoWsB,CAAC,CAAC,CAAC,CAAC,CAAC,ADpW3B,CCoW4B,ADvWN0G,CCuWO,CAAC,CAAC,CAAC,ADvWhD,CCuWiD,CAAC,ADvWlD,CCuWmD,CAAC,CAAC,CAAC,ADvWtD,CCuWuD,ADvWvD,CCuWwD,ADvWxD,CCuWyD,ADvWzD;ACwWN,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADvWE,CCuWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWE,CCuWD,CAAC,CAAC,CAAC,ADvWT,CCuWU,ADvWV;ACwWN,ADpWA,CCoWC,CAAC,CAAC,AD3ZK,CC2ZJ,CAAC,ADtWDQ,CCsWE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWD,CCsWE,ADtWDC,CCsWE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWhB,CCsWiB,CAAC,AD3Zd,CC2Ze,AD3ZrB,CC2ZsB,AD3ZtB;AC4ZF,ADpWA,CCoWC,AD7ZD,CC6ZE,AD7ZF;AC8ZA,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWAc,CCqWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWA,CCqWC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWb,CCqWc,CAAC,CAAC,CAAC,ADrWE,CCqWD;AAC3C,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADrWnB,CCqWoB,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWjC,CCqWkC,ADrWlC,CCqWmC,ADrWnC;ACsWF,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADtWA/F,CCsWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC,CAAC,ADtWzB,CCsW0B,CAAC,ADtWA,CCsWC;AAC9B,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWhC,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC;AACV,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADtWAgG,CCsWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC,ADtWAzI,CCsWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtW7B,CCsW8B,CAAC,ADtW/B,CCsWgC,ADtWhC;ACuWJ,ADpWA,CCoWC,CAAC,CAAC,ADtWA;ACuWH,ADtWC,CCsWA,AD7WD,CC6WE,ADpWA;ACqWF,ADpWA;ACqWA,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA0I,CCsWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC,CAAC,CAAC,ADtWA/J,CCsWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWA,CCsWC,ADrWxDkH,CCqWyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWxD,CCqWyD,ADrWxDvB,CCqWyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWzE,CCqW0E,ADrWxDsB,CCqWyD,CAAC,CAAC,CAAC,ADtWvB,CCsWwB,CAAC,ADpWhF,CCoWiF;AACnF,ADpWA,CCoWC,CAAC,ADpWErB,CCoWD,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWE,CCoWD,ADpWE,CCoWD;AACZ,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADrWWoE,CCqWV,CAAC,CAAC,CAAC,ADpWA;ACqWR,ADpWA,CCoWC,CAAC,CAAC,ADtWS,CCsWR,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACT,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE3B,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,CAAC,CAAC,ADtWE4B,CCsWD,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWElF,CCsWD,CAAC,CAAC,CAAC,CAAC,ADtWR,CCsWS,ADtWEiF,CCsWD,CAAC,CAAC,CAAC,ADtWb,CCsWc,ADtWpC,CCsWqC,ADtWrC;ACuWN,ADpWA,CCoWC,CAAC,CAAC,CAAC,ADtWEH,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWE,CCsWD,ADtWExB,CCsWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWZ,CCsWa,ADtW7B,CCsW8B,ADtW9B;ACuWN,ADpWA,CCoWC,CAAC,CAAC,ADpWA;ACqWH,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,ADrWD,CCqWE;AACJ,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE,CCqWD,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADtWzB,CCsW0B;AAC5B,ADpWA,CCoWC,CAAC,ADrWEhI,CCqWD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWE,CCqWD,CAAC,ADrWE,CCqWD,CAAC,ADrWK,CCqWJ,CAAC,CAAC,ADrWE,CCqWD,CAAC,CAAC,CAAC,ADrWF;ACsW3B,ADxWE,CCwWD,ADhXwD,CCgXvD,ADhXF,CCgXG,ADhXH;ACiXA,ADnWA,CCmWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADnWA,CCmWC;AACP,ADpWA,CCoWC,CAAC,ADpWMa,CCoWL,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWF,CCoWG;AACT,ADpWA,CCoWC,CAAC,ADrWc6B,CCqWb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADrWH,CCqWI;AACV,ADpWA,CCoWC,CAAC,ADtWuBK,CCsWtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWZ,ADvWM,CCuWL,ADpWA,CCoWC,CAAC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWzB,CCuW0B,ADvW1B;ACwWA,ADvWAL,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,ADpWA;ACqWV,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWA,CCuWC,ADvWAmH,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADvWpC,CCuWqC,CAAC,CAAC,ADvWA,CCuWC;AACxC,ADpWA,CCoWC,CAAC,ADvWAhJ,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACT,ADpWA,CCoWC,CAAC,ADvWA6B,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADzW8B,CCyW7B;AACV,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACb,ADpWA,CCoWC,CAAC,ADvWAe,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD3WkB,CC2WjB;AACtB,ADpWA,CCoWC,CAAC,ADvWAG,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD5Wc,CC4Wb;AAC1B,ADpWA,CCoWC,CAAC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA,CCoWC;AACd,ADpWA,CCoWC,CAAC,ADvWAyD,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD9WuB,CC8WtB;AACjB,ADpWA,CCoWC,CAAC,ADvWAoC,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,AD/WiB,CC+WhB;AACvB,ADpWA,CCoWC,CAAC,ADvWA5B,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADhXY,CCgXX;AAC5B,ADpWA,CCoWC,CAAC,ADvWA2B,CCuWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,ADpWA;ACqWlB,ADpWA,CCoWC,ADpWA,CCoWC,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,ADpWA,CCoWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACR,ADrWA,CCqWC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,ADrWA,CCqWC,CAAC,CAAC,CAAC",
|
|
178
|
+
"sourcesContent": [
|
|
179
|
+
"/* eslint-env browser */\n\nexport const createEventSourceConnection = (\n eventSourceUrl,\n events = {},\n { retryMaxAttempt = Infinity, retryAllocatedMs = Infinity, lastEventId } = {},\n) => {\n const { EventSource } = window\n if (typeof EventSource !== \"function\") {\n return () => {}\n }\n\n const eventSourceOrigin = new URL(eventSourceUrl).origin\n Object.keys(events).forEach((eventName) => {\n const eventCallback = events[eventName]\n events[eventName] = (e) => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId\n }\n eventCallback(e)\n }\n }\n })\n\n const status = {\n value: \"default\",\n goTo: (value) => {\n if (value === status.value) {\n return\n }\n status.value = value\n status.onchange()\n },\n onchange: () => {},\n }\n let _disconnect = () => {}\n\n const attemptConnection = (url) => {\n const eventSource = new EventSource(url, {\n withCredentials: true,\n })\n _disconnect = () => {\n if (status.value !== \"connecting\" && status.value !== \"connected\") {\n console.warn(\n `disconnect() ignored because connection is ${status.value}`,\n )\n return\n }\n eventSource.onerror = undefined\n eventSource.close()\n Object.keys(events).forEach((eventName) => {\n eventSource.removeEventListener(eventName, events[eventName])\n })\n status.goTo(\"disconnected\")\n }\n let retryCount = 0\n let firstRetryMs = Date.now()\n eventSource.onerror = (errorEvent) => {\n if (errorEvent.target.readyState === EventSource.CONNECTING) {\n if (retryCount > retryMaxAttempt) {\n console.info(`could not connect after ${retryMaxAttempt} attempt`)\n _disconnect()\n return\n }\n\n if (retryCount === 0) {\n firstRetryMs = Date.now()\n } else {\n const allRetryDuration = Date.now() - firstRetryMs\n if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {\n console.info(\n `could not connect in less than ${retryAllocatedMs} ms`,\n )\n _disconnect()\n return\n }\n }\n\n retryCount++\n status.goTo(\"connecting\")\n return\n }\n\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n _disconnect()\n return\n }\n }\n eventSource.onopen = () => {\n status.goTo(\"connected\")\n }\n Object.keys(events).forEach((eventName) => {\n eventSource.addEventListener(eventName, events[eventName])\n })\n if (!events.hasOwnProperty(\"welcome\")) {\n eventSource.addEventListener(\"welcome\", (e) => {\n if (e.origin === eventSourceOrigin && e.lastEventId) {\n lastEventId = e.lastEventId\n }\n })\n }\n status.goTo(\"connecting\")\n }\n\n let connect = () => {\n attemptConnection(eventSourceUrl)\n connect = () => {\n attemptConnection(\n lastEventId\n ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId)\n : eventSourceUrl,\n )\n }\n }\n\n const removePageUnloadListener = listenPageUnload(() => {\n if (status.value === \"connecting\" || status.value === \"connected\") {\n _disconnect()\n }\n })\n\n const destroy = () => {\n removePageUnloadListener()\n _disconnect()\n }\n\n return {\n status,\n connect,\n disconnect: () => _disconnect(),\n destroy,\n }\n}\n\nconst addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {\n if (url.indexOf(\"?\") === -1) {\n url += \"?\"\n } else {\n url += \"&\"\n }\n return `${url}last-event-id=${encodeURIComponent(lastEventId)}`\n}\n\n// const listenPageMightFreeze = (callback) => {\n// const removePageHideListener = listenEvent(window, \"pagehide\", (pageHideEvent) => {\n// if (pageHideEvent.persisted === true) {\n// callback(pageHideEvent)\n// }\n// })\n// return removePageHideListener\n// }\n\n// const listenPageFreeze = (callback) => {\n// const removeFreezeListener = listenEvent(document, \"freeze\", (freezeEvent) => {\n// callback(freezeEvent)\n// })\n// return removeFreezeListener\n// }\n\n// const listenPageIsRestored = (callback) => {\n// const removeResumeListener = listenEvent(document, \"resume\", (resumeEvent) => {\n// removePageshowListener()\n// callback(resumeEvent)\n// })\n// const removePageshowListener = listenEvent(window, \"pageshow\", (pageshowEvent) => {\n// if (pageshowEvent.persisted === true) {\n// removePageshowListener()\n// removeResumeListener()\n// callback(pageshowEvent)\n// }\n// })\n// return () => {\n// removeResumeListener()\n// removePageshowListener()\n// }\n// }\n\nconst listenPageUnload = (callback) => {\n const removePageHideListener = listenEvent(\n window,\n \"pagehide\",\n (pageHideEvent) => {\n if (pageHideEvent.persisted !== true) {\n callback(pageHideEvent)\n }\n },\n )\n return removePageHideListener\n}\n\nconst listenEvent = (emitter, event, callback) => {\n emitter.addEventListener(event, callback)\n return () => {\n emitter.removeEventListener(event, callback)\n }\n}\n",
|
|
180
|
+
"export const isAutoreloadEnabled = () => {\n const value = window.localStorage.getItem(\"autoreload\")\n if (value === \"0\") {\n return false\n }\n return true\n}\n\nexport const setAutoreloadPreference = (value) => {\n window.localStorage.setItem(\"autoreload\", value ? \"1\" : \"0\")\n}\n",
|
|
181
|
+
"export const compareTwoUrlPaths = (url, otherUrl) => {\n if (url === otherUrl) {\n return true\n }\n const urlObject = new URL(url)\n const otherUrlObject = new URL(otherUrl)\n return (\n urlObject.origin === otherUrlObject.origin &&\n urlObject.pathname === otherUrlObject.pathname\n )\n}\n\nexport const injectQuery = (url, query) => {\n const urlObject = new URL(url)\n const { searchParams } = urlObject\n Object.keys(query).forEach((key) => {\n searchParams.set(key, query[key])\n })\n return String(urlObject)\n}\n",
|
|
182
|
+
"export const htmlAttributeSrcSet = {\n parse: (srcset) => {\n const srcCandidates = []\n srcset.split(\",\").forEach((set) => {\n const [specifier, descriptor] = set.trim().split(\" \")\n srcCandidates.push({\n specifier,\n descriptor,\n })\n })\n return srcCandidates\n },\n stringify: (srcCandidates) => {\n const srcset = srcCandidates\n .map(({ specifier, descriptor }) => `${specifier} ${descriptor}`)\n .join(\", \")\n return srcset\n },\n}\n",
|
|
183
|
+
"import { htmlAttributeSrcSet } from \"@jsenv/utils/html_ast/html_attribute_src_set.js\"\n\nimport { injectQuery, compareTwoUrlPaths } from \"./url_helpers.js\"\n\nexport const reloadHtmlPage = () => {\n window.location.reload(true)\n}\n\n// This function can consider everything as hot reloadable:\n// - no need to check [hot-accept]and [hot-decline] attributes for instance\n// This is because if something should full reload, we receive \"full_reload\"\n// from server and this function is not called\nexport const reloadDOMNodesUsingUrl = (urlToReload) => {\n const mutations = []\n const shouldReloadUrl = (urlCandidate) => {\n return compareTwoUrlPaths(urlCandidate, urlToReload)\n }\n const visitNodeAttributeAsUrl = (node, attributeName) => {\n let attribute = node[attributeName]\n if (!attribute) {\n return\n }\n if (SVGAnimatedString && attribute instanceof SVGAnimatedString) {\n attribute = attribute.animVal\n }\n if (!shouldReloadUrl(attribute)) {\n return\n }\n mutations.push(() => {\n node[attributeName] = injectQuery(attribute, { hmr: Date.now() })\n })\n }\n Array.from(document.querySelectorAll(`link[rel=\"stylesheet\"]`)).forEach(\n (link) => {\n visitNodeAttributeAsUrl(link, \"href\")\n },\n )\n Array.from(document.querySelectorAll(`link[rel=\"icon\"]`)).forEach((link) => {\n visitNodeAttributeAsUrl(link, \"href\")\n })\n Array.from(document.querySelector(\"script\")).forEach((script) => {\n visitNodeAttributeAsUrl(script, \"src\")\n })\n // There is no real need to update a.href because the ressource will be fetched when clicked.\n // But in a scenario where the ressource was already visited and is in browser cache, adding\n // the dynamic query param ensure the cache is invalidated\n Array.from(document.querySelectorAll(\"a\")).forEach((a) => {\n visitNodeAttributeAsUrl(a, \"href\")\n })\n // About iframes:\n // - By default iframe itself and everything inside trigger a parent page full-reload\n // - Adding [hot-accept] on the iframe means parent page won't reload when iframe full/hot reload\n // In that case and if there is code in the iframe and parent doing post message communication:\n // you must put import.meta.hot.decline() for code involved in communication.\n // (both in parent and iframe)\n Array.from(document.querySelectorAll(\"img\")).forEach((img) => {\n visitNodeAttributeAsUrl(img, \"src\")\n const srcset = img.srcset\n if (srcset) {\n const srcCandidates = htmlAttributeSrcSet.parse(srcset)\n srcCandidates.forEach((srcCandidate) => {\n const url = new URL(srcCandidate.specifier, `${window.location.href}`)\n if (shouldReloadUrl(url)) {\n srcCandidate.specifier = injectQuery(url, { hmr: Date.now() })\n }\n })\n mutations.push(() => {\n img.srcset = htmlAttributeSrcSet.stringify(srcCandidates)\n })\n }\n })\n Array.from(document.querySelectorAll(\"source\")).forEach((source) => {\n visitNodeAttributeAsUrl(source, \"src\")\n })\n // svg image tag\n Array.from(document.querySelectorAll(\"image\")).forEach((image) => {\n visitNodeAttributeAsUrl(image, \"href\")\n })\n // svg use\n Array.from(document.querySelectorAll(\"use\")).forEach((use) => {\n visitNodeAttributeAsUrl(use, \"href\")\n })\n mutations.forEach((mutation) => {\n mutation()\n })\n}\n\nexport const reloadJsImport = async (url) => {\n const urlWithHmr = injectQuery(url, { hmr: Date.now() })\n const namespace = await import(urlWithHmr)\n return namespace\n}\n\nexport const reloadAllCss = () => {\n const links = Array.from(document.getElementsByTagName(\"link\"))\n links.forEach((link) => {\n if (link.rel === \"stylesheet\") {\n link.href = injectQuery(link.href, { hmr: Date.now() })\n }\n })\n}\n",
|
|
184
|
+
"import { createEventSourceConnection } from \"@jsenv/utils/event_source/event_source.js\"\nimport { urlHotMetas } from \"../../../import_meta_hot/client/import_meta_hot.js\"\nimport {\n isAutoreloadEnabled,\n setAutoreloadPreference,\n} from \"./autoreload_preference.js\"\nimport { compareTwoUrlPaths } from \"./url_helpers.js\"\nimport {\n reloadHtmlPage,\n reloadDOMNodesUsingUrl,\n reloadJsImport,\n} from \"./reload.js\"\n\nconst reloadMessages = []\nconst reloadMessagesSignal = { onchange: () => {} }\nlet pendingCallbacks = []\nlet running = false\nconst addToHotQueue = async (callback) => {\n pendingCallbacks.push(callback)\n dequeue()\n}\nconst dequeue = async () => {\n if (running) {\n return\n }\n const callbacks = pendingCallbacks.slice()\n pendingCallbacks = []\n running = true\n await callbacks.reduce(async (previous, callback) => {\n await previous\n await callback()\n }, Promise.resolve())\n running = false\n if (pendingCallbacks.length) {\n dequeue()\n }\n}\n\nconst applyReloadMessageEffects = async () => {\n const someEffectIsFullReload = reloadMessages.some(\n (reloadMessage) => reloadMessage.type === \"full\",\n )\n if (someEffectIsFullReload) {\n reloadHtmlPage()\n return\n }\n\n const onApplied = (reloadMessage) => {\n const index = reloadMessages.indexOf(reloadMessage)\n reloadMessages.splice(index, 1)\n reloadMessagesSignal.onchange()\n }\n const setReloadMessagePromise = (reloadMessage, promise) => {\n reloadMessage.status = \"pending\"\n promise.then(\n () => {\n onApplied(reloadMessage)\n },\n (e) => {\n // TODO: reuse error display from html supervisor\n console.error(e)\n console.error(\n `[hmr] Failed to reload after ${reloadMessage.reason}.\nThis could be due to syntax errors or importing non-existent modules (see errors above)`,\n )\n reloadMessage.status = \"failed\"\n reloadMessagesSignal.onchange()\n },\n )\n }\n reloadMessages.forEach((reloadMessage) => {\n if (reloadMessage.type === \"hot\") {\n const promise = addToHotQueue(() => {\n return applyHotReload(reloadMessage)\n })\n setReloadMessagePromise(reloadMessage, promise)\n } else {\n setReloadMessagePromise(reloadMessage, Promise.resolve())\n }\n })\n reloadMessagesSignal.onchange() // reload status is \"pending\"\n}\n\nconst applyHotReload = async ({ hotInstructions }) => {\n await hotInstructions.reduce(\n async (previous, { type, boundary, acceptedBy }) => {\n await previous\n\n const urlToFetch = new URL(boundary, `${window.location.origin}/`).href\n const urlHotMeta = urlHotMetas[urlToFetch]\n // TODO: we should return when there is no url hot meta because\n // it means code was not executed (code splitting with dynamic import)\n // if (!urlHotMeta) {return }\n\n if (type === \"prune\") {\n console.group(`[jsenv] prune: ${boundary} (inside ${acceptedBy})`)\n } else if (acceptedBy === boundary) {\n console.group(`[jsenv] hot reloading: ${boundary}`)\n } else {\n console.group(`[jsenv] hot reloading: ${acceptedBy} inside ${boundary}`)\n }\n if (urlHotMeta && urlHotMeta.disposeCallback) {\n console.log(`call dispose callback`)\n await urlHotMeta.disposeCallback()\n }\n if (type === \"prune\") {\n delete urlHotMetas[urlToFetch]\n console.log(`cleanup pruned url`)\n console.groupEnd()\n return null\n }\n if (type === \"js_module\") {\n console.log(`importing js module`)\n const namespace = await reloadJsImport(urlToFetch)\n if (urlHotMeta && urlHotMeta.acceptCallback) {\n await urlHotMeta.acceptCallback(namespace)\n }\n console.log(`js module import done`)\n console.groupEnd()\n return namespace\n }\n if (type === \"html\") {\n if (!compareTwoUrlPaths(urlToFetch, window.location.href)) {\n // we are not in that HTML page\n return null\n }\n console.log(`reloading url`)\n const urlToReload = new URL(acceptedBy, `${window.location.origin}/`)\n .href\n reloadDOMNodesUsingUrl(urlToReload)\n console.log(`url reloaded`)\n console.groupEnd()\n return null\n }\n console.warn(`unknown update type: \"${type}\"`)\n return null\n },\n Promise.resolve(),\n )\n}\n\nconst addReloadMessage = (reloadMessage) => {\n reloadMessages.push(reloadMessage)\n if (isAutoreloadEnabled()) {\n applyReloadMessageEffects()\n } else {\n reloadMessagesSignal.onchange()\n }\n}\n\nconst eventsourceConnection = createEventSourceConnection(\n document.location.href,\n {\n reload: ({ data }) => {\n const reloadMessage = JSON.parse(data)\n addReloadMessage(reloadMessage)\n },\n },\n {\n retryMaxAttempt: Infinity,\n retryAllocatedMs: 20 * 1000,\n },\n)\n\nconst { status, connect, disconnect } = eventsourceConnection\nconnect()\nwindow.__jsenv_event_source_client__ = {\n status,\n connect,\n disconnect,\n isAutoreloadEnabled,\n setAutoreloadPreference,\n urlHotMetas,\n reloadMessages,\n reloadMessagesSignal,\n applyReloadMessageEffects,\n addReloadMessage,\n}\n\n// const findHotMetaUrl = (originalFileRelativeUrl) => {\n// return Object.keys(urlHotMetas).find((compileUrl) => {\n// return (\n// parseCompiledUrl(compileUrl).fileRelativeUrl === originalFileRelativeUrl\n// )\n// })\n// }\n",
|
|
185
|
+
"import { urlHotMetas } from './import_meta_hot.js';\n\n/* eslint-env browser */\nconst createEventSourceConnection = (eventSourceUrl, events = {}, {\n retryMaxAttempt = Infinity,\n retryAllocatedMs = Infinity,\n lastEventId\n} = {}) => {\n const {\n EventSource\n } = window;\n\n if (typeof EventSource !== \"function\") {\n return () => {};\n }\n\n const eventSourceOrigin = new URL(eventSourceUrl).origin;\n Object.keys(events).forEach(eventName => {\n const eventCallback = events[eventName];\n\n events[eventName] = e => {\n if (e.origin === eventSourceOrigin) {\n if (e.lastEventId) {\n lastEventId = e.lastEventId;\n }\n\n eventCallback(e);\n }\n };\n });\n const status = {\n value: \"default\",\n goTo: value => {\n if (value === status.value) {\n return;\n }\n\n status.value = value;\n status.onchange();\n },\n onchange: () => {}\n };\n\n let _disconnect = () => {};\n\n const attemptConnection = url => {\n const eventSource = new EventSource(url, {\n withCredentials: true\n });\n\n _disconnect = () => {\n if (status.value !== \"connecting\" && status.value !== \"connected\") {\n console.warn(\"disconnect() ignored because connection is \".concat(status.value));\n return;\n }\n\n eventSource.onerror = undefined;\n eventSource.close();\n Object.keys(events).forEach(eventName => {\n eventSource.removeEventListener(eventName, events[eventName]);\n });\n status.goTo(\"disconnected\");\n };\n\n let retryCount = 0;\n let firstRetryMs = Date.now();\n\n eventSource.onerror = errorEvent => {\n if (errorEvent.target.readyState === EventSource.CONNECTING) {\n if (retryCount > retryMaxAttempt) {\n console.info(\"could not connect after \".concat(retryMaxAttempt, \" attempt\"));\n\n _disconnect();\n\n return;\n }\n\n if (retryCount === 0) {\n firstRetryMs = Date.now();\n } else {\n const allRetryDuration = Date.now() - firstRetryMs;\n\n if (retryAllocatedMs && allRetryDuration > retryAllocatedMs) {\n console.info(\"could not connect in less than \".concat(retryAllocatedMs, \" ms\"));\n\n _disconnect();\n\n return;\n }\n }\n\n retryCount++;\n status.goTo(\"connecting\");\n return;\n }\n\n if (errorEvent.target.readyState === EventSource.CLOSED) {\n _disconnect();\n\n return;\n }\n };\n\n eventSource.onopen = () => {\n status.goTo(\"connected\");\n };\n\n Object.keys(events).forEach(eventName => {\n eventSource.addEventListener(eventName, events[eventName]);\n });\n\n if (!events.hasOwnProperty(\"welcome\")) {\n eventSource.addEventListener(\"welcome\", e => {\n if (e.origin === eventSourceOrigin && e.lastEventId) {\n lastEventId = e.lastEventId;\n }\n });\n }\n\n status.goTo(\"connecting\");\n };\n\n let connect = () => {\n attemptConnection(eventSourceUrl);\n\n connect = () => {\n attemptConnection(lastEventId ? addLastEventIdIntoUrlSearchParams(eventSourceUrl, lastEventId) : eventSourceUrl);\n };\n };\n\n const removePageUnloadListener = listenPageUnload(() => {\n if (status.value === \"connecting\" || status.value === \"connected\") {\n _disconnect();\n }\n });\n\n const destroy = () => {\n removePageUnloadListener();\n\n _disconnect();\n };\n\n return {\n status,\n connect,\n disconnect: () => _disconnect(),\n destroy\n };\n};\n\nconst addLastEventIdIntoUrlSearchParams = (url, lastEventId) => {\n if (url.indexOf(\"?\") === -1) {\n url += \"?\";\n } else {\n url += \"&\";\n }\n\n return \"\".concat(url, \"last-event-id=\").concat(encodeURIComponent(lastEventId));\n}; // const listenPageMightFreeze = (callback) => {\n// const removePageHideListener = listenEvent(window, \"pagehide\", (pageHideEvent) => {\n// if (pageHideEvent.persisted === true) {\n// callback(pageHideEvent)\n// }\n// })\n// return removePageHideListener\n// }\n// const listenPageFreeze = (callback) => {\n// const removeFreezeListener = listenEvent(document, \"freeze\", (freezeEvent) => {\n// callback(freezeEvent)\n// })\n// return removeFreezeListener\n// }\n// const listenPageIsRestored = (callback) => {\n// const removeResumeListener = listenEvent(document, \"resume\", (resumeEvent) => {\n// removePageshowListener()\n// callback(resumeEvent)\n// })\n// const removePageshowListener = listenEvent(window, \"pageshow\", (pageshowEvent) => {\n// if (pageshowEvent.persisted === true) {\n// removePageshowListener()\n// removeResumeListener()\n// callback(pageshowEvent)\n// }\n// })\n// return () => {\n// removeResumeListener()\n// removePageshowListener()\n// }\n// }\n\n\nconst listenPageUnload = callback => {\n const removePageHideListener = listenEvent(window, \"pagehide\", pageHideEvent => {\n if (pageHideEvent.persisted !== true) {\n callback(pageHideEvent);\n }\n });\n return removePageHideListener;\n};\n\nconst listenEvent = (emitter, event, callback) => {\n emitter.addEventListener(event, callback);\n return () => {\n emitter.removeEventListener(event, callback);\n };\n};\n\nconst isAutoreloadEnabled = () => {\n const value = window.localStorage.getItem(\"autoreload\");\n\n if (value === \"0\") {\n return false;\n }\n\n return true;\n};\nconst setAutoreloadPreference = value => {\n window.localStorage.setItem(\"autoreload\", value ? \"1\" : \"0\");\n};\n\nconst compareTwoUrlPaths = (url, otherUrl) => {\n if (url === otherUrl) {\n return true;\n }\n\n const urlObject = new URL(url);\n const otherUrlObject = new URL(otherUrl);\n return urlObject.origin === otherUrlObject.origin && urlObject.pathname === otherUrlObject.pathname;\n};\nconst injectQuery = (url, query) => {\n const urlObject = new URL(url);\n const {\n searchParams\n } = urlObject;\n Object.keys(query).forEach(key => {\n searchParams.set(key, query[key]);\n });\n return String(urlObject);\n};\n\nconst htmlAttributeSrcSet = {\n parse: srcset => {\n const srcCandidates = [];\n srcset.split(\",\").forEach(set => {\n const [specifier, descriptor] = set.trim().split(\" \");\n srcCandidates.push({\n specifier,\n descriptor\n });\n });\n return srcCandidates;\n },\n stringify: srcCandidates => {\n const srcset = srcCandidates.map(({\n specifier,\n descriptor\n }) => \"\".concat(specifier, \" \").concat(descriptor)).join(\", \");\n return srcset;\n }\n};\n\nconst reloadHtmlPage = () => {\n window.location.reload(true);\n}; // This function can consider everything as hot reloadable:\n// - no need to check [hot-accept]and [hot-decline] attributes for instance\n// This is because if something should full reload, we receive \"full_reload\"\n// from server and this function is not called\n\nconst reloadDOMNodesUsingUrl = urlToReload => {\n const mutations = [];\n\n const shouldReloadUrl = urlCandidate => {\n return compareTwoUrlPaths(urlCandidate, urlToReload);\n };\n\n const visitNodeAttributeAsUrl = (node, attributeName) => {\n let attribute = node[attributeName];\n\n if (!attribute) {\n return;\n }\n\n if (SVGAnimatedString && attribute instanceof SVGAnimatedString) {\n attribute = attribute.animVal;\n }\n\n if (!shouldReloadUrl(attribute)) {\n return;\n }\n\n mutations.push(() => {\n node[attributeName] = injectQuery(attribute, {\n hmr: Date.now()\n });\n });\n };\n\n Array.from(document.querySelectorAll(\"link[rel=\\\"stylesheet\\\"]\")).forEach(link => {\n visitNodeAttributeAsUrl(link, \"href\");\n });\n Array.from(document.querySelectorAll(\"link[rel=\\\"icon\\\"]\")).forEach(link => {\n visitNodeAttributeAsUrl(link, \"href\");\n });\n Array.from(document.querySelector(\"script\")).forEach(script => {\n visitNodeAttributeAsUrl(script, \"src\");\n }); // There is no real need to update a.href because the ressource will be fetched when clicked.\n // But in a scenario where the ressource was already visited and is in browser cache, adding\n // the dynamic query param ensure the cache is invalidated\n\n Array.from(document.querySelectorAll(\"a\")).forEach(a => {\n visitNodeAttributeAsUrl(a, \"href\");\n }); // About iframes:\n // - By default iframe itself and everything inside trigger a parent page full-reload\n // - Adding [hot-accept] on the iframe means parent page won't reload when iframe full/hot reload\n // In that case and if there is code in the iframe and parent doing post message communication:\n // you must put import.meta.hot.decline() for code involved in communication.\n // (both in parent and iframe)\n\n Array.from(document.querySelectorAll(\"img\")).forEach(img => {\n visitNodeAttributeAsUrl(img, \"src\");\n const srcset = img.srcset;\n\n if (srcset) {\n const srcCandidates = htmlAttributeSrcSet.parse(srcset);\n srcCandidates.forEach(srcCandidate => {\n const url = new URL(srcCandidate.specifier, \"\".concat(window.location.href));\n\n if (shouldReloadUrl(url)) {\n srcCandidate.specifier = injectQuery(url, {\n hmr: Date.now()\n });\n }\n });\n mutations.push(() => {\n img.srcset = htmlAttributeSrcSet.stringify(srcCandidates);\n });\n }\n });\n Array.from(document.querySelectorAll(\"source\")).forEach(source => {\n visitNodeAttributeAsUrl(source, \"src\");\n }); // svg image tag\n\n Array.from(document.querySelectorAll(\"image\")).forEach(image => {\n visitNodeAttributeAsUrl(image, \"href\");\n }); // svg use\n\n Array.from(document.querySelectorAll(\"use\")).forEach(use => {\n visitNodeAttributeAsUrl(use, \"href\");\n });\n mutations.forEach(mutation => {\n mutation();\n });\n};\nconst reloadJsImport = async url => {\n const urlWithHmr = injectQuery(url, {\n hmr: Date.now()\n });\n const namespace = await import(urlWithHmr);\n return namespace;\n};\n\nconst reloadMessages = [];\nconst reloadMessagesSignal = {\n onchange: () => {}\n};\nlet pendingCallbacks = [];\nlet running = false;\n\nconst addToHotQueue = async callback => {\n pendingCallbacks.push(callback);\n dequeue();\n};\n\nconst dequeue = async () => {\n if (running) {\n return;\n }\n\n const callbacks = pendingCallbacks.slice();\n pendingCallbacks = [];\n running = true;\n await callbacks.reduce(async (previous, callback) => {\n await previous;\n await callback();\n }, Promise.resolve());\n running = false;\n\n if (pendingCallbacks.length) {\n dequeue();\n }\n};\n\nconst applyReloadMessageEffects = async () => {\n const someEffectIsFullReload = reloadMessages.some(reloadMessage => reloadMessage.type === \"full\");\n\n if (someEffectIsFullReload) {\n reloadHtmlPage();\n return;\n }\n\n const onApplied = reloadMessage => {\n const index = reloadMessages.indexOf(reloadMessage);\n reloadMessages.splice(index, 1);\n reloadMessagesSignal.onchange();\n };\n\n const setReloadMessagePromise = (reloadMessage, promise) => {\n reloadMessage.status = \"pending\";\n promise.then(() => {\n onApplied(reloadMessage);\n }, e => {\n // TODO: reuse error display from html supervisor\n console.error(e);\n console.error(\"[hmr] Failed to reload after \".concat(reloadMessage.reason, \".\\nThis could be due to syntax errors or importing non-existent modules (see errors above)\"));\n reloadMessage.status = \"failed\";\n reloadMessagesSignal.onchange();\n });\n };\n\n reloadMessages.forEach(reloadMessage => {\n if (reloadMessage.type === \"hot\") {\n const promise = addToHotQueue(() => {\n return applyHotReload(reloadMessage);\n });\n setReloadMessagePromise(reloadMessage, promise);\n } else {\n setReloadMessagePromise(reloadMessage, Promise.resolve());\n }\n });\n reloadMessagesSignal.onchange(); // reload status is \"pending\"\n};\n\nconst applyHotReload = async ({\n hotInstructions\n}) => {\n await hotInstructions.reduce(async (previous, {\n type,\n boundary,\n acceptedBy\n }) => {\n await previous;\n const urlToFetch = new URL(boundary, \"\".concat(window.location.origin, \"/\")).href;\n const urlHotMeta = urlHotMetas[urlToFetch]; // TODO: we should return when there is no url hot meta because\n // it means code was not executed (code splitting with dynamic import)\n // if (!urlHotMeta) {return }\n\n if (type === \"prune\") {\n console.group(\"[jsenv] prune: \".concat(boundary, \" (inside \").concat(acceptedBy, \")\"));\n } else if (acceptedBy === boundary) {\n console.group(\"[jsenv] hot reloading: \".concat(boundary));\n } else {\n console.group(\"[jsenv] hot reloading: \".concat(acceptedBy, \" inside \").concat(boundary));\n }\n\n if (urlHotMeta && urlHotMeta.disposeCallback) {\n console.log(\"call dispose callback\");\n await urlHotMeta.disposeCallback();\n }\n\n if (type === \"prune\") {\n delete urlHotMetas[urlToFetch];\n console.log(\"cleanup pruned url\");\n console.groupEnd();\n return null;\n }\n\n if (type === \"js_module\") {\n console.log(\"importing js module\");\n const namespace = await reloadJsImport(urlToFetch);\n\n if (urlHotMeta && urlHotMeta.acceptCallback) {\n await urlHotMeta.acceptCallback(namespace);\n }\n\n console.log(\"js module import done\");\n console.groupEnd();\n return namespace;\n }\n\n if (type === \"html\") {\n if (!compareTwoUrlPaths(urlToFetch, window.location.href)) {\n // we are not in that HTML page\n return null;\n }\n\n console.log(\"reloading url\");\n const urlToReload = new URL(acceptedBy, \"\".concat(window.location.origin, \"/\")).href;\n reloadDOMNodesUsingUrl(urlToReload);\n console.log(\"url reloaded\");\n console.groupEnd();\n return null;\n }\n\n console.warn(\"unknown update type: \\\"\".concat(type, \"\\\"\"));\n return null;\n }, Promise.resolve());\n};\n\nconst addReloadMessage = reloadMessage => {\n reloadMessages.push(reloadMessage);\n\n if (isAutoreloadEnabled()) {\n applyReloadMessageEffects();\n } else {\n reloadMessagesSignal.onchange();\n }\n};\n\nconst eventsourceConnection = createEventSourceConnection(document.location.href, {\n reload: ({\n data\n }) => {\n const reloadMessage = JSON.parse(data);\n addReloadMessage(reloadMessage);\n }\n}, {\n retryMaxAttempt: Infinity,\n retryAllocatedMs: 20 * 1000\n});\nconst {\n status,\n connect,\n disconnect\n} = eventsourceConnection;\nconnect();\nwindow.__jsenv_event_source_client__ = {\n status,\n connect,\n disconnect,\n isAutoreloadEnabled,\n setAutoreloadPreference,\n urlHotMetas,\n reloadMessages,\n reloadMessagesSignal,\n applyReloadMessageEffects,\n addReloadMessage\n}; // const findHotMetaUrl = (originalFileRelativeUrl) => {\n// return Object.keys(urlHotMetas).find((compileUrl) => {\n// return (\n// parseCompiledUrl(compileUrl).fileRelativeUrl === originalFileRelativeUrl\n// )\n// })\n// }\n"
|
|
186
|
+
]
|
|
188
187
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* https://vitejs.dev/guide/api-hmr.html#hot-accept-deps-cb
|
|
3
|
+
* https://modern-web.dev/docs/dev-server/plugins/hmr/
|
|
4
|
+
*/
|
|
5
|
+
const urlHotMetas = {};
|
|
6
|
+
const createImportMetaHot = importMetaUrl => {
|
|
7
|
+
const data = {};
|
|
8
|
+
const url = asUrlWithoutHmrQuery(importMetaUrl);
|
|
9
|
+
return {
|
|
10
|
+
data,
|
|
11
|
+
accept: (firstArg, secondArg) => {
|
|
12
|
+
if (!firstArg) {
|
|
13
|
+
addUrlMeta(url, {
|
|
14
|
+
dependencies: [url],
|
|
15
|
+
acceptCallback: () => {}
|
|
16
|
+
});
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (typeof firstArg === "function") {
|
|
21
|
+
addUrlMeta(url, {
|
|
22
|
+
dependencies: [url],
|
|
23
|
+
acceptCallback: firstArg
|
|
24
|
+
});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (typeof firstArg === "string") {
|
|
29
|
+
addUrlMeta(url, {
|
|
30
|
+
dependencies: [firstArg],
|
|
31
|
+
acceptCallback: secondArg
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (Array.isArray(firstArg)) {
|
|
37
|
+
addUrlMeta(url, {
|
|
38
|
+
dependencies: firstArg,
|
|
39
|
+
acceptCallback: secondArg
|
|
40
|
+
});
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
throw new Error("invalid call to import.meta.hot.accept(), received ".concat(firstArg));
|
|
45
|
+
},
|
|
46
|
+
dispose: callback => {
|
|
47
|
+
addUrlMeta(url, {
|
|
48
|
+
disposeCallback: () => {
|
|
49
|
+
return callback(data);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
decline: () => {
|
|
54
|
+
addUrlMeta(url, {
|
|
55
|
+
declined: true
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
invalidate: () => {
|
|
59
|
+
addUrlMeta(url, {
|
|
60
|
+
invalidated: true
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const addUrlMeta = (url, meta) => {
|
|
67
|
+
urlHotMetas[url] = { ...urlHotMetas[url],
|
|
68
|
+
...meta
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const asUrlWithoutHmrQuery = url => {
|
|
73
|
+
const urlObject = new URL(url);
|
|
74
|
+
|
|
75
|
+
if (urlObject.searchParams.has("hmr")) {
|
|
76
|
+
urlObject.searchParams.delete("hmr");
|
|
77
|
+
urlObject.searchParams.delete("v");
|
|
78
|
+
return urlObject.href;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return url;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { createImportMetaHot, urlHotMetas };
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=import_meta_hot.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"file": "import_meta_hot.js",
|
|
4
|
+
"sources": [
|
|
5
|
+
"../src/plugins/import_meta_hot/client/import_meta_hot.js"
|
|
6
|
+
],
|
|
7
|
+
"sourcesContent": [
|
|
8
|
+
"/*\n * https://vitejs.dev/guide/api-hmr.html#hot-accept-deps-cb\n * https://modern-web.dev/docs/dev-server/plugins/hmr/\n */\n\nexport const urlHotMetas = {}\n\nexport const createImportMetaHot = (importMetaUrl) => {\n const data = {}\n const url = asUrlWithoutHmrQuery(importMetaUrl)\n\n return {\n data,\n accept: (firstArg, secondArg) => {\n if (!firstArg) {\n addUrlMeta(url, {\n dependencies: [url],\n acceptCallback: () => {},\n })\n return\n }\n if (typeof firstArg === \"function\") {\n addUrlMeta(url, {\n dependencies: [url],\n acceptCallback: firstArg,\n })\n return\n }\n if (typeof firstArg === \"string\") {\n addUrlMeta(url, {\n dependencies: [firstArg],\n acceptCallback: secondArg,\n })\n return\n }\n if (Array.isArray(firstArg)) {\n addUrlMeta(url, {\n dependencies: firstArg,\n acceptCallback: secondArg,\n })\n return\n }\n throw new Error(\n `invalid call to import.meta.hot.accept(), received ${firstArg}`,\n )\n },\n dispose: (callback) => {\n addUrlMeta(url, {\n disposeCallback: () => {\n return callback(data)\n },\n })\n },\n decline: () => {\n addUrlMeta(url, {\n declined: true,\n })\n },\n invalidate: () => {\n addUrlMeta(url, {\n invalidated: true,\n })\n },\n }\n}\n\nconst addUrlMeta = (url, meta) => {\n urlHotMetas[url] = {\n ...urlHotMetas[url],\n ...meta,\n }\n}\n\nconst asUrlWithoutHmrQuery = (url) => {\n const urlObject = new URL(url)\n if (urlObject.searchParams.has(\"hmr\")) {\n urlObject.searchParams.delete(\"hmr\")\n urlObject.searchParams.delete(\"v\")\n return urlObject.href\n }\n return url\n}\n"
|
|
9
|
+
],
|
|
10
|
+
"names": [
|
|
11
|
+
"urlHotMetas",
|
|
12
|
+
"createImportMetaHot",
|
|
13
|
+
"importMetaUrl",
|
|
14
|
+
"data",
|
|
15
|
+
"url",
|
|
16
|
+
"asUrlWithoutHmrQuery",
|
|
17
|
+
"accept",
|
|
18
|
+
"firstArg",
|
|
19
|
+
"secondArg",
|
|
20
|
+
"addUrlMeta",
|
|
21
|
+
"dependencies",
|
|
22
|
+
"acceptCallback",
|
|
23
|
+
"Array",
|
|
24
|
+
"isArray",
|
|
25
|
+
"Error",
|
|
26
|
+
"dispose",
|
|
27
|
+
"callback",
|
|
28
|
+
"disposeCallback",
|
|
29
|
+
"decline",
|
|
30
|
+
"declined",
|
|
31
|
+
"invalidate",
|
|
32
|
+
"invalidated",
|
|
33
|
+
"meta",
|
|
34
|
+
"urlObject",
|
|
35
|
+
"URL",
|
|
36
|
+
"searchParams",
|
|
37
|
+
"has",
|
|
38
|
+
"delete",
|
|
39
|
+
"href"
|
|
40
|
+
],
|
|
41
|
+
"mappings": "AAAA;AACA;AACA;AACA;AAEO,MAAMA,WAAW,GAAG,GAApB;AAEMC,MAAAA,mBAAmB,GAAIC,aAAD,IAAmB;EACpD,MAAMC,IAAI,GAAG,EAAb,CAAA;AACA,EAAA,MAAMC,GAAG,GAAGC,oBAAoB,CAACH,aAAD,CAAhC,CAAA;EAEA,OAAO;IACLC,IADK;AAELG,IAAAA,MAAM,EAAE,CAACC,QAAD,EAAWC,SAAX,KAAyB;MAC/B,IAAI,CAACD,QAAL,EAAe;QACbE,UAAU,CAACL,GAAD,EAAM;UACdM,YAAY,EAAE,CAACN,GAAD,CADA;UAEdO,cAAc,EAAE,MAAM,EAAE;AAFV,SAAN,CAAV,CAAA;AAIA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,IAAI,OAAOJ,QAAP,KAAoB,UAAxB,EAAoC;QAClCE,UAAU,CAACL,GAAD,EAAM;UACdM,YAAY,EAAE,CAACN,GAAD,CADA;AAEdO,UAAAA,cAAc,EAAEJ,QAAAA;AAFF,SAAN,CAAV,CAAA;AAIA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;QAChCE,UAAU,CAACL,GAAD,EAAM;UACdM,YAAY,EAAE,CAACH,QAAD,CADA;AAEdI,UAAAA,cAAc,EAAEH,SAAAA;AAFF,SAAN,CAAV,CAAA;AAIA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,IAAII,KAAK,CAACC,OAAN,CAAcN,QAAd,CAAJ,EAA6B;QAC3BE,UAAU,CAACL,GAAD,EAAM;AACdM,UAAAA,YAAY,EAAEH,QADA;AAEdI,UAAAA,cAAc,EAAEH,SAAAA;AAFF,SAAN,CAAV,CAAA;AAIA,QAAA,OAAA;AACD,OAAA;;AACD,MAAA,MAAM,IAAIM,KAAJ,CACkDP,qDAAAA,CAAAA,MAAAA,CAAAA,QADlD,CAAN,CAAA,CAAA;KA/BG;IAmCLQ,OAAO,EAAGC,QAAD,IAAc;MACrBP,UAAU,CAACL,GAAD,EAAM;AACda,QAAAA,eAAe,EAAE,MAAM;UACrB,OAAOD,QAAQ,CAACb,IAAD,CAAf,CAAA;AACD,SAAA;AAHa,OAAN,CAAV,CAAA;KApCG;AA0CLe,IAAAA,OAAO,EAAE,MAAM;MACbT,UAAU,CAACL,GAAD,EAAM;AACde,QAAAA,QAAQ,EAAE,IAAA;AADI,OAAN,CAAV,CAAA;KA3CG;AA+CLC,IAAAA,UAAU,EAAE,MAAM;MAChBX,UAAU,CAACL,GAAD,EAAM;AACdiB,QAAAA,WAAW,EAAE,IAAA;AADC,OAAN,CAAV,CAAA;AAGD,KAAA;GAnDH,CAAA;AAqDD,EAzDM;;AA2DP,MAAMZ,UAAU,GAAG,CAACL,GAAD,EAAMkB,IAAN,KAAe;EAChCtB,WAAW,CAACI,GAAD,CAAX,GAAmB,EACjB,GAAGJ,WAAW,CAACI,GAAD,CADG;IAEjB,GAAGkB,IAAAA;GAFL,CAAA;AAID,CALD,CAAA;;AAOA,MAAMjB,oBAAoB,GAAID,GAAD,IAAS;AACpC,EAAA,MAAMmB,SAAS,GAAG,IAAIC,GAAJ,CAAQpB,GAAR,CAAlB,CAAA;;EACA,IAAImB,SAAS,CAACE,YAAV,CAAuBC,GAAvB,CAA2B,KAA3B,CAAJ,EAAuC;AACrCH,IAAAA,SAAS,CAACE,YAAV,CAAuBE,MAAvB,CAA8B,KAA9B,CAAA,CAAA;AACAJ,IAAAA,SAAS,CAACE,YAAV,CAAuBE,MAAvB,CAA8B,GAA9B,CAAA,CAAA;IACA,OAAOJ,SAAS,CAACK,IAAjB,CAAA;AACD,GAAA;;AACD,EAAA,OAAOxB,GAAP,CAAA;AACD,CARD;;;;"
|
|
42
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsenv/core",
|
|
3
|
-
"version": "27.0.0-alpha.
|
|
3
|
+
"version": "27.0.0-alpha.50",
|
|
4
4
|
"description": "Tool to develop, test and build js projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@jsenv/node-esm-resolution": "0.0.6",
|
|
69
69
|
"@jsenv/server": "12.6.2",
|
|
70
70
|
"@jsenv/uneval": "1.6.0",
|
|
71
|
-
"@jsenv/utils": "1.7.
|
|
71
|
+
"@jsenv/utils": "1.7.1",
|
|
72
72
|
"construct-style-sheets-polyfill": "3.1.0",
|
|
73
73
|
"cssnano": "5.1.7",
|
|
74
74
|
"cssnano-preset-default": "5.2.7",
|
package/src/build/build.js
CHANGED
|
@@ -336,7 +336,7 @@ ${Object.keys(rawGraph.urlInfos).join("\n")}`,
|
|
|
336
336
|
urlGraph: finalGraph,
|
|
337
337
|
scenario: "build",
|
|
338
338
|
sourcemaps,
|
|
339
|
-
sourcemapsRelativeSources:
|
|
339
|
+
sourcemapsRelativeSources: !versioning,
|
|
340
340
|
runtimeCompat,
|
|
341
341
|
plugins: [
|
|
342
342
|
jsenvPluginUrlAnalysis(),
|
|
@@ -510,12 +510,25 @@ ${Object.keys(rawGraph.urlInfos).join("\n")}`,
|
|
|
510
510
|
}
|
|
511
511
|
// remove eventual search params and hash
|
|
512
512
|
const urlUntilPathname = asUrlUntilPathname(reference.generatedUrl)
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
513
|
+
let specifier
|
|
514
|
+
if (baseUrl === "./") {
|
|
515
|
+
const relativeUrl = urlToRelativeUrl(
|
|
516
|
+
urlUntilPathname,
|
|
517
|
+
reference.parentUrl === rootDirectoryUrl
|
|
518
|
+
? buildDirectoryUrl
|
|
519
|
+
: reference.parentUrl,
|
|
520
|
+
)
|
|
521
|
+
// ensure "./" on relative url (otherwise it could be a "bare specifier")
|
|
522
|
+
specifier =
|
|
523
|
+
relativeUrl[0] === "." ? relativeUrl : `./${relativeUrl}`
|
|
524
|
+
} else {
|
|
525
|
+
// if a file is in the same directory we could prefer the relative notation
|
|
526
|
+
// but to keep things simple let's keep the "absolutely relative" to baseUrl for now
|
|
527
|
+
specifier = `${baseUrl}${urlToRelativeUrl(
|
|
528
|
+
urlUntilPathname,
|
|
529
|
+
buildDirectoryUrl,
|
|
530
|
+
)}`
|
|
531
|
+
}
|
|
519
532
|
buildUrls[specifier] = reference.generatedUrl
|
|
520
533
|
return specifier
|
|
521
534
|
},
|
|
@@ -860,6 +873,7 @@ const applyUrlVersioning = async ({
|
|
|
860
873
|
urlGraph: finalGraph,
|
|
861
874
|
scenario: "build",
|
|
862
875
|
sourcemaps,
|
|
876
|
+
sourcemapsRelativeSources: true,
|
|
863
877
|
runtimeCompat,
|
|
864
878
|
plugins: [
|
|
865
879
|
jsenvPluginUrlAnalysis(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { urlToFilename } from "@jsenv/filesystem"
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { memoizeByFirstArgument } from "@jsenv/utils/memoize/memoize_by_first_argument.js"
|
|
4
4
|
|
|
5
5
|
export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
6
6
|
const cache = {}
|
|
@@ -15,7 +15,7 @@ export const createBuilUrlsGenerator = ({ buildDirectoryUrl }) => {
|
|
|
15
15
|
return urlToFilename(url)
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
const generate =
|
|
18
|
+
const generate = memoizeByFirstArgument((url, { urlInfo, parentUrlInfo }) => {
|
|
19
19
|
const directoryPath = determineDirectoryPath({
|
|
20
20
|
urlInfo,
|
|
21
21
|
parentUrlInfo,
|
package/src/omega/kitchen.js
CHANGED
|
@@ -38,7 +38,7 @@ export const createKitchen = ({
|
|
|
38
38
|
test: "inline",
|
|
39
39
|
build: "none",
|
|
40
40
|
}[scenario],
|
|
41
|
-
|
|
41
|
+
sourcemapsSourcesContent = {
|
|
42
42
|
// during dev/test, chrome is able to find the sourcemap sources
|
|
43
43
|
// as long as they use file:// protocol in the sourcemap files
|
|
44
44
|
dev: false,
|
|
@@ -227,7 +227,7 @@ export const createKitchen = ({
|
|
|
227
227
|
logger,
|
|
228
228
|
urlGraph,
|
|
229
229
|
sourcemaps,
|
|
230
|
-
|
|
230
|
+
sourcemapsSourcesContent,
|
|
231
231
|
sourcemapsRelativeSources,
|
|
232
232
|
injectSourcemapPlaceholder: ({ urlInfo, specifier }) => {
|
|
233
233
|
const sourcemapReference = createReference({
|
|
@@ -732,8 +732,8 @@ const applyReferenceEffectsOnUrlInfo = (reference, urlInfo, context) => {
|
|
|
732
732
|
content: reference.isOriginalPosition
|
|
733
733
|
? parentUrlInfo.originalContent
|
|
734
734
|
: parentUrlInfo.content,
|
|
735
|
-
line: reference.
|
|
736
|
-
column: reference.
|
|
735
|
+
line: reference.specifierLine,
|
|
736
|
+
column: reference.specifierColumn,
|
|
737
737
|
}
|
|
738
738
|
urlInfo.contentType = reference.contentType
|
|
739
739
|
urlInfo.originalContent =
|
|
@@ -39,9 +39,6 @@ export const createFileService = ({
|
|
|
39
39
|
if (responseFromPlugin) {
|
|
40
40
|
return responseFromPlugin
|
|
41
41
|
}
|
|
42
|
-
const { runtimeName, runtimeVersion } = parseUserAgentHeader(
|
|
43
|
-
request.headers["user-agent"],
|
|
44
|
-
)
|
|
45
42
|
const [reference, urlInfo] = kitchen.prepareEntryPoint({
|
|
46
43
|
parentUrl: inferParentFromRequest(request, rootDirectoryUrl),
|
|
47
44
|
type: "entry_point",
|
|
@@ -62,9 +59,12 @@ export const createFileService = ({
|
|
|
62
59
|
)
|
|
63
60
|
try {
|
|
64
61
|
// urlInfo objects are reused, they must be "reset" before cooking then again
|
|
65
|
-
if (!urlInfo.isInline) {
|
|
62
|
+
if (!urlInfo.isInline && !urlInfo.type === "sourcemap") {
|
|
66
63
|
urlGraph.resetUrlInfo(urlInfo)
|
|
67
64
|
}
|
|
65
|
+
const { runtimeName, runtimeVersion } = parseUserAgentHeader(
|
|
66
|
+
request.headers["user-agent"],
|
|
67
|
+
)
|
|
68
68
|
await kitchen.cook({
|
|
69
69
|
reference: referenceFromGraph || reference,
|
|
70
70
|
urlInfo,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { createRequire } from "node:module"
|
|
2
2
|
|
|
3
|
+
import { memoizeByFirstArgument } from "@jsenv/utils/memoize/memoize_by_first_argument.js"
|
|
4
|
+
|
|
3
5
|
const require = createRequire(import.meta.url)
|
|
4
6
|
|
|
5
|
-
export const parseUserAgentHeader = (userAgent) => {
|
|
7
|
+
export const parseUserAgentHeader = memoizeByFirstArgument((userAgent) => {
|
|
6
8
|
if (userAgent.includes("node-fetch/")) {
|
|
7
9
|
// it's not really node and conceptually we can't assume the node version
|
|
8
10
|
// but good enough for now
|
|
@@ -19,4 +21,4 @@ export const parseUserAgentHeader = (userAgent) => {
|
|
|
19
21
|
runtimeVersion:
|
|
20
22
|
family === "Other" ? "unknown" : `${major}.${minor}${patch}`,
|
|
21
23
|
}
|
|
22
|
-
}
|
|
24
|
+
})
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
export const createUrlInfoTransformer = ({
|
|
11
11
|
logger,
|
|
12
12
|
sourcemaps,
|
|
13
|
-
|
|
13
|
+
sourcemapsSourcesContent,
|
|
14
14
|
sourcemapsRelativeSources,
|
|
15
15
|
urlGraph,
|
|
16
16
|
injectSourcemapPlaceholder,
|
|
@@ -26,7 +26,7 @@ export const createUrlInfoTransformer = ({
|
|
|
26
26
|
// for inline content (<script> insdide html)
|
|
27
27
|
// chrome won't be able to fetch the file as it does not exists
|
|
28
28
|
// so sourcemap must contain sources
|
|
29
|
-
|
|
29
|
+
sourcemapsSourcesContent ||
|
|
30
30
|
urlInfo.isInline ||
|
|
31
31
|
(sourcemap.sources &&
|
|
32
32
|
sourcemap.sources.some(
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
isFileSystemPath,
|
|
3
|
+
normalizeStructuredMetaMap,
|
|
4
|
+
urlToMeta,
|
|
5
|
+
} from "@jsenv/filesystem"
|
|
2
6
|
import { createDetailedMessage } from "@jsenv/logger"
|
|
3
7
|
|
|
4
8
|
import { applyRollupPlugins } from "@jsenv/utils/js_ast/apply_rollup_plugins.js"
|
|
5
9
|
import { sourcemapConverter } from "@jsenv/utils/sourcemap/sourcemap_converter.js"
|
|
6
10
|
import { fileUrlConverter } from "@jsenv/core/src/omega/file_url_converter.js"
|
|
7
11
|
|
|
8
|
-
export const bundleJsModule = async ({
|
|
12
|
+
export const bundleJsModule = async ({
|
|
13
|
+
jsModuleUrlInfos,
|
|
14
|
+
context,
|
|
15
|
+
options,
|
|
16
|
+
}) => {
|
|
9
17
|
const {
|
|
10
18
|
signal,
|
|
11
19
|
logger,
|
|
@@ -25,6 +33,7 @@ export const bundleJsModule = async ({ jsModuleUrlInfos, context }) => {
|
|
|
25
33
|
|
|
26
34
|
runtimeCompat,
|
|
27
35
|
sourcemaps,
|
|
36
|
+
options,
|
|
28
37
|
})
|
|
29
38
|
return jsModuleBundleUrlInfos
|
|
30
39
|
}
|
|
@@ -39,6 +48,7 @@ export const buildWithRollup = async ({
|
|
|
39
48
|
|
|
40
49
|
runtimeCompat,
|
|
41
50
|
sourcemaps,
|
|
51
|
+
options,
|
|
42
52
|
}) => {
|
|
43
53
|
const resultRef = { current: null }
|
|
44
54
|
try {
|
|
@@ -54,6 +64,7 @@ export const buildWithRollup = async ({
|
|
|
54
64
|
|
|
55
65
|
runtimeCompat,
|
|
56
66
|
sourcemaps,
|
|
67
|
+
options,
|
|
57
68
|
resultRef,
|
|
58
69
|
}),
|
|
59
70
|
],
|
|
@@ -86,6 +97,7 @@ const rollupPluginJsenv = ({
|
|
|
86
97
|
urlGraph,
|
|
87
98
|
jsModuleUrlInfos,
|
|
88
99
|
sourcemaps,
|
|
100
|
+
options,
|
|
89
101
|
|
|
90
102
|
resultRef,
|
|
91
103
|
}) => {
|
|
@@ -98,6 +110,21 @@ const rollupPluginJsenv = ({
|
|
|
98
110
|
...chunk,
|
|
99
111
|
})
|
|
100
112
|
}
|
|
113
|
+
let importCanBeBundled = () => true
|
|
114
|
+
if (options.include) {
|
|
115
|
+
const bundleIncludeConfig = normalizeStructuredMetaMap(
|
|
116
|
+
{
|
|
117
|
+
bundle: options.include,
|
|
118
|
+
},
|
|
119
|
+
rootDirectoryUrl,
|
|
120
|
+
)
|
|
121
|
+
importCanBeBundled = (url) => {
|
|
122
|
+
return urlToMeta({
|
|
123
|
+
url,
|
|
124
|
+
structuredMetaMap: bundleIncludeConfig,
|
|
125
|
+
}).bundle
|
|
126
|
+
}
|
|
127
|
+
}
|
|
101
128
|
const urlImporters = {}
|
|
102
129
|
|
|
103
130
|
return {
|
|
@@ -207,6 +234,9 @@ const rollupPluginJsenv = ({
|
|
|
207
234
|
if (!url.startsWith("file:")) {
|
|
208
235
|
return { id: url, external: true }
|
|
209
236
|
}
|
|
237
|
+
if (!importCanBeBundled(url)) {
|
|
238
|
+
return { id: url, external: true }
|
|
239
|
+
}
|
|
210
240
|
const filePath = fileUrlConverter.asFilePath(url)
|
|
211
241
|
return filePath
|
|
212
242
|
},
|
|
@@ -23,28 +23,31 @@ export const jsenvPluginBundling = (bundling) => {
|
|
|
23
23
|
},
|
|
24
24
|
bundle: {
|
|
25
25
|
css: bundling.css
|
|
26
|
-
? (cssUrlInfos, context) =>
|
|
27
|
-
bundleCss({
|
|
26
|
+
? (cssUrlInfos, context) => {
|
|
27
|
+
return bundleCss({
|
|
28
28
|
cssUrlInfos,
|
|
29
29
|
context,
|
|
30
30
|
options: bundling.css,
|
|
31
31
|
})
|
|
32
|
+
}
|
|
32
33
|
: undefined,
|
|
33
34
|
js_classic: bundling.js_classic
|
|
34
|
-
? (jsClassicUrlInfos, context) =>
|
|
35
|
-
bundleJsClassicWorkers({
|
|
35
|
+
? (jsClassicUrlInfos, context) => {
|
|
36
|
+
return bundleJsClassicWorkers({
|
|
36
37
|
jsClassicUrlInfos,
|
|
37
38
|
context,
|
|
38
39
|
options: bundling.js_classic_workers,
|
|
39
40
|
})
|
|
41
|
+
}
|
|
40
42
|
: undefined,
|
|
41
43
|
js_module: bundling.js_module
|
|
42
|
-
? (jsModuleUrlInfos, context) =>
|
|
43
|
-
bundleJsModule({
|
|
44
|
+
? (jsModuleUrlInfos, context) => {
|
|
45
|
+
return bundleJsModule({
|
|
44
46
|
jsModuleUrlInfos,
|
|
45
47
|
context,
|
|
46
48
|
options: bundling.js_module,
|
|
47
49
|
})
|
|
50
|
+
}
|
|
48
51
|
: undefined,
|
|
49
52
|
},
|
|
50
53
|
}
|
|
@@ -68,9 +68,9 @@ export const jsenvPluginHtmlSupervisor = ({
|
|
|
68
68
|
expectedType: { classic: "js_classic", module: "js_module" }[
|
|
69
69
|
scriptCategory
|
|
70
70
|
],
|
|
71
|
-
line: line - 1,
|
|
72
|
-
column,
|
|
73
71
|
isOriginalPosition: isOriginal,
|
|
72
|
+
specifierLine: line - 1,
|
|
73
|
+
specifierColumn: column,
|
|
74
74
|
specifier: inlineScriptUrl,
|
|
75
75
|
contentType: "text/javascript",
|
|
76
76
|
content: textNode.value,
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
+
import { urlIsInsideOf } from "@jsenv/filesystem"
|
|
2
|
+
|
|
1
3
|
import { createMagicSource } from "@jsenv/utils/sourcemap/magic_source.js"
|
|
2
4
|
import { parseHtmlString } from "@jsenv/utils/html_ast/html_ast.js"
|
|
3
5
|
import { applyBabelPlugins } from "@jsenv/utils/js_ast/apply_babel_plugins.js"
|
|
4
|
-
|
|
6
|
+
import { jsenvRootDirectoryUrl } from "@jsenv/core/src/jsenv_root_directory_url.js"
|
|
5
7
|
import { collectHotDataFromHtmlAst } from "./html_hot_dependencies.js"
|
|
6
8
|
import { babelPluginMetadataImportMetaHot } from "./babel_plugin_metadata_import_meta_hot.js"
|
|
7
9
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
)
|
|
10
|
+
export const jsenvPluginImportMetaHot = ({ rootDirectoryUrl }) => {
|
|
11
|
+
const preferSourceFiles =
|
|
12
|
+
rootDirectoryUrl === jsenvRootDirectoryUrl ||
|
|
13
|
+
urlIsInsideOf(rootDirectoryUrl, jsenvRootDirectoryUrl)
|
|
14
|
+
const importMetaHotClientFileUrl = preferSourceFiles
|
|
15
|
+
? new URL("./client/import_meta_hot.js", import.meta.url).href
|
|
16
|
+
: new URL("./dist/import_meta_hot.js", jsenvRootDirectoryUrl).href
|
|
12
17
|
|
|
13
|
-
export const jsenvPluginImportMetaHot = () => {
|
|
14
18
|
return {
|
|
15
19
|
name: "jsenv:import_meta_hot",
|
|
16
20
|
appliesDuring: "*",
|
|
@@ -62,7 +66,7 @@ export const jsenvPluginImportMetaHot = () => {
|
|
|
62
66
|
if (context.scenario === "build") {
|
|
63
67
|
return removeImportMetaHots(urlInfo, importMetaHotPaths)
|
|
64
68
|
}
|
|
65
|
-
return injectImportMetaHot(urlInfo, context)
|
|
69
|
+
return injectImportMetaHot(urlInfo, context, importMetaHotClientFileUrl)
|
|
66
70
|
},
|
|
67
71
|
},
|
|
68
72
|
}
|
|
@@ -84,7 +88,7 @@ const removeImportMetaHots = (urlInfo, importMetaHotPaths) => {
|
|
|
84
88
|
// better sourcemap than doing the equivalent with babel
|
|
85
89
|
// I suspect it's because I was doing injectAstAfterImport(programPath, ast.program.body[0])
|
|
86
90
|
// which is likely not well supported by babel
|
|
87
|
-
const injectImportMetaHot = (urlInfo, context) => {
|
|
91
|
+
const injectImportMetaHot = (urlInfo, context, importMetaHotClientFileUrl) => {
|
|
88
92
|
const [importMetaHotClientFileReference] = context.referenceUtils.inject({
|
|
89
93
|
parentUrl: urlInfo.url,
|
|
90
94
|
type: "js_import_export",
|
|
@@ -123,9 +123,9 @@ export const jsenvPluginImportmap = () => {
|
|
|
123
123
|
const [inlineImportmapReference, inlineImportmapUrlInfo] =
|
|
124
124
|
context.referenceUtils.foundInline({
|
|
125
125
|
type: "script_src",
|
|
126
|
-
line: line - 1,
|
|
127
|
-
column,
|
|
128
126
|
isOriginalPosition: isOriginal,
|
|
127
|
+
specifierLine: line - 1,
|
|
128
|
+
specifierColumn: column,
|
|
129
129
|
specifier: inlineImportmapUrl,
|
|
130
130
|
contentType: "application/importmap+json",
|
|
131
131
|
content: textNode.value,
|
|
@@ -44,12 +44,12 @@ export const jsenvPluginHtmlInlineContent = ({ analyzeConvertedScripts }) => {
|
|
|
44
44
|
context.referenceUtils.foundInline({
|
|
45
45
|
type: "link_href",
|
|
46
46
|
expectedType: "css",
|
|
47
|
+
isOriginalPosition: isOriginal,
|
|
47
48
|
// we remove 1 to the line because imagine the following html:
|
|
48
49
|
// <style>body { color: red; }</style>
|
|
49
50
|
// -> content starts same line as <style>
|
|
50
|
-
|
|
51
|
-
column,
|
|
52
|
-
isOriginalPosition: isOriginal,
|
|
51
|
+
specifierLine: line - 1,
|
|
52
|
+
specifierColumn: column,
|
|
53
53
|
specifier: inlineStyleUrl,
|
|
54
54
|
contentType: "text/css",
|
|
55
55
|
content: textNode.value,
|
|
@@ -127,8 +127,8 @@ export const jsenvPluginHtmlInlineContent = ({ analyzeConvertedScripts }) => {
|
|
|
127
127
|
// we remove 1 to the line because imagine the following html:
|
|
128
128
|
// <script>console.log('ok')</script>
|
|
129
129
|
// -> content starts same line as <script>
|
|
130
|
-
|
|
131
|
-
column,
|
|
130
|
+
specifierLine: line - 1,
|
|
131
|
+
specifierColumn: column,
|
|
132
132
|
isOriginalPosition: isOriginal,
|
|
133
133
|
specifier: inlineScriptUrl,
|
|
134
134
|
contentType,
|
|
@@ -40,8 +40,8 @@ export const jsenvPluginJsInlineContent = ({ allowEscapeForVersioning }) => {
|
|
|
40
40
|
type: "js_inline_content",
|
|
41
41
|
subtype: inlineContentInfo.type, // "new_blob_first_arg", "new_inline_content_first_arg", "json_parse_first_arg"
|
|
42
42
|
isOriginalPosition: urlInfo.content === urlInfo.originalContent,
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
specifierLine: inlineContentInfo.line,
|
|
44
|
+
specifierColumn: inlineContentInfo.column,
|
|
45
45
|
specifier: inlineUrl,
|
|
46
46
|
contentType: inlineContentInfo.contentType,
|
|
47
47
|
content: inlineContentInfo.content,
|
|
@@ -113,6 +113,9 @@ export const createPluginController = ({
|
|
|
113
113
|
}
|
|
114
114
|
const callAsyncHooksUntil = (hookName, info, context) => {
|
|
115
115
|
const hooks = hookGroups[hookName]
|
|
116
|
+
if (hooks.length === 0) {
|
|
117
|
+
return null
|
|
118
|
+
}
|
|
116
119
|
return new Promise((resolve, reject) => {
|
|
117
120
|
const visit = (index) => {
|
|
118
121
|
if (index >= hooks.length) {
|
package/src/plugins/plugins.js
CHANGED
|
@@ -73,7 +73,9 @@ export const getCorePlugins = ({
|
|
|
73
73
|
jsenvPluginBundling(bundling),
|
|
74
74
|
jsenvPluginMinification(minification),
|
|
75
75
|
|
|
76
|
-
jsenvPluginImportMetaHot(
|
|
76
|
+
jsenvPluginImportMetaHot({
|
|
77
|
+
rootDirectoryUrl,
|
|
78
|
+
}),
|
|
77
79
|
...(clientAutoreload
|
|
78
80
|
? [
|
|
79
81
|
jsenvPluginAutoreload({
|
package/src/plugins/transpilation/as_js_classic/jsenv_plugin_script_type_module_as_classic.js
CHANGED
|
@@ -202,12 +202,12 @@ export const jsenvPluginScriptTypeModuleAsClassic = ({
|
|
|
202
202
|
node: moduleScriptNode,
|
|
203
203
|
type: "script_src",
|
|
204
204
|
expectedType: "js_module",
|
|
205
|
+
isOriginalPosition: isOriginal,
|
|
205
206
|
// we remove 1 to the line because imagine the following html:
|
|
206
207
|
// <script>console.log('ok')</script>
|
|
207
208
|
// -> content starts same line as <script>
|
|
208
|
-
|
|
209
|
-
column,
|
|
210
|
-
isOriginalPosition: isOriginal,
|
|
209
|
+
specifierLine: line - 1,
|
|
210
|
+
specifierColumn: column,
|
|
211
211
|
specifier: inlineScriptUrl,
|
|
212
212
|
contentType: "application/javascript",
|
|
213
213
|
content: textNode.value,
|