diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index bc13004e..300bb7a1 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -163,6 +163,7 @@ jobs: node --experimental-strip-types tests/console_gap_contract_validation.mjs node --experimental-strip-types tests/console_returns_adapter_validation.mjs node --experimental-strip-types tests/console_display_gaps_validation.mjs + node --experimental-strip-types tests/console_cashflow_method_presentation_validation.mjs node --experimental-strip-types tests/console_runtime_daily_selection_validation.mjs node tests/console_performance_stats_validation.mjs node tests/account_settings_worker_validation.mjs diff --git a/tests/console_cashflow_method_presentation_validation.mjs b/tests/console_cashflow_method_presentation_validation.mjs new file mode 100644 index 00000000..69a18db8 --- /dev/null +++ b/tests/console_cashflow_method_presentation_validation.mjs @@ -0,0 +1,209 @@ +import assert from "node:assert/strict"; +import { mkdtemp, rm } from "node:fs/promises"; +import { createRequire } from "node:module"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { build } from "../web/strategy-switch-console/frontend/node_modules/esbuild/lib/main.js"; + +// Render the production SummaryCards/ReturnsCard with production translations, +// replacing only the data hook. Fixtures are captured PR #712 synthetic responses +// (see tests/fixtures/cashflow_method/PROVENANCE.md); the frontend never recomputes them. +const root = new URL("../web/strategy-switch-console/frontend/", import.meta.url).pathname; +const require = createRequire(import.meta.url); +const fixture = name => require(`./fixtures/cashflow_method/${name}.json`); + +const directory = await mkdtemp(join(tmpdir(), "console-dietz-")); +const outfile = join(directory, "render.cjs"); +try { + await build({ + stdin: { + contents: `import { createElement as h } from 'react'; + import { renderToStaticMarkup } from 'react-dom/server'; + import { SummaryCards } from './src/pages/performance/SummaryCards'; + import { ReturnsCard } from './src/pages/performance/ReturnsCard'; + import { I18nProvider } from './src/i18n'; + export const cards = (language, data) => + renderToStaticMarkup(h(I18nProvider, { language }, + h(SummaryCards, { scope: 'all', platform: undefined, range: 'ALL', epoch: 0 }))); + export const returns = (language, data, scope = 'all') => + renderToStaticMarkup(h(I18nProvider, { language }, + h(ReturnsCard, { scope, platform: undefined, range: 'ALL', epoch: 0 })));`, + resolveDir: root, + }, + bundle: true, platform: "node", format: "cjs", outfile, jsx: "automatic", + loader: { ".css": "empty" }, + define: { "import.meta.env": "{}" }, + plugins: [{ name: "controlled-read", setup(b) { + b.onLoad({ filter: /\/lib\/hooks\.ts$/ }, () => ({ contents: + "export const useApi = () => globalThis.__dietzState;", loader: "js" })); + } }], + }); + const ui = require(outfile); + const DIETZ = { zh: "Modified Dietz(近似)", en: "Modified Dietz (approximate)" }; + const TWR_KIND = { zh: "时间加权收益率(TWR)", en: "Time-weighted return (TWR)" }; + const UNADJUSTED = { zh: "未经出入金调整的资产变动比例(非 TWR)", en: "Asset-change ratio unadjusted for cash flows (not TWR)" }; + const STALE = { zh: "数据偏旧", en: "Stale" }; + const UNKNOWN = { zh: "收益口径未知", en: "Return method unknown" }; + + const renderCards = (language, data) => { + globalThis.__dietzState = { phase: "ready", data, reload() {} }; + return ui.cards(language, data); + }; + const renderReturns = (language, data, scope) => { + globalThis.__dietzState = { phase: "ready", data, reload() {} }; + return ui.returns(language, data, scope); + }; + const kindLabel = html => html.match(/([\s\S]*?)<\/span>/)?.[1] ?? null; + let checks = 0; + const ok = (...args) => { assert.ok(...args); checks += 1; }; + + for (const language of ["zh", "en"]) { + // 1. Real captured API response: explicit Modified Dietz + approximate metadata. + const dietz = fixture("dietz-api"); + const dietzCards = renderCards(language, dietz.summary); + ok(dietzCards.includes("+10.00%"), "backend value rendered as-is"); + ok(dietzCards.includes(DIETZ[language]), "summary card carries the approximate label"); + ok(dietzCards.includes(language === "zh" ? "累计收益(TWR)" : "Cumulative return (TWR)"), "card title unchanged"); + const dietzReturns = renderReturns(language, dietz.returns); + assert.equal(kindLabel(dietzReturns), DIETZ[language], "curve kind label matches the card label"); + checks += 1; + ok(dietzReturns.includes(language === "zh" ? "以 Modified Dietz 近似法计算" : "use the Modified Dietz approximation"), + "method note explains the approximation instead of contradicting it"); + + // 2. Qualified TWR without method metadata keeps the plain TWR label. + const twr = fixture("twr-core"); + assert.ok(!("cashflow_method" in twr.summary) && !("approximate" in twr.summary) + && !("cashflow_method" in twr.returns) && !("approximate" in twr.returns), + "twr-core carries no method keys at all (legacy/absent, not explicit null)"); + checks += 1; + const twrCards = renderCards(language, twr.summary); + ok(twrCards.includes("+10.00%")); + ok(!twrCards.includes(DIETZ[language]), "qualified TWR is not relabeled"); + const twrReturns = renderReturns(language, twr.returns); + assert.equal(kindLabel(twrReturns), TWR_KIND[language]); + checks += 1; + ok(!twrReturns.includes(language === "zh" ? "以 Modified Dietz 近似法计算" : "use the Modified Dietz approximation"), + "method note stays the original TWR explanation"); + + // 3. Legacy response without any optional fields keeps working unchanged. + const old = fixture("old-api"); + const oldCards = renderCards(language, old.summary); + ok(!oldCards.includes(DIETZ[language])); + ok(oldCards.includes("—"), "missing TWR stays an honest blank"); + ok(!oldCards.includes("+0.00%"), "unknown TWR is never shown as zero"); + ok(oldCards.includes(language === "zh" ? "缺少完整出入金记录,无法计算 TWR 及其回撤。" + : "Complete cash-flow records are missing; TWR and its drawdown cannot be calculated."), "existing reason text kept"); + const oldReturns = renderReturns(language, old.returns); + assert.equal(kindLabel(oldReturns), UNADJUSTED[language], "unadjusted ratio keeps its own label"); + checks += 1; + + // 4. Unknown/incomplete source stays unknown, never a fake zero or a hidden Dietz. + const unknown = fixture("unknown-core"); + const unknownCards = renderCards(language, unknown.summary); + ok(unknownCards.includes("—")); + ok(!unknownCards.includes("+0.00%")); + ok(!unknownCards.includes(DIETZ[language])); + const unknownReturns = renderReturns(language, unknown.returns); + ok(!unknownReturns.includes(DIETZ[language])); + + // 5. Two currencies: each entry keeps its own method metadata; nothing is merged. + const two = fixture("two-currency-core"); + const twoCards = renderCards(language, two.summary); + ok(twoCards.includes(language === "zh" ? "按原币种分别展示,不换汇" : "Shown separately in native currencies"), + "mixed-currency note shown"); + ok(twoCards.indexOf("HKD") < twoCards.indexOf("USD"), "both currency rows rendered separately"); + ok(twoCards.indexOf(DIETZ[language]) > twoCards.indexOf("USD") + && (twoCards.match(/Modified Dietz/g) || []).length === 1, + "only the USD row carries the approximate tag"); + const twoReturns = renderReturns(language, two.returns, "all"); + const blocks = twoReturns.split('class="perf-currency-block"').slice(1); + assert.equal(blocks.length, 2, "one independent block per currency, never a combined curve"); + checks += 1; + const [usdBlock, hkdBlock] = blocks[0].includes("USD") ? [blocks[0], blocks[1]] : [blocks[1], blocks[0]]; + assert.equal(kindLabel(usdBlock), DIETZ[language], "USD curve labeled Modified Dietz approximate"); + checks += 1; + assert.equal(kindLabel(hkdBlock), UNADJUSTED[language], "HKD curve keeps its own unadjusted label"); + checks += 1; + ok(!hkdBlock.includes(DIETZ[language]), "HKD entry not overwritten by the USD method"); + + // 6. Stale data keeps its freshness signal; a missing method flag is not treated as qualified Dietz. + const stale = fixture("stale-core"); + const staleCards = renderCards(language, stale.summary); + ok(staleCards.includes("+10.00%")); + ok(staleCards.includes(STALE[language]), "stale badge still visible on the card"); + ok(!staleCards.includes(DIETZ[language]), "no method metadata means no approximate label"); + const staleReturns = renderReturns(language, stale.returns); + assert.equal(kindLabel(staleReturns), TWR_KIND[language]); + checks += 1; + ok(staleReturns.includes(STALE[language]), "stale badge still visible on the curve card"); + + // 7. In-memory contract variants (synthetic, derived from the fixed samples; golden fixtures untouched). + // 7a. Legacy response with the method fields entirely absent keeps the old TWR behavior. + const absent = structuredClone(twr); + delete absent.summary.cashflow_method; delete absent.summary.approximate; + delete absent.returns.cashflow_method; delete absent.returns.approximate; + const absentCards = renderCards(language, absent.summary); + ok(absentCards.includes(language === "zh" ? "累计收益(TWR)" : "Cumulative return (TWR)"), "absent metadata keeps the TWR title"); + ok(!absentCards.includes(DIETZ[language]) && !absentCards.includes(UNKNOWN[language])); + assert.equal(kindLabel(renderReturns(language, absent.returns)), TWR_KIND[language]); + checks += 1; + + // 7b. Explicit null method fields (keys actually present, values null): undecidable, never labeled TWR. + const explicitNull = structuredClone(twr); + explicitNull.summary.cashflow_method = null; explicitNull.summary.approximate = null; + explicitNull.returns.cashflow_method = null; explicitNull.returns.approximate = null; + assert.ok("cashflow_method" in explicitNull.summary && "approximate" in explicitNull.summary + && "cashflow_method" in explicitNull.returns && "approximate" in explicitNull.returns, + "variant really carries explicit null keys on both blocks"); + checks += 1; + const enCards = renderCards(language, explicitNull.summary); + ok(enCards.includes("+10.00%"), "backend value still rendered as-is"); + ok(!enCards.includes("TWR"), "explicit null leaves no unqualified TWR title"); + ok(enCards.includes(UNKNOWN[language]), "explicit null shows the unknown-method label"); + ok(!enCards.includes(DIETZ[language]), "explicit null is not mislabeled as Dietz"); + assert.equal(kindLabel(renderReturns(language, explicitNull.returns)), UNKNOWN[language], + "curve labeled unknown for explicit null metadata"); + checks += 1; + + // 7c. Explicit unsupported method string: shown as unknown, never as unqualified TWR, value unchanged. + const unknownMethod = structuredClone(twr); + unknownMethod.summary.cashflow_method = "future_method"; unknownMethod.summary.approximate = true; + unknownMethod.returns.cashflow_method = "future_method"; unknownMethod.returns.approximate = true; + const umCards = renderCards(language, unknownMethod.summary); + ok(umCards.includes("+10.00%"), "backend value still rendered as-is"); + ok(!umCards.includes("TWR"), "unknown method leaves no unqualified TWR title anywhere on the cards"); + ok(umCards.includes(UNKNOWN[language]), "unknown method label shown on the card"); + ok(!umCards.includes(DIETZ[language]), "unknown method is not mislabeled as Dietz"); + const umReturns = renderReturns(language, unknownMethod.returns); + assert.equal(kindLabel(umReturns), UNKNOWN[language], "curve labeled unknown, not TWR"); + checks += 1; + ok(umReturns.includes(language === "zh" ? "计算口径未能识别" : "could not be identified"), + "method note explains the unknown method instead of the exact-TWR text"); + + // 7d. Inconsistent metadata (modified_dietz without approximate:true) is also unknown. + const inconsistent = structuredClone(twr); + inconsistent.summary.cashflow_method = "modified_dietz"; inconsistent.summary.approximate = false; + inconsistent.returns.cashflow_method = "modified_dietz"; inconsistent.returns.approximate = false; + const icCards = renderCards(language, inconsistent.summary); + ok(icCards.includes(UNKNOWN[language]) && !icCards.includes(DIETZ[language]) && !icCards.includes("TWR")); + assert.equal(kindLabel(renderReturns(language, inconsistent.returns)), UNKNOWN[language]); + checks += 1; + + // 7e. Per-currency unknown method stays on its own entry. + const twoUnknown = structuredClone(two); + const hkdEntry = twoUnknown.returns.per_currency.find(e => e.currency === "HKD"); + hkdEntry.cashflow_method = "future_method"; hkdEntry.approximate = true; hkdEntry.return_kind = "twr"; + const tuReturns = renderReturns(language, twoUnknown.returns, "all"); + const tuBlocks = tuReturns.split('class="perf-currency-block"').slice(1); + const [tuUsd, tuHkd] = tuBlocks[0].includes("USD") ? [tuBlocks[0], tuBlocks[1]] : [tuBlocks[1], tuBlocks[0]]; + assert.equal(kindLabel(tuUsd), DIETZ[language], "USD keeps its own Dietz label"); + checks += 1; + assert.equal(kindLabel(tuHkd), UNKNOWN[language], "HKD unknown method not overwritten by USD or top level"); + checks += 1; + } + + console.log(`console_cashflow_method_presentation_validation: PASS (${checks} assertions, zh/en × dietz/twr/legacy/unknown/two-currency/stale + in-memory absent/unknown/inconsistent method variants; synthetic fixtures only)`); +} finally { + delete globalThis.__dietzState; + await rm(directory, { recursive: true, force: true }); +} diff --git a/tests/fixtures/cashflow_method/PROVENANCE.md b/tests/fixtures/cashflow_method/PROVENANCE.md new file mode 100644 index 00000000..66d2078f --- /dev/null +++ b/tests/fixtures/cashflow_method/PROVENANCE.md @@ -0,0 +1,8 @@ +# cashflow_method fixtures 来源 + +本目录 JSON 由主代理从 QuantStrategyLab/QuantRuntimeSettings PR #712(头 dfb000246fb0a311621cec257ec07442a4c331a9,OPEN/DRAFT,未合并)捕获,全部为 PAPER synthetic 数据,无真实账户、无外呼。上游来源记录见任务目录 `dietz_display/fixtures/PROVENANCE.json`。 + +- `dietz-api.json`、`old-api.json`:#712 authenticated synthetic HTTP → SQLite → API 捕获的真实产品 API 响应。 +- `twr-core.json`、`unknown-core.json`、`two-currency-core.json`、`stale-core.json`:#712 未改动的产品核心函数 `performanceBlocks`/`applyCashflowPerformance` 直接生成(非 HTTP)。 + +测试只读取这些响应做前端展示渲染;前端不重新计算任何金额或收益。 diff --git a/tests/fixtures/cashflow_method/dietz-api.json b/tests/fixtures/cashflow_method/dietz-api.json new file mode 100644 index 00000000..69b6ac57 --- /dev/null +++ b/tests/fixtures/cashflow_method/dietz-api.json @@ -0,0 +1,233 @@ +{ + "summary": { + "schema_version": "console_api.v1", + "scope": "synthetic", + "range": "ALL", + "status": "ok", + "unavailable_reason": null, + "as_of": "2026-10-17", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown", + "truncated": false, + "read_failures": [] + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-17T10:08:47.969Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": 10.000000000000009, + "amount": 115, + "simple_weighted_return_percent": null, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-16", + "trough_date": "2026-10-16", + "unavailable_reason": null + }, + "metric_reasons": { + "twr": null + }, + "per_currency": [ + { + "total": 215, + "account_count": 1, + "expected_account_count": 1, + "as_of": "2026-10-17T10:08:47.969Z", + "stale": false, + "status": "ok", + "unavailable_reason": null, + "currency": "USD", + "excluded_account_count": 0, + "observation_date": "2026-10-17", + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-16", + "trough_date": "2026-10-16", + "unavailable_reason": null + }, + "twr_return_percent": 10.000000000000009, + "cashflow_method": "modified_dietz", + "approximate": true + } + ], + "best_day": null, + "worst_day": null, + "excess_returns": [], + "cashflow_per_currency": [ + { + "currency": "USD", + "status": "ok", + "unavailable_reason": null, + "twr_return_percent": 10.000000000000009, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-16", + "trough_date": "2026-10-16", + "unavailable_reason": null + }, + "points": [ + { + "date": "2026-10-16", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-17", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "return_kind": "twr", + "cashflow_method": "modified_dietz", + "approximate": true, + "multi_day_intervals": false + } + ], + "cashflow_method": "modified_dietz", + "approximate": true + }, + "returns": { + "schema_version": "console_api.v1", + "scope": "synthetic", + "range": "ALL", + "status": "ok", + "unavailable_reason": null, + "as_of": "2026-10-17", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown", + "truncated": false, + "read_failures": [] + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-17T10:08:47.969Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": "2026-10-16", + "return_kind": "twr", + "points": [ + { + "date": "2026-10-16", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-17", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [], + "per_currency": [], + "no_common_date": false, + "benchmark_availability": [ + { + "id": "标普500", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "纳斯达克100", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "道琼斯工业平均指数", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "罗素2000", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + } + ], + "cashflow_per_currency": [ + { + "currency": "USD", + "status": "ok", + "unavailable_reason": null, + "twr_return_percent": 10.000000000000009, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-16", + "trough_date": "2026-10-16", + "unavailable_reason": null + }, + "points": [ + { + "date": "2026-10-16", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-17", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "return_kind": "twr", + "cashflow_method": "modified_dietz", + "approximate": true, + "multi_day_intervals": false + } + ], + "cashflow_method": "modified_dietz", + "approximate": true + } +} \ No newline at end of file diff --git a/tests/fixtures/cashflow_method/old-api.json b/tests/fixtures/cashflow_method/old-api.json new file mode 100644 index 00000000..9dbb0029 --- /dev/null +++ b/tests/fixtures/cashflow_method/old-api.json @@ -0,0 +1,166 @@ +{ + "summary": { + "schema_version": "console_api.v1", + "scope": "synthetic", + "range": "ALL", + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "as_of": "2026-10-17", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown", + "truncated": false, + "read_failures": [] + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-17T10:08:47.969Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": null, + "amount": 115, + "simple_weighted_return_percent": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "no_cashflow_data" + }, + "metric_reasons": { + "twr": "no_cashflow_data" + }, + "per_currency": [ + { + "total": 215, + "account_count": 1, + "expected_account_count": 1, + "as_of": "2026-10-17T10:08:47.969Z", + "stale": false, + "status": "ok", + "unavailable_reason": null, + "currency": "USD", + "excluded_account_count": 0, + "observation_date": "2026-10-17", + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "no_cashflow_data" + } + } + ], + "best_day": null, + "worst_day": null, + "excess_returns": [] + }, + "returns": { + "schema_version": "console_api.v1", + "scope": "synthetic", + "range": "ALL", + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "as_of": "2026-10-17", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown", + "truncated": false, + "read_failures": [] + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-17T10:08:47.969Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": "2026-10-16", + "return_kind": "unadjusted_asset_ratio", + "points": [ + { + "date": "2026-10-16", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-17", + "value": 114.99999999999999, + "breakBefore": false + } + ], + "benchmarks": [], + "per_currency": [], + "no_common_date": false, + "benchmark_availability": [ + { + "id": "标普500", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "纳斯达克100", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "道琼斯工业平均指数", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + }, + { + "id": "罗素2000", + "status": "unavailable", + "unavailable_reason": "benchmark_history_missing", + "as_of": null + } + ] + } +} \ No newline at end of file diff --git a/tests/fixtures/cashflow_method/stale-core.json b/tests/fixtures/cashflow_method/stale-core.json new file mode 100644 index 00000000..0273863f --- /dev/null +++ b/tests/fixtures/cashflow_method/stale-core.json @@ -0,0 +1,145 @@ +{ + "summary": { + "status": "stale", + "unavailable_reason": null, + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "pnl", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "stale", + "fresh": false, + "stale": true, + "unavailable_reason": "snapshot_stale" + } + ], + "freshness_summary": { + "fresh": 0, + "stale": 1, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": 10.000000000000009, + "amount": 10, + "simple_weighted_return_percent": 10, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "metric_reasons": { + "twr": null + }, + "per_currency": [ + { + "total": null, + "account_count": 0, + "expected_account_count": 1, + "as_of": null, + "stale": null, + "status": "no_data", + "unavailable_reason": "no_snapshot", + "currency": "USD", + "excluded_account_count": 0, + "observation_date": null, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + } + } + ], + "best_day": { + "date": "2026-10-16", + "amount": 10, + "return_percent": 10, + "value_kind": "pnl", + "status": "ok", + "unavailable_reason": null + }, + "worst_day": { + "date": "2026-10-16", + "amount": 10, + "return_percent": 10, + "value_kind": "pnl", + "status": "ok", + "unavailable_reason": null + }, + "excess_returns": [] + }, + "returns": { + "status": "stale", + "unavailable_reason": null, + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "pnl", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "stale", + "fresh": false, + "stale": true, + "unavailable_reason": "snapshot_stale" + } + ], + "freshness_summary": { + "fresh": 0, + "stale": 1, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": "2026-10-15", + "return_kind": "twr", + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [], + "per_currency": [], + "no_common_date": false, + "benchmark_availability": [] + } +} diff --git a/tests/fixtures/cashflow_method/two-currency-core.json b/tests/fixtures/cashflow_method/two-currency-core.json new file mode 100644 index 00000000..84811b6d --- /dev/null +++ b/tests/fixtures/cashflow_method/two-currency-core.json @@ -0,0 +1,294 @@ +{ + "summary": { + "status": "unavailable", + "unavailable_reason": "mixed_currency", + "as_of": null, + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD", + "HKD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "not_applied", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": null, + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": null, + "amount": null, + "simple_weighted_return_percent": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "mixed_currency" + }, + "metric_reasons": { + "twr": "mixed_currency" + }, + "per_currency": [ + { + "total": null, + "account_count": 0, + "expected_account_count": 1, + "as_of": null, + "stale": null, + "status": "no_data", + "unavailable_reason": "no_snapshot", + "currency": "HKD", + "excluded_account_count": 0, + "observation_date": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "no_cashflow_data" + } + }, + { + "total": null, + "account_count": 0, + "expected_account_count": 1, + "as_of": null, + "stale": null, + "status": "no_data", + "unavailable_reason": "no_snapshot", + "currency": "USD", + "excluded_account_count": 0, + "observation_date": null, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "twr_return_percent": 10.000000000000009, + "cashflow_method": "modified_dietz", + "approximate": true + } + ], + "best_day": null, + "worst_day": null, + "excess_returns": [], + "cashflow_per_currency": [ + { + "currency": "USD", + "status": "ok", + "unavailable_reason": null, + "twr_return_percent": 10.000000000000009, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "return_kind": "twr", + "cashflow_method": "modified_dietz", + "approximate": true, + "multi_day_intervals": false + }, + { + "currency": "HKD", + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "twr_return_percent": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "external_cashflow_required" + }, + "points": [], + "return_kind": "unadjusted_asset_ratio", + "cashflow_method": "modified_dietz", + "approximate": true + } + ] + }, + "returns": { + "status": "unavailable", + "unavailable_reason": "mixed_currency", + "as_of": null, + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD", + "HKD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "not_applied", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": null, + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": null, + "return_kind": "unadjusted_asset_ratio", + "points": [], + "benchmarks": [], + "per_currency": [ + { + "currency": "USD", + "as_of": "2026-10-16", + "coverage": { + "omitted_dates": 0 + }, + "return_kind": "twr", + "status": "ok", + "unavailable_reason": null, + "aligned_start": "2026-10-15", + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [], + "twr_return_percent": 10.000000000000009, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "cashflow_method": "modified_dietz", + "approximate": true, + "multi_day_intervals": false + }, + { + "currency": "HKD", + "as_of": "2026-10-16", + "coverage": { + "omitted_dates": 0 + }, + "return_kind": "unadjusted_asset_ratio", + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "aligned_start": "2026-10-15", + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [] + } + ], + "no_common_date": false, + "benchmark_availability": [], + "cashflow_per_currency": [ + { + "currency": "USD", + "status": "ok", + "unavailable_reason": null, + "twr_return_percent": 10.000000000000009, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "return_kind": "twr", + "cashflow_method": "modified_dietz", + "approximate": true, + "multi_day_intervals": false + }, + { + "currency": "HKD", + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "twr_return_percent": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "external_cashflow_required" + }, + "points": [], + "return_kind": "unadjusted_asset_ratio", + "cashflow_method": "modified_dietz", + "approximate": true + } + ] + } +} diff --git a/tests/fixtures/cashflow_method/twr-core.json b/tests/fixtures/cashflow_method/twr-core.json new file mode 100644 index 00000000..6d78f35d --- /dev/null +++ b/tests/fixtures/cashflow_method/twr-core.json @@ -0,0 +1,145 @@ +{ + "summary": { + "status": "ok", + "unavailable_reason": null, + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "pnl", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": 10.000000000000009, + "amount": 10, + "simple_weighted_return_percent": 10, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + }, + "metric_reasons": { + "twr": null + }, + "per_currency": [ + { + "total": null, + "account_count": 0, + "expected_account_count": 1, + "as_of": null, + "stale": null, + "status": "no_data", + "unavailable_reason": "no_snapshot", + "currency": "USD", + "excluded_account_count": 0, + "observation_date": null, + "max_drawdown": { + "percent": 0, + "peak_date": "2026-10-15", + "trough_date": "2026-10-15", + "unavailable_reason": null + } + } + ], + "best_day": { + "date": "2026-10-16", + "amount": 10, + "return_percent": 10, + "value_kind": "pnl", + "status": "ok", + "unavailable_reason": null + }, + "worst_day": { + "date": "2026-10-16", + "amount": 10, + "return_percent": 10, + "value_kind": "pnl", + "status": "ok", + "unavailable_reason": null + }, + "excess_returns": [] + }, + "returns": { + "status": "ok", + "unavailable_reason": null, + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "complete", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "pnl", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": "2026-10-15", + "return_kind": "twr", + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [], + "per_currency": [], + "no_common_date": false, + "benchmark_availability": [] + } +} diff --git a/tests/fixtures/cashflow_method/unknown-core.json b/tests/fixtures/cashflow_method/unknown-core.json new file mode 100644 index 00000000..0517aab0 --- /dev/null +++ b/tests/fixtures/cashflow_method/unknown-core.json @@ -0,0 +1,131 @@ +{ + "summary": { + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "twr_return_percent": null, + "amount": 10, + "simple_weighted_return_percent": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "no_cashflow_data" + }, + "metric_reasons": { + "twr": "no_cashflow_data" + }, + "per_currency": [ + { + "total": null, + "account_count": 0, + "expected_account_count": 1, + "as_of": null, + "stale": null, + "status": "no_data", + "unavailable_reason": "no_snapshot", + "currency": "USD", + "excluded_account_count": 0, + "observation_date": null, + "max_drawdown": { + "percent": null, + "peak_date": null, + "trough_date": null, + "unavailable_reason": "no_cashflow_data" + } + } + ], + "best_day": null, + "worst_day": null, + "excess_returns": [] + }, + "returns": { + "status": "partial", + "unavailable_reason": "external_cashflow_required", + "as_of": "2026-10-16", + "coverage": { + "account_aliases": [ + "synthetic" + ], + "currencies": [ + "USD" + ], + "excluded_accounts": [], + "omitted_dates": 0, + "cashflows": "unknown", + "fx": "native_currency", + "trading_dates": "stored_observation_date_weekends_excluded_holidays_unknown" + }, + "currency": "USD", + "value_kind": "asset_change", + "account_freshness": [ + { + "platform": "longbridge", + "account_alias": "synthetic", + "account_ref": "longbridge:synthetic", + "as_of": "2026-10-16T10:00:00Z", + "freshness": "fresh", + "fresh": true, + "stale": false, + "unavailable_reason": null + } + ], + "freshness_summary": { + "fresh": 1, + "stale": 0, + "unknown": 0, + "threshold_hours": 36 + }, + "aligned_start": "2026-10-15", + "return_kind": "unadjusted_asset_ratio", + "points": [ + { + "date": "2026-10-15", + "value": 0, + "breakBefore": false + }, + { + "date": "2026-10-16", + "value": 10.000000000000009, + "breakBefore": false + } + ], + "benchmarks": [], + "per_currency": [], + "no_common_date": false, + "benchmark_availability": [] + } +} diff --git a/web/strategy-switch-console/frontend/src/api/contracts.ts b/web/strategy-switch-console/frontend/src/api/contracts.ts index db496ab7..1e0e0ba2 100644 --- a/web/strategy-switch-console/frontend/src/api/contracts.ts +++ b/web/strategy-switch-console/frontend/src/api/contracts.ts @@ -318,9 +318,14 @@ export interface DailyChange { status: Status; unavailable_reason: Reason | null; } -export interface SummaryResponse extends PerformanceMeta { +/** Optional cash-flow method metadata from the API; absent on older responses. */ +export interface CashflowMethodMeta { + cashflow_method?: "modified_dietz" | string | null; + approximate?: boolean | null; +} +export interface SummaryResponse extends PerformanceMeta, CashflowMethodMeta { metric_reasons?: { twr: Reason | null }; - per_currency?: (CurrencyTotal & { max_drawdown: Drawdown })[]; + per_currency?: (CurrencyTotal & { max_drawdown: Drawdown } & CashflowMethodMeta)[]; twr_return_percent: number | null; amount: number | null; simple_weighted_return_percent: number | null; @@ -340,13 +345,13 @@ export interface SummaryResponse extends PerformanceMeta { unavailable_reason: Reason | null; }[]; } -export interface ReturnsResponse extends PerformanceMeta { +export interface ReturnsResponse extends PerformanceMeta, CashflowMethodMeta { aligned_start: string | null; return_kind: "twr" | "unadjusted_asset_ratio"; points: Point[]; benchmarks: { id: string; points: Point[] }[]; no_common_date: boolean; - per_currency: { + per_currency: ({ currency: string; as_of?: string | null; coverage?: HistoryCoverage; @@ -356,7 +361,7 @@ export interface ReturnsResponse extends PerformanceMeta { aligned_start: string | null; points: Point[]; benchmarks: { id: string; points: Point[] }[]; - }[]; + } & CashflowMethodMeta)[]; benchmark_availability: { id: string; status: Status; diff --git a/web/strategy-switch-console/frontend/src/i18n/pages/performance.ts b/web/strategy-switch-console/frontend/src/i18n/pages/performance.ts index efd9daf5..32d840a6 100644 --- a/web/strategy-switch-console/frontend/src/i18n/pages/performance.ts +++ b/web/strategy-switch-console/frontend/src/i18n/pages/performance.ts @@ -25,6 +25,12 @@ export const zh: Record = { "perf.benchmark_unknown": "基准", "performance.current_holdings_unrealized": "当前持仓 · 未实现盈亏", "perf.return_kind_twr": "时间加权收益率(TWR)", + "perf.method_dietz_approx": "Modified Dietz(近似)", + "perf.method_unknown": "收益口径未知", + "perf.card.return_value": "累计收益", + "perf.drawdown_plain_title": "最大回撤", + "perf.method_body_unknown": "收益数值的计算口径未能识别:接口返回了未知或不一致的方法元数据。数值按后端返回原样展示,不能视为精确的时间加权收益(TWR);未知不会被当作 0 或合格收益。", + "perf.method_body_dietz": "收益率按时间加权(TWR)计算:每日收益先做资金加权,再逐日复利;区间起点归零。净投入(出入金)不计入盈亏。有出入金记录但无法逐日精确加权时,相应数值以 Modified Dietz 近似法计算,并标注「近似」。缺少完整出入金记录时,只展示未经资金流调整的资产变动比例,TWR 与回撤留空。基准序列独立对齐到共同起点,不代表与本账户的可比组合收益。", "perf.return_kind_unadjusted": "未经出入金调整的资产变动比例(非 TWR)", "perf.per_currency_note": "多币种无法合并为同一条曲线;以下按币种分别计算,不代表组合整体收益。", "perf.holdings_coverage_accounts": "覆盖账户:{value}", @@ -58,6 +64,12 @@ export const en: Record = { "perf.benchmark_unknown": "Benchmark", "performance.current_holdings_unrealized": "Current holdings · unrealized P/L", "perf.return_kind_twr": "Time-weighted return (TWR)", + "perf.method_dietz_approx": "Modified Dietz (approximate)", + "perf.method_unknown": "Return method unknown", + "perf.card.return_value": "Cumulative return", + "perf.drawdown_plain_title": "Maximum drawdown", + "perf.method_body_unknown": "The calculation method for these returns could not be identified: the API returned unknown or inconsistent method metadata. Values are shown exactly as returned and must not be read as an exact time-weighted return (TWR); unknown is never treated as zero or as a qualified return.", + "perf.method_body_dietz": "Returns are time-weighted (TWR): daily returns are capital-weighted, then compounded; every range starts at zero. Net deposits and withdrawals do not count as P/L. When cash-flow records exist but exact daily weighting is not possible, the affected figures use the Modified Dietz approximation and are labeled as approximate. Without complete cash-flow records only the unadjusted asset-change ratio is shown, and TWR and drawdown stay empty. Benchmarks are aligned independently to the common start and are not a comparable combined portfolio return.", "perf.return_kind_unadjusted": "Asset-change ratio unadjusted for cash flows (not TWR)", "perf.per_currency_note": "Mixed currencies cannot be merged into one curve; each currency below is computed separately and is not a combined portfolio return.", "perf.holdings_coverage_accounts": "Covered accounts: {value}", diff --git a/web/strategy-switch-console/frontend/src/pages/performance/ReturnsCard.tsx b/web/strategy-switch-console/frontend/src/pages/performance/ReturnsCard.tsx index f9c82159..e85483b5 100644 --- a/web/strategy-switch-console/frontend/src/pages/performance/ReturnsCard.tsx +++ b/web/strategy-switch-console/frontend/src/pages/performance/ReturnsCard.tsx @@ -7,6 +7,8 @@ import type { Point, Range, ReturnsResponse } from "../../api/contracts"; import { AsOfStamp, EmptyState, ErrorState, MethodNote, Skeleton, StatusBadge } from "../../components/primitives"; import { LineChart, type ChartSeries } from "../../charts/LineChart"; import { renderableStatus } from "./shared"; +import { DIETZ_APPROX_LABEL_KEY, UNKNOWN_METHOD_LABEL_KEY, classifyCashflowMethod, isApproximateDietz } from "./cashflowMethod"; +import type { CashflowMethodMeta } from "../../api/contracts"; export interface ReturnsCardProps { scope: string; @@ -25,14 +27,21 @@ const BENCHMARK_LABEL_KEYS: Record = { "罗素2000": "perf.benchmark_russell2000", }; -function kindLabel(returnKind: string): string { - return returnKind === "unadjusted_asset_ratio" ? "perf.return_kind_unadjusted" : "perf.return_kind_twr"; +function kindLabel(returnKind: string, method?: CashflowMethodMeta | null): string { + if (returnKind === "unadjusted_asset_ratio") return "perf.return_kind_unadjusted"; + const methodClass = classifyCashflowMethod(method); + // An explicit Modified Dietz approximation must never be labeled as an unqualified exact TWR. + if (methodClass === "dietz_approx") return DIETZ_APPROX_LABEL_KEY; + // Present but unsupported/inconsistent method metadata is not a qualified TWR either. + if (methodClass === "unknown") return UNKNOWN_METHOD_LABEL_KEY; + return "perf.return_kind_twr"; } function ReturnsChart({ points, benchmarks, returnKind, + method, mode, ariaLabel, disabled, @@ -40,6 +49,7 @@ function ReturnsChart({ points: Point[]; benchmarks: { id: string; points: Point[] }[]; returnKind: string; + method?: CashflowMethodMeta | null; mode: Mode; ariaLabel: string; disabled?: { id: string; status: string; unavailable_reason: string | null }[]; @@ -57,7 +67,7 @@ function ReturnsChart({ return (

- {t(kindLabel(returnKind))} + {t(kindLabel(returnKind, method))}

{disabled && disabled.length > 0 && ( @@ -105,6 +115,7 @@ export function ReturnsCard({ scope, platform, range, epoch }: ReturnsCardProps) points={entry.points} benchmarks={entry.benchmarks} returnKind={entry.return_kind} + method={entry} mode={mode} ariaLabel={`${t("perf.returns_title")} ${entry.currency}`} /> @@ -135,6 +146,7 @@ export function ReturnsCard({ scope, platform, range, epoch }: ReturnsCardProps) points={data.points} benchmarks={data.benchmarks} returnKind={data.return_kind} + method={data} mode={mode} ariaLabel={t("perf.returns_title")} disabled={data.benchmark_availability.filter(item => !renderableStatus(item.status))} @@ -175,7 +187,14 @@ export function ReturnsCard({ scope, platform, range, epoch }: ReturnsCardProps)
{body} - + classifyCashflowMethod(item) === "unknown") + ? "perf.method_body_unknown" + : meta && (isApproximateDietz(meta) || meta.per_currency.some(isApproximateDietz)) + ? "perf.method_body_dietz" + : "perf.method_body"} + /> ); } diff --git a/web/strategy-switch-console/frontend/src/pages/performance/SummaryCards.tsx b/web/strategy-switch-console/frontend/src/pages/performance/SummaryCards.tsx index 924e1464..7e85f793 100644 --- a/web/strategy-switch-console/frontend/src/pages/performance/SummaryCards.tsx +++ b/web/strategy-switch-console/frontend/src/pages/performance/SummaryCards.tsx @@ -7,6 +7,7 @@ import type { Range, SummaryResponse } from "../../api/contracts"; import { AsOfStamp, Money, Percent, Skeleton, StatusBadge } from "../../components/primitives"; import { KpiCard } from "../../components/KpiCard"; import { renderableStatus } from "./shared"; +import { DIETZ_APPROX_LABEL_KEY, UNKNOWN_METHOD_LABEL_KEY, classifyCashflowMethod } from "./cashflowMethod"; export interface SummaryCardsProps { scope: string; @@ -40,7 +41,9 @@ function cardFooter(data: SummaryResponse, metricReason?: string | null) { function TwrCard({ data }: { data: SummaryResponse }) { const t = useT(); - const title = t("perf.card.twr"); + const methodClass = classifyCashflowMethod(data); + // An unrecognized method must not keep an unqualified TWR title. + const title = t(methodClass === "unknown" ? "perf.card.return_value" : "perf.card.twr"); if (!renderableStatus(data.status)) { return } footer={cardFooter(data, data.metric_reasons?.twr)} />; } @@ -49,7 +52,9 @@ function TwrCard({ data }: { data: SummaryResponse }) { const reason = data.metric_reasons?.twr || data.unavailable_reason; return —
} sub={t(`reason.${reason || "unknown"}`)} footer={cardFooter(data)} />; } - return } footer={cardFooter(data)} />; + const sub = methodClass === "dietz_approx" ? t(DIETZ_APPROX_LABEL_KEY) + : methodClass === "unknown" ? t(UNKNOWN_METHOD_LABEL_KEY) : undefined; + return } sub={sub} footer={cardFooter(data)} />; } function AmountCard({ data }: { data: SummaryResponse }) { @@ -66,17 +71,28 @@ function AmountCard({ data }: { data: SummaryResponse }) { return } footer={footer} />; } +/** Method tag for return-derived figures; null when the figure is a qualified exact TWR or a legacy response. */ +function methodTag(data: Parameters[0], t: ReturnType): string | null { + const cls = classifyCashflowMethod(data); + if (cls === "dietz_approx") return t(DIETZ_APPROX_LABEL_KEY); + if (cls === "unknown") return t(UNKNOWN_METHOD_LABEL_KEY); + return null; +} + function DrawdownCard({ data }: { data: SummaryResponse }) { const t = useT(); const language = useLanguage(); - const title = t("perf.drawdown_twr_title"); + // Drawdown derives from the same return series; an unrecognized method must not keep a TWR title. + const title = t(classifyCashflowMethod(data) === "unknown" ? "perf.drawdown_plain_title" : "perf.drawdown_twr_title"); const footer = cardFooter(data); if (data.per_currency?.length && data.unavailable_reason !== "stored_records_unreadable") { return {data.per_currency.map(item => { const dd = item.max_drawdown; + const tag = methodTag(item, t); return {item.currency} + {tag && {tag}} {dd.percent === null ? — : } {dd.unavailable_reason ? t(`reason.${dd.unavailable_reason}`) : dd.peak_date && dd.trough_date ? t("perf.card.max_drawdown_dates", { peak: formatDate(dd.peak_date, language), trough: formatDate(dd.trough_date, language) }) : null} @@ -95,7 +111,9 @@ function DrawdownCard({ data }: { data: SummaryResponse }) { dd.peak_date && dd.trough_date ? t("perf.card.max_drawdown_dates", { peak: formatDate(dd.peak_date, language), trough: formatDate(dd.trough_date, language) }) : undefined; - return } sub={sub} footer={footer} />; + const methodLabel = methodTag(data, t); + const combinedSub = [methodLabel, sub].filter(Boolean).join(" · ") || undefined; + return } sub={combinedSub} footer={footer} />; } function ExcessCard({ data }: { data: SummaryResponse }) { diff --git a/web/strategy-switch-console/frontend/src/pages/performance/cashflowMethod.ts b/web/strategy-switch-console/frontend/src/pages/performance/cashflowMethod.ts new file mode 100644 index 00000000..a603389b --- /dev/null +++ b/web/strategy-switch-console/frontend/src/pages/performance/cashflowMethod.ts @@ -0,0 +1,30 @@ +import type { CashflowMethodMeta } from "../../api/contracts"; + +/** + * Single source for return-method labels, so the summary cards and the returns + * curve cannot drift apart. + * + * - "absent": legacy response without any method fields — old behavior applies. + * - "dietz_approx": explicit Modified Dietz + approximate:true. + * - "unknown": the fields exist but are null, unsupported, or inconsistent. + * There is no contract evidence that explicit null/false proves an exact TWR, + * so such metadata is never shown as an unqualified TWR. + */ +export type CashflowMethodClass = "absent" | "dietz_approx" | "unknown"; + +export const DIETZ_APPROX_LABEL_KEY = "perf.method_dietz_approx"; +export const UNKNOWN_METHOD_LABEL_KEY = "perf.method_unknown"; + +export function classifyCashflowMethod(meta: CashflowMethodMeta | null | undefined): CashflowMethodClass { + if (!meta) return "absent"; + const method = meta.cashflow_method; + const approximate = meta.approximate; + if (method === undefined && approximate === undefined) return "absent"; + if (method === "modified_dietz" && approximate === true) return "dietz_approx"; + return "unknown"; +} + +/** True only when the API explicitly marks the figure as a Modified Dietz approximation. */ +export function isApproximateDietz(meta: CashflowMethodMeta | null | undefined): boolean { + return classifyCashflowMethod(meta) === "dietz_approx"; +} diff --git a/web/strategy-switch-console/v2_asset_map.js b/web/strategy-switch-console/v2_asset_map.js index 7f63df8b..4a9a4872 100644 --- a/web/strategy-switch-console/v2_asset_map.js +++ b/web/strategy-switch-console/v2_asset_map.js @@ -1,30 +1,30 @@ // Generated by frontend/scripts/sync-v2-asset-map.mjs; do not edit. -export const V2_BUILD_ID = "923019381c3c4e875b9f8da033a5e9c72112adcc25c24afc22c6053b0dec7e50"; -export const V2_PAGE_HTML = "\n\n \n \n \n \n \n \n 总览 · QuantStrategyLab\n \n \n \n \n \n
\n \n\n"; +export const V2_BUILD_ID = "2644128c6dc3a0044cdcffc1ac51761e3d989180407860137fc0570fdbf31aff"; +export const V2_PAGE_HTML = "\n\n \n \n \n \n \n \n 总览 · QuantStrategyLab\n \n \n \n \n \n
\n \n\n"; export const V2_ASSETS = Object.freeze({ - "/v2/assets/AccountGroups-CCl4WT75.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3cgYXMgcCx1IGFzIHgsaiBhcyBhLF8gYXMgaCwkIGFzIGosRCBhcyBfLGEwIGFzIGl9ZnJvbSIuL2luZGV4LUo1ZnF6NWh2LmpzIjtmdW5jdGlvbiBiKHthY2NvdW50czpkLGNvbmZpZzp0LG9uU2VsZWN0Om19KXtjb25zdCBuPXAodCksZT14KCk7cmV0dXJuIGEuanN4KCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOmgoZCx0KS5tYXAoYz0+YS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJhY2NvdW50LXBsYXRmb3JtLWdyb3VwIixjaGlsZHJlbjpbYS5qc3goImgyIix7Y2xhc3NOYW1lOiJhY2NvdW50LXBsYXRmb3JtLXRpdGxlIixjaGlsZHJlbjpuLnBsYXRmb3JtKGMucGxhdGZvcm0pfSksYS5qc3goImRpdiIse2NsYXNzTmFtZToiYWNjb3VudC1ncmlkIixjaGlsZHJlbjpjLmFjY291bnRzLm1hcChyPT5hLmpzeHMoImFydGljbGUiLHtjbGFzc05hbWU6ImNhcmQgYWNjb3VudC1ncm91cC1jYXJkIixjaGlsZHJlbjpbYS5qc3goImgzIix7Y2xhc3NOYW1lOiJhY2NvdW50LWJyb2tlci10aXRsZSIsY2hpbGRyZW46bi5hY2NvdW50KHIucm93c1swXS5hY2NvdW50X2FsaWFzLGMucGxhdGZvcm0pfSksci5yb3dzLm1hcChzPT57Y29uc3QgbD1uLmN1cnJlbnRTdHJhdGVneShzKSxvPWoodCxzLnBsYXRmb3JtLHMuYWNjb3VudF9hbGlhcyk/LmJyb2tlcl9lbnZpcm9ubWVudHx8dD8uY3VycmVudFN0cmF0ZWdpZXM/LltzLnBsYXRmb3JtXT8uW3MuYWNjb3VudF9hbGlhc10/LmV4ZWN1dGlvbl9tb2RlLHU9dD8uY3VycmVudFN0cmF0ZWdpZXM/LltzLnBsYXRmb3JtXT8uW3MuYWNjb3VudF9hbGlhc10/LnJ1bnRpbWVfdGFyZ2V0X2VuYWJsZWQ7cmV0dXJuIGEuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImFjY291bnQtc3RyYXRlZ3ktbGluayIsdGl0bGU6aShzKSsobD9gIC8gJHtsfWA6IiIpLG9uQ2xpY2s6KCk9Pm0oaShzKSksY2hpbGRyZW46W28mJmEuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJiYWRnZSBiYWRnZS1hY2NlbnQiLHRpdGxlOm8sY2hpbGRyZW46bi5sYW5lKG8pfSksYS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtc3RyYXRlZ3ktbmFtZSIsY2hpbGRyZW46bD9uLnN0cmF0ZWd5KGwpOmUoImNvbW1vbi51bmtub3duIil9KSx0eXBlb2YgdT09ImJvb2xlYW4iJiZhLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtcm93IixjaGlsZHJlbjpbYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJvdmVydmlldy5ydW50aW1lX3RhcmdldCIpfSksYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKHU/Im92ZXJ2aWV3LnJ1bnRpbWVfZW5hYmxlZCI6Im92ZXJ2aWV3LnJ1bnRpbWVfZGlzYWJsZWQiKX0pXX0pLGEuanN4cygic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudC1yb3ciLGNoaWxkcmVuOlthLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImFjY291bnRzLmNvbC5kcmFmdHMiKX0pLGEuanN4KCJzcGFuIix7Y2hpbGRyZW46cy5wZW5kaW5nX2RyYWZ0X2NvdW50fSldfSksYS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJhY2NvdW50LXJvdyIsY2hpbGRyZW46W2EuanN4KCJzcGFuIix7Y2hpbGRyZW46ZSgiYWNjb3VudHMuY29sLnRvZG9zIil9KSxhLmpzeCgic3BhbiIse2NoaWxkcmVuOnMucGVuZGluZ19kZWNpc2lvbl9jb3VudD8/IuKAlCJ9KV19KSxhLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtcm93IixjaGlsZHJlbjpbYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJhY2NvdW50cy5jb2wubGFzdF9jaGFuZ2UiKX0pLGEuanN4KF8se3ZhbHVlOnMubGFzdF9jaGFuZ2VfYXR9KV19KV19LGkocykpfSldfSxyLmlkZW50aXR5KSl9KV19LGMucGxhdGZvcm0pKX0pfWV4cG9ydHtiIGFzIEF9Owo=" }, + "/v2/assets/AccountGroups-BhljfbNn.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3cgYXMgcCx1IGFzIHgsaiBhcyBhLF8gYXMgaCwkIGFzIGosRCBhcyBfLGEwIGFzIGl9ZnJvbSIuL2luZGV4LUNZNmlHUE9YLmpzIjtmdW5jdGlvbiBiKHthY2NvdW50czpkLGNvbmZpZzp0LG9uU2VsZWN0Om19KXtjb25zdCBuPXAodCksZT14KCk7cmV0dXJuIGEuanN4KCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOmgoZCx0KS5tYXAoYz0+YS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJhY2NvdW50LXBsYXRmb3JtLWdyb3VwIixjaGlsZHJlbjpbYS5qc3goImgyIix7Y2xhc3NOYW1lOiJhY2NvdW50LXBsYXRmb3JtLXRpdGxlIixjaGlsZHJlbjpuLnBsYXRmb3JtKGMucGxhdGZvcm0pfSksYS5qc3goImRpdiIse2NsYXNzTmFtZToiYWNjb3VudC1ncmlkIixjaGlsZHJlbjpjLmFjY291bnRzLm1hcChyPT5hLmpzeHMoImFydGljbGUiLHtjbGFzc05hbWU6ImNhcmQgYWNjb3VudC1ncm91cC1jYXJkIixjaGlsZHJlbjpbYS5qc3goImgzIix7Y2xhc3NOYW1lOiJhY2NvdW50LWJyb2tlci10aXRsZSIsY2hpbGRyZW46bi5hY2NvdW50KHIucm93c1swXS5hY2NvdW50X2FsaWFzLGMucGxhdGZvcm0pfSksci5yb3dzLm1hcChzPT57Y29uc3QgbD1uLmN1cnJlbnRTdHJhdGVneShzKSxvPWoodCxzLnBsYXRmb3JtLHMuYWNjb3VudF9hbGlhcyk/LmJyb2tlcl9lbnZpcm9ubWVudHx8dD8uY3VycmVudFN0cmF0ZWdpZXM/LltzLnBsYXRmb3JtXT8uW3MuYWNjb3VudF9hbGlhc10/LmV4ZWN1dGlvbl9tb2RlLHU9dD8uY3VycmVudFN0cmF0ZWdpZXM/LltzLnBsYXRmb3JtXT8uW3MuYWNjb3VudF9hbGlhc10/LnJ1bnRpbWVfdGFyZ2V0X2VuYWJsZWQ7cmV0dXJuIGEuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImFjY291bnQtc3RyYXRlZ3ktbGluayIsdGl0bGU6aShzKSsobD9gIC8gJHtsfWA6IiIpLG9uQ2xpY2s6KCk9Pm0oaShzKSksY2hpbGRyZW46W28mJmEuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJiYWRnZSBiYWRnZS1hY2NlbnQiLHRpdGxlOm8sY2hpbGRyZW46bi5sYW5lKG8pfSksYS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtc3RyYXRlZ3ktbmFtZSIsY2hpbGRyZW46bD9uLnN0cmF0ZWd5KGwpOmUoImNvbW1vbi51bmtub3duIil9KSx0eXBlb2YgdT09ImJvb2xlYW4iJiZhLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtcm93IixjaGlsZHJlbjpbYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJvdmVydmlldy5ydW50aW1lX3RhcmdldCIpfSksYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKHU/Im92ZXJ2aWV3LnJ1bnRpbWVfZW5hYmxlZCI6Im92ZXJ2aWV3LnJ1bnRpbWVfZGlzYWJsZWQiKX0pXX0pLGEuanN4cygic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudC1yb3ciLGNoaWxkcmVuOlthLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImFjY291bnRzLmNvbC5kcmFmdHMiKX0pLGEuanN4KCJzcGFuIix7Y2hpbGRyZW46cy5wZW5kaW5nX2RyYWZ0X2NvdW50fSldfSksYS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJhY2NvdW50LXJvdyIsY2hpbGRyZW46W2EuanN4KCJzcGFuIix7Y2hpbGRyZW46ZSgiYWNjb3VudHMuY29sLnRvZG9zIil9KSxhLmpzeCgic3BhbiIse2NoaWxkcmVuOnMucGVuZGluZ19kZWNpc2lvbl9jb3VudD8/IuKAlCJ9KV19KSxhLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnQtcm93IixjaGlsZHJlbjpbYS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJhY2NvdW50cy5jb2wubGFzdF9jaGFuZ2UiKX0pLGEuanN4KF8se3ZhbHVlOnMubGFzdF9jaGFuZ2VfYXR9KV19KV19LGkocykpfSldfSxyLmlkZW50aXR5KSl9KV19LGMucGxhdGZvcm0pKX0pfWV4cG9ydHtiIGFzIEF9Owo=" }, + "/v2/assets/AccountsPage-A1xw9Irv.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e1EgYXMgb2UsayBhcyByZSxqIGFzIGUsdyBhcyBKLHIgYXMgaix1IGFzIEYsSCBhcyBYLGYgYXMgUCxFIGFzIHosQiBhcyBjZSxUIGFzIGllLFUgYXMgbGUsViBhcyBnZSxPIGFzIE5lLFcgYXMga2UsTCBhcyBILFggYXMgUSxpIGFzIGRlLFMgYXMgSyxlIGFzIHVlLFkgYXMgZWUsQSBhcyBTZSxaIGFzIENlLG8gYXMgT2UsbiBhcyBUZSxoIGFzIFJlfWZyb20iLi9pbmRleC1DWTZpR1BPWC5qcyI7aW1wb3J0e0EgYXMgJGV9ZnJvbSIuL0FjY291bnRHcm91cHMtQmhsamZiTm4uanMiO2ltcG9ydHt1IGFzIFZ9ZnJvbSIuL2hvb2tzLUNSTmtZaHg3LmpzIjtpbXBvcnR7RCBhcyBFZSxUIGFzIExlLHUgYXMgd2UsQyBhcyBBZX1mcm9tIi4vRGlhbG9nLUN2TkJaSDFSLmpzIjtpbXBvcnR7VCBhcyBEZX1mcm9tIi4vVGFicy1Cd1h4RHZJbS5qcyI7Y29uc3QgSWU9WyJzdHJhdGVneSIsImRjYSIsImNhc2hfcmVzZXJ2ZSIsImluY29tZV9sYXllciIsIm9wdGlvbnNfbGF5ZXIiXTtmdW5jdGlvbiBCZSh0LHMpe3JldHVybiB0Py5wbGF0Zm9ybU1ldGE/LltzXT8ubGFiZWx8fHN9ZnVuY3Rpb24gdGUodCxzLGEpe3JldHVybiB0Py5hY2NvdW50T3B0aW9ucz8uW3NdPy5maW5kKGw9Pmwua2V5PT09YSk/LnRhcmdldF9uYW1lfHxhfWZ1bmN0aW9uIEZlKHQscyl7cmV0dXJuKHQ/LnN0cmF0ZWd5UHJvZmlsZXN8fFtdKS5maWx0ZXIoYT0+dHlwZW9mIGE/LnByb2ZpbGU9PSJzdHJpbmciJiZhLnByb2ZpbGUubGVuZ3RoPjApLm1hcChhPT4oe3Byb2ZpbGU6YS5wcm9maWxlLGxhYmVsOm9lKGEucHJvZmlsZSxzLHM9PT0iemgiP2EubGFiZWxfemg6YS5sYWJlbF9lbil9KSl9ZnVuY3Rpb24gRyh0LHMpe2NvbnN0IGE9dChzLmxhYmVsX2tleSk7cmV0dXJuIGE9PT1zLmxhYmVsX2tleT90KGBhY2NvdW50cy5maWVsZC4ke3MuZmllbGR9YCk6YX1mdW5jdGlvbiBZKHQscyl7cmV0dXJuIHQoYGFjY291bnRzLnNlY3Rpb24uJHtzfWApfWZ1bmN0aW9uIFcodCxzLGEsbj0hMSxsPSJlbiIpe3JldHVybiBuP3QoImNvbW1vbi51bmtub3duIik6YT09bnVsbHx8YT09PSIiP3QoImNvbW1vbi5uYSIpOnR5cGVvZiBhPT0iYm9vbGVhbiI/dChhPyJhY2NvdW50cy5ib29sLm9uIjoiYWNjb3VudHMuYm9vbC5vZmYiKTpzPT09ImRjYV9tb2RlIiYmKGE9PT0iZml4ZWQifHxhPT09InNtYXJ0Iik/dChgYWNjb3VudHMuZGNhX21vZGUuJHthfWApOnM9PT0ic3RyYXRlZ3lfcHJvZmlsZSI/b2UoU3RyaW5nKGEpLGwpOlN0cmluZyhhKX1mdW5jdGlvbiBzZSh0LHMpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHQuZmllbGQpKXtjb25zdCBhPXNbdC5maWVsZF07cmV0dXJuIGE9PT1udWxsfHxhPT09dm9pZCAwP3QuY3VycmVudDphfXJldHVybiB0Lm92ZXJyaWRkZW4/dC5kcmFmdDp0LmN1cnJlbnR9ZnVuY3Rpb24gbmUodCl7cmV0dXJuIHQ9PW51bGw/bnVsbDp0eXBlb2YgdD09Im51bWJlciI/U3RyaW5nKHQpOnR9ZnVuY3Rpb24gYWUodCxzKXtjb25zdCBhPXt9O2Zvcihjb25zdCBuIG9mIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbi5maWVsZCk/YVtuLmZpZWxkXT1uZShzW24uZmllbGRdKTpuLm92ZXJyaWRkZW4mJihhW24uZmllbGRdPW5lKG4uZHJhZnQpKTtyZXR1cm4gYX1mdW5jdGlvbiBaKHQpe2NvbnN0IHM9W107Zm9yKGNvbnN0IGEgb2YgSWUpe2NvbnN0IG49dC5maWx0ZXIobD0+bC5zZWN0aW9uPT09YSk7bi5sZW5ndGgmJnMucHVzaCh7c2VjdGlvbjphLHJvd3M6bn0pfXJldHVybiBzfWZ1bmN0aW9uIG1lKHQpe3JldHVybi9eXGQrKD86XC5cZCspPyQvLnRlc3QodCkmJk51bWJlci5pc0Zpbml0ZShOdW1iZXIodCkpfWZ1bmN0aW9uIHFlKHQpe2lmKCFtZSh0KSlyZXR1cm4hMTtjb25zdCBzPU51bWJlcih0KTtyZXR1cm4gcz49MCYmczw9MX1mdW5jdGlvbiBLZSh0KXtyZXR1cm4gdC5sZW5ndGg8PTMyJiYvXig/OjB8WzEtOV1cZCopKD86XC5cZCspPyQvLnRlc3QodCkmJk51bWJlci5pc0Zpbml0ZShOdW1iZXIodCkpJiZOdW1iZXIodCk+MH1jb25zdCBVPVsiZGNhX21vZGUiLCJkY2FfYmFzZV9pbnZlc3RtZW50X3VzZCJdO2Z1bmN0aW9uIE0odCxzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscyl9ZnVuY3Rpb24gZmUoe3Jvd3M6dCx0OnN9KXtjb25zdCBhPXJlKCk7cmV0dXJuIGUuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOloodCkubWFwKG49PmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZGlmZi1zZWN0aW9uIixjaGlsZHJlbjpbZS5qc3goImgzIix7Y2hpbGRyZW46WShzLG4uc2VjdGlvbil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3dzIixjaGlsZHJlbjpuLnJvd3MubWFwKGw9PmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3ciLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtbGFiZWwiLGNoaWxkcmVuOkcocyxsKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1ib2R5IixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLXZhbHVlIixjaGlsZHJlbjpXKHMsbC5maWVsZCxsLmN1cnJlbnQsbC5jdXJyZW50X3N0YXR1cz09PSJ1bmtub3duIixhKX0pLGwub3ZlcnJpZGRlbiYmZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWN1cnJlbnQiLGNoaWxkcmVuOnMoImFjY291bnRzLmRyYWZ0X3ZhbHVlIix7dmFsdWU6VyhzLGwuZmllbGQsbC5kcmFmdCwhMSxhKX0pfSldfSldfSxsLmZpZWxkKSl9KV19LG4uc2VjdGlvbikpfSl9ZnVuY3Rpb24gVmUoe3Jvd3M6dCx0OnN9KXtyZXR1cm4gZS5qc3goZS5GcmFnbWVudCx7Y2hpbGRyZW46Wih0KS5tYXAoYT0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWRpZmYtc2VjdGlvbiIsY2hpbGRyZW46W2UuanN4KCJoMyIse2NoaWxkcmVuOlkocyxhLnNlY3Rpb24pfSksZS5qc3goRWUse3Jvd3M6YS5yb3dzfSldfSxhLnNlY3Rpb24pKX0pfWZ1bmN0aW9uIE1lKHthY2NvdW50OnQsZGlmZlN0YXRlOnMsY29uZmlnOmEsZWRpdGluZzpuLHNldEVkaXRpbmc6bCxlZGl0czpfLHNldEVkaXRzOmMsY29uZmlybTpPfSl7Y29uc3Qgdj1yZSgpLFQ9SihhKSxrPWoudXNlSWQoKSxoPXI9PmAke2t9LSR7cn1gLG89RigpLEU9WCgpLFtnLFNdPWoudXNlU3RhdGUoITEpLFtkLGJdPWoudXNlU3RhdGUoITEpLFtMLENdPWoudXNlU3RhdGUobnVsbCksW20sZl09ai51c2VTdGF0ZSh7fSk7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gZS5qc3goUCx7aGVpZ2h0OjIyMH0pO2lmKHMucGhhc2U9PT0iZXJyb3IiKXJldHVybiBlLmpzeCh6LHtvblJldHJ5OnMucmVsb2FkfSk7Y29uc3QgeD1zLmRhdGEsJD14LnJvd3Msdz14LmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCIsQT1GZShhLHYpLEQ9T2JqZWN0LmtleXMoXykubGVuZ3RoPjAscT0ocix1KT0+e2YoeT0+KHsuLi55LFtyXTp2b2lkIDB9KSksYyh5PT57Y29uc3QgaT17Li4ueSxbcl06dX07aWYoVS5pbmNsdWRlcyhyKSl7Y29uc3QgcD1yPT09ImRjYV9tb2RlIj8iZGNhX2Jhc2VfaW52ZXN0bWVudF91c2QiOiJkY2FfbW9kZSI7aWYoIU0oaSxwKSl7Y29uc3QgTj0kLmZpbmQoUj0+Ui5maWVsZD09PXApO04mJihpW3BdPU4ub3ZlcnJpZGRlbj9OLmRyYWZ0Ok4uY3VycmVudCl9fXJldHVybiBpfSl9LF9lPXI9PntmKHU9Pih7Li4udSxbcl06dm9pZCAwfSkpLGModT0+e2NvbnN0IHk9ey4uLnV9O3JldHVybiBkZWxldGUgeVtyXSxVLmluY2x1ZGVzKHIpJiZkZWxldGUgeVtyPT09ImRjYV9tb2RlIj8iZGNhX2Jhc2VfaW52ZXN0bWVudF91c2QiOiJkY2FfbW9kZSJdLHl9KX0saGU9cj0+e2lmKFUuaW5jbHVkZXMocikpe2YodT0+KHsuLi51LGRjYV9tb2RlOnZvaWQgMCxkY2FfYmFzZV9pbnZlc3RtZW50X3VzZDp2b2lkIDB9KSksYyh1PT4oey4uLnUsZGNhX21vZGU6bnVsbCxkY2FfYmFzZV9pbnZlc3RtZW50X3VzZDpudWxsfSkpO3JldHVybn1xKHIsbnVsbCl9LHllPSgpPT57Y29uc3Qgcj17fTtmb3IoY29uc3QgcCBvZiBPYmplY3Qua2V5cyhfKSl7Y29uc3QgTj1fW3BdO2lmKE49PW51bGwpY29udGludWU7Y29uc3QgUj1TdHJpbmcoTik7cD09PSJzdHJhdGVneV9wcm9maWxlIiYmIVIudHJpbSgpJiYocltwXT1vKCJhY2NvdW50cy5mb3JtLnNlbGVjdF9wcm9maWxlIikpLHA9PT0icmVzZXJ2ZWRfY2FzaF9mbG9vciImJiFtZShSKSYmKHJbcF09bygiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RlY2ltYWwiKSkscD09PSJyZXNlcnZlZF9jYXNoX3JhdGlvIiYmIXFlKFIpJiYocltwXT1vKCJhY2NvdW50cy5mb3JtLmludmFsaWRfcmF0aW8iKSkscD09PSJkY2FfYmFzZV9pbnZlc3RtZW50X3VzZCImJiFLZShSKSYmKHJbcF09bygiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RjYV9hbW91bnQiKSl9Y29uc3QgdT1hZSgkLF8pLHk9dHlwZW9mIHUuZGNhX21vZGU9PSJzdHJpbmciJiZ1LmRjYV9tb2RlLmxlbmd0aD4wLGk9dHlwZW9mIHUuZGNhX2Jhc2VfaW52ZXN0bWVudF91c2Q9PSJzdHJpbmciJiZ1LmRjYV9iYXNlX2ludmVzdG1lbnRfdXNkLmxlbmd0aD4wO3JldHVybiB5IT09aSYmKHIuZGNhX21vZGU9bygiYWNjb3VudHMuZm9ybS5kY2FfcGFpcl9yZXF1aXJlZCIpKSxmKHIpLE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTB9LGJlPWFzeW5jIHI9PntiKCEwKSxDKG51bGwpO2xldCB1O3RyeXtjb25zdCB5PWF3YWl0IGxlKHQucGxhdGZvcm0sdC5hY2NvdW50X2FsaWFzKTtpZigheS5pZGVudGl0eXx8dHlwZW9mIHkuaWRlbnRpdHkhPSJvYmplY3QifHxBcnJheS5pc0FycmF5KHkuaWRlbnRpdHkpKXRocm93IG5ldyBFcnJvcigiaWRlbnRpdHlfbWlzc2luZyIpO3U9eS5pZGVudGl0eX1jYXRjaHtDKHtraW5kOiJlcnJvciIsdGV4dDpvKCJlcnJvci5nZW5lcmljIil9KSxiKCExKTtyZXR1cm59dHJ5e2F3YWl0IGdlKHtwbGF0Zm9ybTp0LnBsYXRmb3JtLGtleTp0LmFjY291bnRfYWxpYXMsaWRlbnRpdHk6dSxleHBlY3RlZF9kcmFmdF9yZXZpc2lvbjpyLmRyYWZ0X3JldmlzaW9uLG92ZXJyaWRlczphZShyLnJvd3MsXyl9KSxjKHt9KSxsKCExKSxDKHtraW5kOiJzdWNjZXNzIix0ZXh0OmAke28oImFjY291bnRzLmRyYWZ0X3NhdmVkIil9ICR7bygiYWNjb3VudHMuZHJhZnRfbm90ZSIpfWB9KSxzLnJlbG9hZCgpfWNhdGNoKHkpe2lmKHkgaW5zdGFuY2VvZiBOZSYmeS5zdGF0dXM9PT00MDkpe2NvbnN0IGk9eS5wYXlsb2FkPy5lcnJvcixwPW8oaT09PSJhY2NvdW50X3NldHRpbmdzX2RyYWZ0X3JldmlzaW9uX2NvbmZsaWN0Ij8iYWNjb3VudHMuY29uZmxpY3QiOmk9PT0iYWNjb3VudF9zZXR0aW5nc19pZGVudGl0eV9jb25mbGljdCI/ImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0IjoiZXJyb3IuY29uZmxpY3QiKTtDKHtraW5kOiJlcnJvciIsdGV4dDpwfSkscy5yZWxvYWQoKX1lbHNlIEMoe2tpbmQ6ImVycm9yIix0ZXh0Om8oImFjY291bnRzLnNhdmVfdW5rbm93biIpfSl9ZmluYWxseXtiKCExKX19LHZlPWFzeW5jKCk9PntpZih5ZSgpKXtTKCEwKSxDKG51bGwpO3RyeXtjb25zdCByPWF3YWl0IGllKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKTtpZihyLmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCIpe0Moe2tpbmQ6ImVycm9yIix0ZXh0Om8oImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0Iil9KSxzLnJlbG9hZCgpO3JldHVybn1jb25zdCB1PXIucm93cy5maWx0ZXIoaT0+e2NvbnN0IHA9aS5vdmVycmlkZGVuP2kuZHJhZnQ6aS5jdXJyZW50LE49TShfLGkuZmllbGQpP19baS5maWVsZF06cDtyZXR1cm4gU3RyaW5nKE4/PyIiKSE9PVN0cmluZyhwPz8iIil9KS5tYXAoaT0+e2NvbnN0IHA9TShfLGkuZmllbGQpJiZfW2kuZmllbGRdPT09bnVsbCxOPXA/aS5jdXJyZW50OnNlKGksXyk7cmV0dXJue3NlY3Rpb246aS5zZWN0aW9uLGZpZWxkOmkuZmllbGQsbGFiZWw6RyhvLGkpLGJlZm9yZTppLmN1cnJlbnRfc3RhdHVzPT09InVua25vd24iP251bGw6aS5jdXJyZW50LGFmdGVyOnA/bygiYWNjb3VudHMuZm9ybS5pbmhlcml0Iik6TixhZmZlY3RzTGl2ZTppLmFmZmVjdHNfbGl2ZX19KTtpZighdS5sZW5ndGgpe0Uoe2tpbmQ6ImluZm8iLHRleHQ6bygiYWNjb3VudHMubm9fY2hhbmdlcyIpfSk7cmV0dXJufWF3YWl0IE8oe3RpdGxlOm8oImFjY291bnRzLmRpZmZfZGlhbG9nX3RpdGxlIiksdGFyZ2V0OlQuYWNjb3VudCh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksc3VtbWFyeTpvKCJhY2NvdW50cy5kcmFmdF9ub3RlIiksYm9keTplLmpzeChWZSx7cm93czp1LHQ6b30pLGFja0xhYmVsOnUuc29tZShpPT5pLmFmZmVjdHNMaXZlKT9vKCJhY2NvdW50cy5hY2tfbGl2ZSIpOnZvaWQgMCxjb25maXJtTGFiZWw6bygiYWNjb3VudHMuc2F2ZV9kcmFmdCIpLHRvbmU6Im5vcm1hbCJ9KSYmYXdhaXQgYmUocil9Y2F0Y2h7RSh7a2luZDoiZXJyb3IiLHRleHQ6bygiZXJyb3IuZ2VuZXJpYyIpfSl9ZmluYWxseXtTKCExKX19fSx4ZT1hc3luYygpPT57RCYmIWF3YWl0IE8oe3RpdGxlOm8oImNvbW1vbi51bnNhdmVkX2d1YXJkX3RpdGxlIiksc3VtbWFyeTpvKCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5IiksdG9uZToibm9ybWFsIn0pfHwoYyh7fSksZih7fSksbCghMSkpfSxqZT1yPT57Y29uc3QgdT1zZShyLF8pLHk9TShfLHIuZmllbGQpLGk9dT09bnVsbD8iIjpTdHJpbmcodSkscD1tW3IuZmllbGRdLE49e2lkOmgoci5maWVsZCksImFyaWEtaW52YWxpZCI6ISFwLCJhcmlhLWRlc2NyaWJlZGJ5IjpwP2Ake2goci5maWVsZCl9LWVycm9yYDp2b2lkIDB9O2xldCBSO2lmKHIuZmllbGQ9PT0ic3RyYXRlZ3lfcHJvZmlsZSIpe2NvbnN0IEk9QS5zb21lKEI9PkIucHJvZmlsZT09PWkpO1I9ZS5qc3hzKCJzZWxlY3QiLHsuLi5OLGNsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6Qj0+cShyLmZpZWxkLEIudGFyZ2V0LnZhbHVlKSxjaGlsZHJlbjpbIWkmJmUuanN4KCJvcHRpb24iLHt2YWx1ZToiIixkaXNhYmxlZDohMCxjaGlsZHJlbjpvKCJhY2NvdW50cy5mb3JtLnNlbGVjdF9wcm9maWxlIil9KSxpJiYhSSYmZS5qc3goIm9wdGlvbiIse3ZhbHVlOmksY2hpbGRyZW46aX0pLEEubWFwKEI9PmUuanN4KCJvcHRpb24iLHt2YWx1ZTpCLnByb2ZpbGUsY2hpbGRyZW46Qi5sYWJlbH0sQi5wcm9maWxlKSldfSl9ZWxzZSByLmZpZWxkPT09ImRjYV9tb2RlIj9SPWUuanN4cygic2VsZWN0Iix7Li4uTixjbGFzc05hbWU6ImlucHV0Iix2YWx1ZTppLG9uQ2hhbmdlOkk9PnEoci5maWVsZCxJLnRhcmdldC52YWx1ZSksY2hpbGRyZW46WyFpJiZlLmpzeCgib3B0aW9uIix7dmFsdWU6IiIsZGlzYWJsZWQ6ITAsY2hpbGRyZW46bygiY29tbW9uLm5hIil9KSxlLmpzeCgib3B0aW9uIix7dmFsdWU6ImZpeGVkIixjaGlsZHJlbjpvKCJhY2NvdW50cy5kY2FfbW9kZS5maXhlZCIpfSksZS5qc3goIm9wdGlvbiIse3ZhbHVlOiJzbWFydCIsY2hpbGRyZW46bygiYWNjb3VudHMuZGNhX21vZGUuc21hcnQiKX0pXX0pOnIuZmllbGQ9PT0iaW5jb21lX2xheWVyX2VuYWJsZWQifHxyLmZpZWxkPT09Im9wdGlvbl9vdmVybGF5X2VuYWJsZWQiP1I9ZS5qc3hzKCJzZWxlY3QiLHsuLi5OLGNsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6ST0+cShyLmZpZWxkLEkudGFyZ2V0LnZhbHVlPT09InRydWUiKSxjaGlsZHJlbjpbIWkmJmUuanN4KCJvcHRpb24iLHt2YWx1ZToiIixkaXNhYmxlZDohMCxjaGlsZHJlbjpvKCJjb21tb24ubmEiKX0pLGUuanN4KCJvcHRpb24iLHt2YWx1ZToidHJ1ZSIsY2hpbGRyZW46bygiYWNjb3VudHMuYm9vbC5vbiIpfSksZS5qc3goIm9wdGlvbiIse3ZhbHVlOiJmYWxzZSIsY2hpbGRyZW46bygiYWNjb3VudHMuYm9vbC5vZmYiKX0pXX0pOlI9ZS5qc3goImlucHV0Iix7Li4uTixjbGFzc05hbWU6ImlucHV0Iix2YWx1ZTppLGlucHV0TW9kZToiZGVjaW1hbCIsbWF4TGVuZ3RoOjMyLG9uQ2hhbmdlOkk9PnEoci5maWVsZCxJLnRhcmdldC52YWx1ZSl9KTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWJvZHkiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtY29udHJvbCIsY2hpbGRyZW46W1IseSYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSBidXR0b24tc20iLG9uQ2xpY2s6KCk9Pl9lKHIuZmllbGQpLGNoaWxkcmVuOm8oImFjY291bnRzLmZvcm0udW5kbyIpfSksIXkmJnIub3ZlcnJpZGRlbiYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSBidXR0b24tc20iLG9uQ2xpY2s6KCk9PmhlKHIuZmllbGQpLGNoaWxkcmVuOm8oImFjY291bnRzLmZvcm0uY2xlYXJfb3ZlcnJpZGUiKX0pXX0pLGUuanN4cygic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtY3VycmVudCIsY2hpbGRyZW46W28oImRlY2lzaW9ucy5jb2wuY3VycmVudCIpLCIgwrcgIixXKG8sci5maWVsZCxyLmN1cnJlbnQsci5jdXJyZW50X3N0YXR1cz09PSJ1bmtub3duIix2KV19KSxwJiZlLmpzeCgic3BhbiIse2lkOmAke2goci5maWVsZCl9LWVycm9yYCxjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWVycm9yIixjaGlsZHJlbjpwfSldfSl9O3JldHVybiBlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtdG9vbGJhciIsY2hpbGRyZW46W2UuanN4KGNlLHt0b25lOm4/ImFjY2VudCI6InVua25vd24iLGNoaWxkcmVuOm8obj8iYWNjb3VudHMuZWRpdGluZyI6ImFjY291bnRzLnZpZXdpbmciKX0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJhc29mIixjaGlsZHJlbjpvKCJhY2NvdW50cy5kcmFmdF9yZXZpc2lvbiIse3ZhbHVlOnguZHJhZnRfcmV2aXNpb259KX0pLGUuanN4KCJzcGFuIix7c3R5bGU6e2ZsZXg6MX19KSwhbiYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazooKT0+bCghMCksY2hpbGRyZW46bygiYWNjb3VudHMuZWRpdCIpfSksbiYmZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6Z3x8ZHx8dyxvbkNsaWNrOigpPT57dmUoKX0sY2hpbGRyZW46byhnPyJhY2NvdW50cy5jaGVja2luZyI6ImFjY291bnRzLmNoZWNrX2NoYW5nZXMiKX0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLGRpc2FibGVkOmd8fGQsb25DbGljazooKT0+e3hlKCl9LGNoaWxkcmVuOm8oImNvbW1vbi5jYW5jZWwiKX0pXX0pXX0pLHcmJmUuanN4cygicCIse2NsYXNzTmFtZToiYWNjb3VudHMtaW5saW5lLW5vdGUgZXJyb3IiLHJvbGU6ImFsZXJ0IixjaGlsZHJlbjpbbygiYWNjb3VudHMuaWRlbnRpdHlfY29uZmxpY3QiKSwiICIsZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJhY2NvdW50cy1hbGlhcy1idXR0b24iLG9uQ2xpY2s6cy5yZWxvYWQsY2hpbGRyZW46bygiY29tbW9uLnJlZnJlc2giKX0pXX0pLEwmJmUuanN4cygicCIse2NsYXNzTmFtZTpgYWNjb3VudHMtaW5saW5lLW5vdGUgJHtMLmtpbmR9YCxyb2xlOiJzdGF0dXMiLGNoaWxkcmVuOltMLnRleHQsIiAiLEwua2luZD09PSJlcnJvciImJmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYWNjb3VudHMtYWxpYXMtYnV0dG9uIixvbkNsaWNrOnMucmVsb2FkLGNoaWxkcmVuOm8oImNvbW1vbi5yZWZyZXNoIil9KV19KSxkJiZlLmpzeCgicCIse2NsYXNzTmFtZToiYWNjb3VudHMtaW5saW5lLW5vdGUiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46bygiYWNjb3VudHMuc2F2aW5nIil9KSxuP1ooJCkubWFwKHI9PmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZGlmZi1zZWN0aW9uIixjaGlsZHJlbjpbZS5qc3goImgzIix7Y2hpbGRyZW46WShvLHIuc2VjdGlvbil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3dzIixjaGlsZHJlbjpyLnJvd3MubWFwKHU9PmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3ciLGNoaWxkcmVuOltlLmpzeCgibGFiZWwiLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWxhYmVsIixodG1sRm9yOmgodS5maWVsZCksY2hpbGRyZW46RyhvLHUpfSksamUodSldfSx1LmZpZWxkKSl9KV19LHIuc2VjdGlvbikpOmUuanN4KGZlLHtyb3dzOiQsdDpvfSldfSl9ZnVuY3Rpb24gUGUoe2NoaWxkcmVuOnR9KXtjb25zdCBzPUYoKTtyZXR1cm4gZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJkYW5nZXItem9uZSIsImFyaWEtbGFiZWwiOnMoImNvbnRyb2xzLnRpdGxlIiksY2hpbGRyZW46W2UuanN4KCJoMyIse2NsYXNzTmFtZToiZGFuZ2VyLXpvbmUtdGl0bGUiLGNoaWxkcmVuOnMoImNvbnRyb2xzLnRpdGxlIil9KSxlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixzdHlsZTp7bWFyZ2luOjB9LGNoaWxkcmVuOnMoImNvbnRyb2xzLmRhbmdlcl9ub3RlIil9KSx0XX0pfWZ1bmN0aW9uIHplKHt0aXRsZTp0LHN1bW1hcnk6cyxhY3Rpb246YSx1bmF2YWlsYWJsZVJlYXNvbjpufSl7Y29uc3QgbD1GKCk7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJkYW5nZXItcm93IixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRhbmdlci1yb3ctdGV4dCIsY2hpbGRyZW46W2UuanN4KCJzdHJvbmciLHtjaGlsZHJlbjp0fSksZS5qc3goInAiLHtjaGlsZHJlbjpzfSksbiYmZS5qc3goInAiLHtjaGlsZHJlbjpsKCJjb250cm9scy51bmF2YWlsYWJsZSIse3JlYXNvbjpufSl9KV19KSxlLmpzeCgiZGl2Iix7Y2hpbGRyZW46YX0pXX0pfWNvbnN0IEhlPVt7bmFtZToiZW5hYmxlIix0aXRsZUtleToiY29udHJvbHMuZW5hYmxlIixzdW1tYXJ5S2V5OiJjb250cm9scy5lbmFibGVfc3VtbWFyeSJ9LHtuYW1lOiJzdG9wIix0aXRsZUtleToiY29udHJvbHMuc3RvcCIsc3VtbWFyeUtleToiY29udHJvbHMuc3RvcF9zdW1tYXJ5In0se25hbWU6InJlc3VtZSIsdGl0bGVLZXk6ImNvbnRyb2xzLnJlc3VtZSIsc3VtbWFyeUtleToiY29udHJvbHMucmVzdW1lX3N1bW1hcnkifSx7bmFtZToiYXBwcm92ZV9hcHBsaWNhdGlvbiIsdGl0bGVLZXk6ImNvbnRyb2xzLmFwcHJvdmVfYXBwbGljYXRpb24iLHN1bW1hcnlLZXk6ImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSJ9XTtmdW5jdGlvbiBVZSh7YWNjb3VudDp0LGNvbmZpZzpzLGNvbmZpcm06YX0pe2NvbnN0IG49RigpLGw9WCgpLF89SihzKSxjPVYoKCk9PmtlKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxbdC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm1dKSxbTyx2XT1qLnVzZVN0YXRlKG51bGwpLFtULGtdPWoudXNlU3RhdGUoe30pO2lmKGMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KFAse2hlaWdodDoyMDB9KTtpZihjLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goeix7b25SZXRyeTpjLnJlbG9hZH0pO2NvbnN0IGg9Yy5kYXRhLG89KCk9PntrKHt9KSxjLnJlbG9hZCgpfSxFPW09Pntjb25zdCBmPWByZWFzb24uJHttfWAseD1uKGYpO3JldHVybiB4PT09Zj9tOnh9LGc9KG0sZik9PntrKHg9Pih7Li4ueCxbbV06Zj8ic3VibWl0dGVkIjoidW5rbm93biJ9KSksbCh7a2luZDpmPyJzdWNjZXNzIjoiZXJyb3IiLHRleHQ6bihmPyJjb250cm9scy5zdWJtaXR0ZWQiOiJjb250cm9scy51bmtub3duX3Jlc3VsdCIpfSl9LEM9e2VuYWJsZTphc3luYygpPT57YXdhaXQgYSh7dGl0bGU6bigiY29udHJvbHMuY29uZmlybS5lbmFibGVfdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLmVuYWJsZV9zdW1tYXJ5IiksY29uc2VxdWVuY2U6bigiY29udHJvbHMuZW5hYmxlX25vdGUiKSx0b25lOiJub3JtYWwiLGNvbmZpcm1MYWJlbDpuKCJjb21tb24uY2xvc2UiKX0pfSxzdG9wOmFzeW5jKCk9PntpZihhd2FpdCBhKHt0aXRsZTpuKCJjb250cm9scy5zdG9wX2NvbmZpcm1fdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSIpLGNvbnNlcXVlbmNlOm4oImNvbnRyb2xzLnN0b3BfY29uc2VxdWVuY2UiKSx0b25lOiJkYW5nZXIiLGNvbmZpcm1MYWJlbDpuKCJjb250cm9scy5zdG9wIiksdHlwZVRvQ29uZmlybTp7bGFiZWw6bigiY29udHJvbHMuc3RvcF90eXBlX2FsaWFzIix7YWxpYXM6dC5hY2NvdW50X2FsaWFzfSksZXhwZWN0ZWQ6dC5hY2NvdW50X2FsaWFzLG1pc21hdGNoOm4oImNvbnRyb2xzLmFsaWFzX21pc21hdGNoIil9fSkpe3YoInN0b3AiKTt0cnl7YXdhaXQgSCgiL2FwaS9ydW50aW1lLXN0b3AiLHtwbGF0Zm9ybTp0LnBsYXRmb3JtLHRhcmdldF9uYW1lOnRlKHMsdC5wbGF0Zm9ybSx0LmFjY291bnRfYWxpYXMpLGNvbmZpcm06IlNUT1BfT05MWSJ9KSxnKCJzdG9wIiwhMCl9Y2F0Y2h7Zygic3RvcCIsITEpfWZpbmFsbHl7dihudWxsKX19fSxyZXN1bWU6YXN5bmMoKT0+e2NvbnN0IG09aC5yZXN1bWVfYmluZGluZz8ucnVudGltZV90YXJnZXRfc2hhMjU2O2lmKCEodHlwZW9mIG0hPSJzdHJpbmcifHwhbXx8IWF3YWl0IGEoe3RpdGxlOm4oImNvbnRyb2xzLmNvbmZpcm0ucmVzdW1lX3RpdGxlIiksdGFyZ2V0Ol8uYWNjb3VudCh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksc3VtbWFyeTpuKCJjb250cm9scy5yZXN1bWVfc3VtbWFyeSIpLHRvbmU6ImRhbmdlciIsY29uZmlybUxhYmVsOm4oImNvbnRyb2xzLnJlc3VtZSIpfSkpKXt2KCJyZXN1bWUiKTt0cnl7YXdhaXQgSCgiL2FwaS9ydW50aW1lLXJlc3VtZSIse3BsYXRmb3JtOnQucGxhdGZvcm0sdGFyZ2V0X25hbWU6dGUocyx0LnBsYXRmb3JtLHQuYWNjb3VudF9hbGlhcykscnVudGltZV90YXJnZXRfc2hhMjU2Om0sY29uZmlybToiUkVTVU1FX0VYSVNUSU5HIn0pLGcoInJlc3VtZSIsITApfWNhdGNoe2coInJlc3VtZSIsITEpfWZpbmFsbHl7dihudWxsKX19fSxhcHByb3ZlX2FwcGxpY2F0aW9uOmFzeW5jKCk9PntpZihhd2FpdCBhKHt0aXRsZTpuKCJjb250cm9scy5jb25maXJtLmFwcHJvdmVfdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSIpLHRvbmU6ImRhbmdlciIsY29uZmlybUxhYmVsOm4oImNvbnRyb2xzLmFwcHJvdmVfYXBwbGljYXRpb24iKX0pKXt2KCJhcHByb3ZlX2FwcGxpY2F0aW9uIik7dHJ5e2NvbnN0IGY9YXdhaXQgbGUodC5wbGF0Zm9ybSx0LmFjY291bnRfYWxpYXMpLHg9Zi5kcmFmdD8ub3ZlcnJpZGVzfHx7fSwkPU9iamVjdC5rZXlzKHgpLHc9dHlwZW9mIHguc3RyYXRlZ3lfcHJvZmlsZT09InN0cmluZyI/eC5zdHJhdGVneV9wcm9maWxlLnRyaW0oKToiIixBPWYuZWZmZWN0aXZlPy5zdHJhdGVneV9wcm9maWxlLEQ9QT8uc3RhdHVzPT09Imtub3duIiYmdHlwZW9mIEEudmFsdWU9PSJzdHJpbmciP0EudmFsdWUudHJpbSgpOiIiO2lmKCEhIShmLmlkZW50aXR5JiZOdW1iZXIuaXNTYWZlSW50ZWdlcihmLmluc3RhbmNlX3JldmlzaW9uKSYmTnVtYmVyLmlzU2FmZUludGVnZXIoZi5kcmFmdD8ucmV2aXNpb24pJiYkLmxlbmd0aD09PTEmJiRbMF09PT0ic3RyYXRlZ3lfcHJvZmlsZSImJncmJkQmJnchPT1EKSl7bCh7a2luZDoiZXJyb3IiLHRleHQ6bigiY29udHJvbHMuYXBwcm92ZV9ub3RfcmVhZHkiKX0pO3JldHVybn1hd2FpdCBIKCIvYXBpL2FjY291bnQtc2V0dGluZ3MvcHJvZmlsZS1hcHBsaWNhdGlvbi9hcHByb3ZlIix7cGxhdGZvcm06dC5wbGF0Zm9ybSxrZXk6dC5hY2NvdW50X2FsaWFzLHJlcXVlc3Rfa2V5OmNyeXB0by5yYW5kb21VVUlEKCksaWRlbnRpdHk6Zi5pZGVudGl0eSxleHBlY3RlZF9pbnN0YW5jZV9yZXZpc2lvbjpmLmluc3RhbmNlX3JldmlzaW9uLGV4cGVjdGVkX2RyYWZ0X3JldmlzaW9uOmYuZHJhZnQ/LnJldmlzaW9uLG9sZF9wcm9maWxlOkQsbmV3X3Byb2ZpbGU6d30pLGcoImFwcHJvdmVfYXBwbGljYXRpb24iLCEwKX1jYXRjaHtnKCJhcHByb3ZlX2FwcGxpY2F0aW9uIiwhMSl9ZmluYWxseXt2KG51bGwpfX19fTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeChQZSx7Y2hpbGRyZW46SGUubWFwKCh7bmFtZTptLHRpdGxlS2V5OmYsc3VtbWFyeUtleTp4fSk9Pntjb25zdCAkPWguYWN0aW9uc1ttXSx3PVRbbV0sQT1PIT09bnVsbHx8ISF3fHwhJC5lbmFibGVkLEQ9dz9uKHc9PT0ic3VibWl0dGVkIj8iY29udHJvbHMuc3VibWl0dGVkIjoiY29udHJvbHMudW5rbm93bl9yZXN1bHQiKTokLmVuYWJsZWQ/bnVsbDpFKCQucmVhc29uKTtyZXR1cm4gZS5qc3goemUse3RpdGxlOm4oZiksc3VtbWFyeTpuKHgpLHVuYXZhaWxhYmxlUmVhc29uOkQsYWN0aW9uOmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgYnV0dG9uICR7bT09PSJzdG9wInx8bT09PSJyZXN1bWUiPyJidXR0b24tZGFuZ2VyLW91dGxpbmUiOiJidXR0b24tc2Vjb25kYXJ5In1gLGRpc2FibGVkOkEsb25DbGljazooKT0+e0NbbV0oKX0sY2hpbGRyZW46bihPPT09bT8iY29udHJvbHMuc3VibWl0dGluZyI6Zil9KX0sbSl9KX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYWNjb3VudHMtYWxpYXMtYnV0dG9uIixvbkNsaWNrOm8sY2hpbGRyZW46bigiY29tbW9uLnJlZnJlc2giKX0pfSldfSl9ZnVuY3Rpb24gR2Uoe2FjY291bnQ6dH0pe2NvbnN0IHM9RigpLGE9WCgpLG49VigoKT0+USh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksW3QuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtXSksW2wsX109ai51c2VTdGF0ZShbXSksW2MsT109ai51c2VTdGF0ZShudWxsKSxbdixUXT1qLnVzZVN0YXRlKG51bGwpLFtrLGhdPWoudXNlU3RhdGUoITEpO2lmKGoudXNlRWZmZWN0KCgpPT57bi5waGFzZT09PSJyZWFkeSImJihfKG4uZGF0YS5pdGVtcyksTyhuLmRhdGEubmV4dF9jdXJzb3IpLFQobi5kYXRhLmF2YWlsYWJpbGl0eSkpfSxbbi5waGFzZSxuLmRhdGFdKSxuLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChQLHtoZWlnaHQ6MjAwfSk7aWYobi5waGFzZT09PSJlcnJvciIpcmV0dXJuIGUuanN4KHose29uUmV0cnk6bi5yZWxvYWR9KTtjb25zdCBvPWFzeW5jKCk9PntpZihjKXtoKCEwKTt0cnl7Y29uc3QgZD1hd2FpdCBRKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtLDI1LGMpO18oYj0+Wy4uLmIsLi4uZC5pdGVtc10pLE8oZC5uZXh0X2N1cnNvciksVChkLmF2YWlsYWJpbGl0eSl9Y2F0Y2h7YSh7a2luZDoiZXJyb3IiLHRleHQ6cygiZXJyb3IuZ2VuZXJpYyIpfSl9ZmluYWxseXtoKCExKX19fSxFPWQ9PmQuZXZlbnQ9PT0iZHJhZnRfc2F2ZWQiP3MoImFjY291bnRzLmV2ZW50LmRyYWZ0X3NhdmVkIik6ZC5ldmVudD09PSJhcHByb3ZlZCI/cygiYWNjb3VudHMuZXZlbnQuYXBwcm92ZWQiKTpzKCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIiksZz1sLm1hcChkPT57Y29uc3QgYj1bZC5hY3Rvcl9hbGlhc3x8cygiYWNjb3VudHMuZXZlbnQudW5yZWNvcmRlZCIpLGQuZHJhZnRfcmV2aXNpb249PT1udWxsP251bGw6cygiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iLHt2YWx1ZTpkLmRyYWZ0X3JldmlzaW9ufSksZC5zb3VyY2U/bnVsbDpzKCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIikscygiZGVjaXNpb25zLnJlZiIse2lkOmQuc2hvcnRfaWR9KV0uZmlsdGVyKEJvb2xlYW4pLEw9Yi5maWx0ZXIoKEMsbSk9PkMhPT1iW20tMV0pLmpvaW4oIiDCtyAiKTtyZXR1cm57aWQ6ZC5pZCx0aW1lOmQudGltZSx0aXRsZTpFKGQpLGRldGFpbDpMfX0pLFM9dj8uZWZmZWN0X3ZlcmlmaWNhdGlvbjtyZXR1cm4gZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJhY2NvdW50cy50YWIuaGlzdG9yeSIpfSksbC5sZW5ndGg9PT0wP2UuanN4KGRlLHt0aXRsZTpzKCJhY2NvdW50cy5oaXN0b3J5LmVtcHR5Iil9KTplLmpzeChMZSx7aXRlbXM6Z30pLGMmJmUuanN4KCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEyfSxjaGlsZHJlbjplLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixkaXNhYmxlZDprLG9uQ2xpY2s6KCk9PntvKCl9LGNoaWxkcmVuOnMoaz8iY29tbW9uLmxvYWRpbmciOiJjb21tb24ubG9hZF9tb3JlIil9KX0pLFMmJlMuc3RhdHVzIT09Im9rIiYmZS5qc3hzKCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOltlLmpzeChLLHtzdGF0dXM6Uy5zdGF0dXMscmVhc29uOlMudW5hdmFpbGFibGVfcmVhc29ufSksIiAiLHMoInJlYXNvbi5lZmZlY3RfdmVyaWZpY2F0aW9uX25vdF9yZWNvcmRlZCIpXX0pXX0pfWNvbnN0IHBlPVsib3ZlcnZpZXciLCJzdHJhdGVneSIsImNvbnRyb2xzIiwiaGlzdG9yeSJdO2Z1bmN0aW9uIFdlKHQpe3JldHVybiBwZS5pbmNsdWRlcyh0fHwiIik/dDoib3ZlcnZpZXcifWZ1bmN0aW9uIEplKHthY2NvdW50OnQsdGFiOnMsY29uZmlnOmEsdG9kYXlSdW46bix0b2RheUZhaWxlZDpsLG9uQmFjazpffSl7Y29uc3QgYz1GKCksTz1KKGEpLHY9dWUoKSx7Y29uZmlybVJlcXVlc3Q6VCxjb25maXJtOmsscmVzb2x2ZUNvbmZpcm06aH09d2UoKSxbbyxFXT1qLnVzZVN0YXRlKCExKSxbZyxTXT1qLnVzZVN0YXRlKHt9KSxkPW8mJk9iamVjdC5rZXlzKGcpLmxlbmd0aD4wLGI9VigoKT0+aWUodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pLFt0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybV0pLEw9ai51c2VSZWYoayk7TC5jdXJyZW50PWs7Y29uc3QgQz1qLnVzZVJlZihjKTtDLmN1cnJlbnQ9YyxqLnVzZUVmZmVjdCgoKT0+e2lmKGQpcmV0dXJuIGVlKCgpPT5MLmN1cnJlbnQoe3RpdGxlOkMuY3VycmVudCgiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiKSxzdW1tYXJ5OkMuY3VycmVudCgiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfYm9keSIpLHRvbmU6Im5vcm1hbCJ9KSksKCk9PmVlKG51bGwpfSxbZF0pO2NvbnN0IG09V2UocyksZj1sP2UuanN4KEsse3N0YXR1czoicmVhZF9mYWlsZWQifSk6bj9lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KEsse3N0YXR1czpuLnN0YXR1cyxyZWFzb246bi51bmF2YWlsYWJsZV9yZWFzb259KSxlLmpzeChTZSx7dmFsdWU6bi5hc19vZn0pXX0pOmUuanN4KEsse3N0YXR1czoibm9fZGF0YSJ9KTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWRldGFpbCBzZWN0aW9uLXN0YWNrIixjaGlsZHJlbjpbZS5qc3goImRpdiIse2NoaWxkcmVuOmUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSBhY2NvdW50cy1tb2JpbGUtYmFjayIsb25DbGljazpfLGNoaWxkcmVuOlsi4oaQICIsYygiYWNjb3VudHMuYmFja190b19saXN0IildfSl9KSxlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLHRpdGxlOmAke3QucGxhdGZvcm19OiR7dC5hY2NvdW50X2FsaWFzfWAsY2hpbGRyZW46Ty5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1zdW1tYXJ5LXJvd3MiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtc3VtbWFyeS1yb3ciLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NoaWxkcmVuOmMoImNvbW1vbi5wbGF0Zm9ybSIpfSksZS5qc3goInNwYW4iLHtjaGlsZHJlbjpCZShhLHQucGxhdGZvcm0pfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLXN1bW1hcnktcm93IixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjaGlsZHJlbjpjKCJhY2NvdW50cy5ydW5fc3RhdGUiKX0pLGUuanN4KCJzcGFuIix7c3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixnYXA6OCxhbGlnbkl0ZW1zOiJjZW50ZXIiLGZsZXhXcmFwOiJ3cmFwIn0sY2hpbGRyZW46Zn0pXX0pXX0pXX0pLGUuanN4KERlLHtpZDoiYWNjb3VudC1kZXRhaWwiLGl0ZW1zOnBlLm1hcCh4PT4oe2lkOngsbGFiZWw6YyhgYWNjb3VudHMudGFiLiR7eH1gKX0pKSxhY3RpdmU6bSxvbkNoYW5nZTp4PT52KHt0YWI6eH0pLGFyaWFMYWJlbDpjKCJhY2NvdW50cy50aXRsZSIpfSksZS5qc3hzKCJkaXYiLHtpZDoiYWNjb3VudC1kZXRhaWwtcGFuZWwiLGNsYXNzTmFtZToic2VjdGlvbi1zdGFjayIscm9sZToidGFicGFuZWwiLCJhcmlhLWxhYmVsbGVkYnkiOmBhY2NvdW50LWRldGFpbC10YWItJHttfWAsdGFiSW5kZXg6MCxjaGlsZHJlbjpbbT09PSJvdmVydmlldyImJmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YygiYWNjb3VudHMudGFiLm92ZXJ2aWV3Iil9KSxiLnBoYXNlPT09ImxvYWRpbmciJiZlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJza2VsZXRvbiIsc3R5bGU6e2hlaWdodDoyMDB9LCJhcmlhLWhpZGRlbiI6InRydWUifSksYi5waGFzZT09PSJlcnJvciImJmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1zdGF0ZSIscm9sZToiYWxlcnQiLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci10aXRsZSIsY2hpbGRyZW46Yygic3RhdGUucmVhZF9mYWlsZWQiKX0pLGUuanN4KCJkaXYiLHtjaGlsZHJlbjpjKCJlcnJvci5nZW5lcmljIil9KSxlLmpzeCgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMn0sY2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazpiLnJlbG9hZCxjaGlsZHJlbjpjKCJjb21tb24ucmV0cnkiKX0pfSldfSksYi5waGFzZT09PSJyZWFkeSImJmUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbYi5kYXRhLmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCImJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJhY2NvdW50cy1pbmxpbmUtbm90ZSBlcnJvciIscm9sZToiYWxlcnQiLGNoaWxkcmVuOmMoImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0Iil9KSxlLmpzeChmZSx7cm93czpiLmRhdGEucm93cyx0OmN9KSxlLmpzeHMoInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGdhcDo4LGFsaWduSXRlbXM6ImNlbnRlciIsZmxleFdyYXA6IndyYXAifSxjaGlsZHJlbjpbZS5qc3goY2Use3RvbmU6InVua25vd24iLGNoaWxkcmVuOmMoImFjY291bnRzLmRyYWZ0X3JldmlzaW9uIix7dmFsdWU6Yi5kYXRhLmRyYWZ0X3JldmlzaW9ufSl9KSxiLmRhdGEuc3RhdHVzIT09Im9rIiYmZS5qc3goSyx7c3RhdHVzOmIuZGF0YS5zdGF0dXN9KV19KV19KV19KSxtPT09InN0cmF0ZWd5IiYmZS5qc3goTWUse2FjY291bnQ6dCxkaWZmU3RhdGU6Yixjb25maWc6YSxlZGl0aW5nOm8sc2V0RWRpdGluZzpFLGVkaXRzOmcsc2V0RWRpdHM6Uyxjb25maXJtOmt9KSxtPT09ImNvbnRyb2xzIiYmZS5qc3goVWUse2FjY291bnQ6dCxjb25maWc6YSxjb25maXJtOmt9KSxtPT09Imhpc3RvcnkiJiZlLmpzeChHZSx7YWNjb3VudDp0fSldfSksVCYmZS5qc3goQWUse3JlcXVlc3Q6VCxvblJlc29sdmU6aH0pXX0pfWZ1bmN0aW9uIHR0KHthY2NvdW50OnQsdGFiOnN9KXtjb25zdCBhPUYoKSxuPXVlKCksW2wsX109ai51c2VTdGF0ZSgwKSxjPVYoKCk9Pk9lKCksW2xdKSxPPVYoKCk9PlRlKCIvYXBpL2NvbmZpZyIpLmNhdGNoKCgpPT5udWxsKSxbbF0pLHY9VigoKT0+UmUoKSxbbF0pLFQ9Ty5waGFzZT09PSJyZWFkeSI/Ty5kYXRhOm51bGwsaz1jLnBoYXNlPT09InJlYWR5Ij9jLmRhdGEuYWNjb3VudHM6W10saD10P0NlKGssdCk6dm9pZCAwLG89di5waGFzZT09PSJlcnJvciJ8fHYucGhhc2U9PT0icmVhZHkiJiZ2LmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIixFPWgmJnYucGhhc2U9PT0icmVhZHkiJiYhbz92LmRhdGEuYWNjb3VudHMuZmluZChkPT5kLmFjY291bnRfYWxpYXM9PT1oLmFjY291bnRfYWxpYXMmJmQucGxhdGZvcm09PT1oLnBsYXRmb3JtKTp2b2lkIDAsZz1kPT5uKHthY2NvdW50OmR9KTtsZXQgUztyZXR1cm4gYy5waGFzZT09PSJsb2FkaW5nIj9TPWUuanN4KFAse2hlaWdodDoyNDB9KTpjLnBoYXNlPT09ImVycm9yIj9TPWUuanN4KHose29uUmV0cnk6Yy5yZWxvYWR9KTprLmxlbmd0aD09PTA/Uz1lLmpzeChkZSx7dGl0bGU6YSgib3ZlcnZpZXcubm9fYWNjb3VudHMiKX0pOlM9ZS5qc3goJGUse2FjY291bnRzOmssY29uZmlnOlQsb25TZWxlY3Q6Z30pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlIixjaGlsZHJlbjpbZS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyIixjaGlsZHJlbjpbZS5qc3goImgxIix7Y2xhc3NOYW1lOiJwYWdlLXRpdGxlIixjaGlsZHJlbjphKCJhY2NvdW50cy50aXRsZSIpfSksYy5waGFzZT09PSJyZWFkeSImJmMuZGF0YS5zdGF0dXM9PT0icGFydGlhbCImJmUuanN4KEsse3N0YXR1czoicGFydGlhbCJ9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixvbkNsaWNrOigpPT5fKGQ9PmQrMSksY2hpbGRyZW46YSgiY29tbW9uLnJlZnJlc2giKX0pXX0pLGMucGhhc2U9PT0icmVhZHkiJiZjLmRhdGEudW5hc3NpZ25lZF9kZWNpc2lvbl9jb3VudD4wJiZlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixzdHlsZTp7bWFyZ2luOjB9LGNoaWxkcmVuOmEoImFjY291bnRzLnVuYXNzaWduZWRfbm90ZSIse2NvdW50OmMuZGF0YS51bmFzc2lnbmVkX2RlY2lzaW9uX2NvdW50fSl9KSwhaCYmZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46YSgiYWNjb3VudHMuc2VsZWN0X2FjY291bnQiKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOmBhY2NvdW50cy1zcGxpdCR7aD8iIGRldGFpbC1vcGVuIjoiIn1gLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1saXN0IixjaGlsZHJlbjpTfSksaCYmZS5qc3goSmUse2FjY291bnQ6aCx0YWI6cyxjb25maWc6VCx0b2RheVJ1bjpFLHRvZGF5RmFpbGVkOm8sb25CYWNrOigpPT5uKHthY2NvdW50Om51bGx9KX0sYCR7aC5wbGF0Zm9ybX0vJHtoLmFjY291bnRfYWxpYXN9YCldfSldfSl9ZXhwb3J0e3R0IGFzIGRlZmF1bHR9Owo=" }, "/v2/assets/AccountsPage-DrLvvAK1.css": { contentType: "text/css; charset=utf-8", base64: "LmFjY291bnRzLXNwbGl0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDMwMHB4LDQwMHB4KSAxZnI7Z2FwOjE2cHg7YWxpZ24taXRlbXM6c3RhcnR9LmFjY291bnRzLWxpc3QtY2FyZHN7ZGlzcGxheTpub25lfS5hY2NvdW50cy1zcGxpdDpub3QoLmRldGFpbC1vcGVuKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKX0uYWNjb3VudHMtbGlzdCwuYWNjb3VudHMtZGV0YWlse21pbi13aWR0aDowfS5hY2NvdW50cy1hbGlhcy1idXR0b257Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo2MDA7dGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6MH0uYWNjb3VudHMtYWxpYXMtYnV0dG9uOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmFjY291bnRzLW1vYmlsZS1iYWNre2Rpc3BsYXk6bm9uZTttYXJnaW4tYm90dG9tOjEycHh9LmFjY291bnRzLXN1bW1hcnktcm93c3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHh9LmFjY291bnRzLXN1bW1hcnktcm93e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtmb250LXNpemU6MTNweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXB9LmFjY291bnRzLXN1bW1hcnktcm93PnNwYW46Zmlyc3QtY2hpbGR7Y29sb3I6dmFyKC0tbXV0ZWQpfS5hY2NvdW50cy1maWVsZC1yb3dze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmFjY291bnRzLWZpZWxkLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgxNDBweCwyMjBweCkgMWZyO2dhcDoxMnB4O2FsaWduLWl0ZW1zOnN0YXJ0O3BhZGRpbmc6MTBweCAwO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfS5hY2NvdW50cy1maWVsZC1yb3c6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9LmFjY291bnRzLWZpZWxkLWxhYmVse2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTNweDtwYWRkaW5nLXRvcDo4cHh9LmFjY291bnRzLWZpZWxkLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21pbi13aWR0aDowfS5hY2NvdW50cy1maWVsZC12YWx1ZXtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0uYWNjb3VudHMtZmllbGQtY29udHJvbHtkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXB9LmFjY291bnRzLWZpZWxkLWNvbnRyb2wgLmlucHV0e21heC13aWR0aDoyODBweH0uYWNjb3VudHMtZmllbGQtZXJyb3J7Y29sb3I6dmFyKC0tc3RhdHVzLWVycm9yKTtmb250LXNpemU6MTJweH0uYWNjb3VudHMtZmllbGQtY3VycmVudHtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHh9LmFjY291bnRzLXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2dhcDo4cHg7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MTJweDtmbGV4LXdyYXA6d3JhcH0uYWNjb3VudHMtaW5saW5lLW5vdGV7Zm9udC1zaXplOjEzcHg7bWFyZ2luOjhweCAwfS5hY2NvdW50cy1pbmxpbmUtbm90ZS5lcnJvcntjb2xvcjp2YXIoLS1zdGF0dXMtZXJyb3IpfS5hY2NvdW50cy1pbmxpbmUtbm90ZS5zdWNjZXNze2NvbG9yOnZhcigtLXN0YXR1cy1vayl9LmFjY291bnRzLWRpZmYtc2VjdGlvbisuYWNjb3VudHMtZGlmZi1zZWN0aW9ue21hcmdpbi10b3A6MTJweH0uYWNjb3VudHMtZGlmZi1zZWN0aW9uIGgze21hcmdpbjowIDAgNnB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLW11dGVkKX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuYWNjb3VudHMtc3BsaXR7ZGlzcGxheTpibG9ja30uYWNjb3VudHMtbGlzdC10YWJsZXtkaXNwbGF5Om5vbmV9LmFjY291bnRzLWxpc3QtY2FyZHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4fS5hY2NvdW50cy1zcGxpdC5kZXRhaWwtb3BlbiAuYWNjb3VudHMtbGlzdHtkaXNwbGF5Om5vbmV9LmFjY291bnRzLXNwbGl0Om5vdCguZGV0YWlsLW9wZW4pIC5hY2NvdW50cy1kZXRhaWx7ZGlzcGxheTpub25lfS5hY2NvdW50cy1tb2JpbGUtYmFja3tkaXNwbGF5OmlubGluZS1mbGV4fS5hY2NvdW50cy1maWVsZC1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6NHB4fS5hY2NvdW50cy1maWVsZC1sYWJlbHtwYWRkaW5nLXRvcDowfS5hY2NvdW50cy1maWVsZC1jb250cm9sIC5pbnB1dHttYXgtd2lkdGg6bm9uZX19Cg==" }, - "/v2/assets/AccountsPage-Xskelp76.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e1EgYXMgb2UsayBhcyByZSxqIGFzIGUsdyBhcyBKLHIgYXMgaix1IGFzIEYsSCBhcyBYLGYgYXMgUCxFIGFzIHosQiBhcyBjZSxUIGFzIGllLFUgYXMgbGUsViBhcyBnZSxPIGFzIE5lLFcgYXMga2UsTCBhcyBILFggYXMgUSxpIGFzIGRlLFMgYXMgSyxlIGFzIHVlLFkgYXMgZWUsQSBhcyBTZSxaIGFzIENlLG8gYXMgT2UsbiBhcyBUZSxoIGFzIFJlfWZyb20iLi9pbmRleC1KNWZxejVodi5qcyI7aW1wb3J0e0EgYXMgJGV9ZnJvbSIuL0FjY291bnRHcm91cHMtQ0NsNFdUNzUuanMiO2ltcG9ydHt1IGFzIFZ9ZnJvbSIuL2hvb2tzLUQwb1M1dWJHLmpzIjtpbXBvcnR7RCBhcyBFZSxUIGFzIExlLHUgYXMgd2UsQyBhcyBBZX1mcm9tIi4vRGlhbG9nLUJXZmFRTHd0LmpzIjtpbXBvcnR7VCBhcyBEZX1mcm9tIi4vVGFicy1EYjd4M2h1aS5qcyI7Y29uc3QgSWU9WyJzdHJhdGVneSIsImRjYSIsImNhc2hfcmVzZXJ2ZSIsImluY29tZV9sYXllciIsIm9wdGlvbnNfbGF5ZXIiXTtmdW5jdGlvbiBCZSh0LHMpe3JldHVybiB0Py5wbGF0Zm9ybU1ldGE/LltzXT8ubGFiZWx8fHN9ZnVuY3Rpb24gdGUodCxzLGEpe3JldHVybiB0Py5hY2NvdW50T3B0aW9ucz8uW3NdPy5maW5kKGw9Pmwua2V5PT09YSk/LnRhcmdldF9uYW1lfHxhfWZ1bmN0aW9uIEZlKHQscyl7cmV0dXJuKHQ/LnN0cmF0ZWd5UHJvZmlsZXN8fFtdKS5maWx0ZXIoYT0+dHlwZW9mIGE/LnByb2ZpbGU9PSJzdHJpbmciJiZhLnByb2ZpbGUubGVuZ3RoPjApLm1hcChhPT4oe3Byb2ZpbGU6YS5wcm9maWxlLGxhYmVsOm9lKGEucHJvZmlsZSxzLHM9PT0iemgiP2EubGFiZWxfemg6YS5sYWJlbF9lbil9KSl9ZnVuY3Rpb24gRyh0LHMpe2NvbnN0IGE9dChzLmxhYmVsX2tleSk7cmV0dXJuIGE9PT1zLmxhYmVsX2tleT90KGBhY2NvdW50cy5maWVsZC4ke3MuZmllbGR9YCk6YX1mdW5jdGlvbiBZKHQscyl7cmV0dXJuIHQoYGFjY291bnRzLnNlY3Rpb24uJHtzfWApfWZ1bmN0aW9uIFcodCxzLGEsbj0hMSxsPSJlbiIpe3JldHVybiBuP3QoImNvbW1vbi51bmtub3duIik6YT09bnVsbHx8YT09PSIiP3QoImNvbW1vbi5uYSIpOnR5cGVvZiBhPT0iYm9vbGVhbiI/dChhPyJhY2NvdW50cy5ib29sLm9uIjoiYWNjb3VudHMuYm9vbC5vZmYiKTpzPT09ImRjYV9tb2RlIiYmKGE9PT0iZml4ZWQifHxhPT09InNtYXJ0Iik/dChgYWNjb3VudHMuZGNhX21vZGUuJHthfWApOnM9PT0ic3RyYXRlZ3lfcHJvZmlsZSI/b2UoU3RyaW5nKGEpLGwpOlN0cmluZyhhKX1mdW5jdGlvbiBzZSh0LHMpe2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLHQuZmllbGQpKXtjb25zdCBhPXNbdC5maWVsZF07cmV0dXJuIGE9PT1udWxsfHxhPT09dm9pZCAwP3QuY3VycmVudDphfXJldHVybiB0Lm92ZXJyaWRkZW4/dC5kcmFmdDp0LmN1cnJlbnR9ZnVuY3Rpb24gbmUodCl7cmV0dXJuIHQ9PW51bGw/bnVsbDp0eXBlb2YgdD09Im51bWJlciI/U3RyaW5nKHQpOnR9ZnVuY3Rpb24gYWUodCxzKXtjb25zdCBhPXt9O2Zvcihjb25zdCBuIG9mIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsbi5maWVsZCk/YVtuLmZpZWxkXT1uZShzW24uZmllbGRdKTpuLm92ZXJyaWRkZW4mJihhW24uZmllbGRdPW5lKG4uZHJhZnQpKTtyZXR1cm4gYX1mdW5jdGlvbiBaKHQpe2NvbnN0IHM9W107Zm9yKGNvbnN0IGEgb2YgSWUpe2NvbnN0IG49dC5maWx0ZXIobD0+bC5zZWN0aW9uPT09YSk7bi5sZW5ndGgmJnMucHVzaCh7c2VjdGlvbjphLHJvd3M6bn0pfXJldHVybiBzfWZ1bmN0aW9uIG1lKHQpe3JldHVybi9eXGQrKD86XC5cZCspPyQvLnRlc3QodCkmJk51bWJlci5pc0Zpbml0ZShOdW1iZXIodCkpfWZ1bmN0aW9uIHFlKHQpe2lmKCFtZSh0KSlyZXR1cm4hMTtjb25zdCBzPU51bWJlcih0KTtyZXR1cm4gcz49MCYmczw9MX1mdW5jdGlvbiBLZSh0KXtyZXR1cm4gdC5sZW5ndGg8PTMyJiYvXig/OjB8WzEtOV1cZCopKD86XC5cZCspPyQvLnRlc3QodCkmJk51bWJlci5pc0Zpbml0ZShOdW1iZXIodCkpJiZOdW1iZXIodCk+MH1jb25zdCBVPVsiZGNhX21vZGUiLCJkY2FfYmFzZV9pbnZlc3RtZW50X3VzZCJdO2Z1bmN0aW9uIE0odCxzKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscyl9ZnVuY3Rpb24gZmUoe3Jvd3M6dCx0OnN9KXtjb25zdCBhPXJlKCk7cmV0dXJuIGUuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOloodCkubWFwKG49PmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZGlmZi1zZWN0aW9uIixjaGlsZHJlbjpbZS5qc3goImgzIix7Y2hpbGRyZW46WShzLG4uc2VjdGlvbil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3dzIixjaGlsZHJlbjpuLnJvd3MubWFwKGw9PmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3ciLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtbGFiZWwiLGNoaWxkcmVuOkcocyxsKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1ib2R5IixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLXZhbHVlIixjaGlsZHJlbjpXKHMsbC5maWVsZCxsLmN1cnJlbnQsbC5jdXJyZW50X3N0YXR1cz09PSJ1bmtub3duIixhKX0pLGwub3ZlcnJpZGRlbiYmZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWN1cnJlbnQiLGNoaWxkcmVuOnMoImFjY291bnRzLmRyYWZ0X3ZhbHVlIix7dmFsdWU6VyhzLGwuZmllbGQsbC5kcmFmdCwhMSxhKX0pfSldfSldfSxsLmZpZWxkKSl9KV19LG4uc2VjdGlvbikpfSl9ZnVuY3Rpb24gVmUoe3Jvd3M6dCx0OnN9KXtyZXR1cm4gZS5qc3goZS5GcmFnbWVudCx7Y2hpbGRyZW46Wih0KS5tYXAoYT0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWRpZmYtc2VjdGlvbiIsY2hpbGRyZW46W2UuanN4KCJoMyIse2NoaWxkcmVuOlkocyxhLnNlY3Rpb24pfSksZS5qc3goRWUse3Jvd3M6YS5yb3dzfSldfSxhLnNlY3Rpb24pKX0pfWZ1bmN0aW9uIE1lKHthY2NvdW50OnQsZGlmZlN0YXRlOnMsY29uZmlnOmEsZWRpdGluZzpuLHNldEVkaXRpbmc6bCxlZGl0czpfLHNldEVkaXRzOmMsY29uZmlybTpPfSl7Y29uc3Qgdj1yZSgpLFQ9SihhKSxrPWoudXNlSWQoKSxoPXI9PmAke2t9LSR7cn1gLG89RigpLEU9WCgpLFtnLFNdPWoudXNlU3RhdGUoITEpLFtkLGJdPWoudXNlU3RhdGUoITEpLFtMLENdPWoudXNlU3RhdGUobnVsbCksW20sZl09ai51c2VTdGF0ZSh7fSk7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gZS5qc3goUCx7aGVpZ2h0OjIyMH0pO2lmKHMucGhhc2U9PT0iZXJyb3IiKXJldHVybiBlLmpzeCh6LHtvblJldHJ5OnMucmVsb2FkfSk7Y29uc3QgeD1zLmRhdGEsJD14LnJvd3Msdz14LmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCIsQT1GZShhLHYpLEQ9T2JqZWN0LmtleXMoXykubGVuZ3RoPjAscT0ocix1KT0+e2YoeT0+KHsuLi55LFtyXTp2b2lkIDB9KSksYyh5PT57Y29uc3QgaT17Li4ueSxbcl06dX07aWYoVS5pbmNsdWRlcyhyKSl7Y29uc3QgcD1yPT09ImRjYV9tb2RlIj8iZGNhX2Jhc2VfaW52ZXN0bWVudF91c2QiOiJkY2FfbW9kZSI7aWYoIU0oaSxwKSl7Y29uc3QgTj0kLmZpbmQoUj0+Ui5maWVsZD09PXApO04mJihpW3BdPU4ub3ZlcnJpZGRlbj9OLmRyYWZ0Ok4uY3VycmVudCl9fXJldHVybiBpfSl9LF9lPXI9PntmKHU9Pih7Li4udSxbcl06dm9pZCAwfSkpLGModT0+e2NvbnN0IHk9ey4uLnV9O3JldHVybiBkZWxldGUgeVtyXSxVLmluY2x1ZGVzKHIpJiZkZWxldGUgeVtyPT09ImRjYV9tb2RlIj8iZGNhX2Jhc2VfaW52ZXN0bWVudF91c2QiOiJkY2FfbW9kZSJdLHl9KX0saGU9cj0+e2lmKFUuaW5jbHVkZXMocikpe2YodT0+KHsuLi51LGRjYV9tb2RlOnZvaWQgMCxkY2FfYmFzZV9pbnZlc3RtZW50X3VzZDp2b2lkIDB9KSksYyh1PT4oey4uLnUsZGNhX21vZGU6bnVsbCxkY2FfYmFzZV9pbnZlc3RtZW50X3VzZDpudWxsfSkpO3JldHVybn1xKHIsbnVsbCl9LHllPSgpPT57Y29uc3Qgcj17fTtmb3IoY29uc3QgcCBvZiBPYmplY3Qua2V5cyhfKSl7Y29uc3QgTj1fW3BdO2lmKE49PW51bGwpY29udGludWU7Y29uc3QgUj1TdHJpbmcoTik7cD09PSJzdHJhdGVneV9wcm9maWxlIiYmIVIudHJpbSgpJiYocltwXT1vKCJhY2NvdW50cy5mb3JtLnNlbGVjdF9wcm9maWxlIikpLHA9PT0icmVzZXJ2ZWRfY2FzaF9mbG9vciImJiFtZShSKSYmKHJbcF09bygiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RlY2ltYWwiKSkscD09PSJyZXNlcnZlZF9jYXNoX3JhdGlvIiYmIXFlKFIpJiYocltwXT1vKCJhY2NvdW50cy5mb3JtLmludmFsaWRfcmF0aW8iKSkscD09PSJkY2FfYmFzZV9pbnZlc3RtZW50X3VzZCImJiFLZShSKSYmKHJbcF09bygiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RjYV9hbW91bnQiKSl9Y29uc3QgdT1hZSgkLF8pLHk9dHlwZW9mIHUuZGNhX21vZGU9PSJzdHJpbmciJiZ1LmRjYV9tb2RlLmxlbmd0aD4wLGk9dHlwZW9mIHUuZGNhX2Jhc2VfaW52ZXN0bWVudF91c2Q9PSJzdHJpbmciJiZ1LmRjYV9iYXNlX2ludmVzdG1lbnRfdXNkLmxlbmd0aD4wO3JldHVybiB5IT09aSYmKHIuZGNhX21vZGU9bygiYWNjb3VudHMuZm9ybS5kY2FfcGFpcl9yZXF1aXJlZCIpKSxmKHIpLE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTB9LGJlPWFzeW5jIHI9PntiKCEwKSxDKG51bGwpO2xldCB1O3RyeXtjb25zdCB5PWF3YWl0IGxlKHQucGxhdGZvcm0sdC5hY2NvdW50X2FsaWFzKTtpZigheS5pZGVudGl0eXx8dHlwZW9mIHkuaWRlbnRpdHkhPSJvYmplY3QifHxBcnJheS5pc0FycmF5KHkuaWRlbnRpdHkpKXRocm93IG5ldyBFcnJvcigiaWRlbnRpdHlfbWlzc2luZyIpO3U9eS5pZGVudGl0eX1jYXRjaHtDKHtraW5kOiJlcnJvciIsdGV4dDpvKCJlcnJvci5nZW5lcmljIil9KSxiKCExKTtyZXR1cm59dHJ5e2F3YWl0IGdlKHtwbGF0Zm9ybTp0LnBsYXRmb3JtLGtleTp0LmFjY291bnRfYWxpYXMsaWRlbnRpdHk6dSxleHBlY3RlZF9kcmFmdF9yZXZpc2lvbjpyLmRyYWZ0X3JldmlzaW9uLG92ZXJyaWRlczphZShyLnJvd3MsXyl9KSxjKHt9KSxsKCExKSxDKHtraW5kOiJzdWNjZXNzIix0ZXh0OmAke28oImFjY291bnRzLmRyYWZ0X3NhdmVkIil9ICR7bygiYWNjb3VudHMuZHJhZnRfbm90ZSIpfWB9KSxzLnJlbG9hZCgpfWNhdGNoKHkpe2lmKHkgaW5zdGFuY2VvZiBOZSYmeS5zdGF0dXM9PT00MDkpe2NvbnN0IGk9eS5wYXlsb2FkPy5lcnJvcixwPW8oaT09PSJhY2NvdW50X3NldHRpbmdzX2RyYWZ0X3JldmlzaW9uX2NvbmZsaWN0Ij8iYWNjb3VudHMuY29uZmxpY3QiOmk9PT0iYWNjb3VudF9zZXR0aW5nc19pZGVudGl0eV9jb25mbGljdCI/ImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0IjoiZXJyb3IuY29uZmxpY3QiKTtDKHtraW5kOiJlcnJvciIsdGV4dDpwfSkscy5yZWxvYWQoKX1lbHNlIEMoe2tpbmQ6ImVycm9yIix0ZXh0Om8oImFjY291bnRzLnNhdmVfdW5rbm93biIpfSl9ZmluYWxseXtiKCExKX19LHZlPWFzeW5jKCk9PntpZih5ZSgpKXtTKCEwKSxDKG51bGwpO3RyeXtjb25zdCByPWF3YWl0IGllKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKTtpZihyLmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCIpe0Moe2tpbmQ6ImVycm9yIix0ZXh0Om8oImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0Iil9KSxzLnJlbG9hZCgpO3JldHVybn1jb25zdCB1PXIucm93cy5maWx0ZXIoaT0+e2NvbnN0IHA9aS5vdmVycmlkZGVuP2kuZHJhZnQ6aS5jdXJyZW50LE49TShfLGkuZmllbGQpP19baS5maWVsZF06cDtyZXR1cm4gU3RyaW5nKE4/PyIiKSE9PVN0cmluZyhwPz8iIil9KS5tYXAoaT0+e2NvbnN0IHA9TShfLGkuZmllbGQpJiZfW2kuZmllbGRdPT09bnVsbCxOPXA/aS5jdXJyZW50OnNlKGksXyk7cmV0dXJue3NlY3Rpb246aS5zZWN0aW9uLGZpZWxkOmkuZmllbGQsbGFiZWw6RyhvLGkpLGJlZm9yZTppLmN1cnJlbnRfc3RhdHVzPT09InVua25vd24iP251bGw6aS5jdXJyZW50LGFmdGVyOnA/bygiYWNjb3VudHMuZm9ybS5pbmhlcml0Iik6TixhZmZlY3RzTGl2ZTppLmFmZmVjdHNfbGl2ZX19KTtpZighdS5sZW5ndGgpe0Uoe2tpbmQ6ImluZm8iLHRleHQ6bygiYWNjb3VudHMubm9fY2hhbmdlcyIpfSk7cmV0dXJufWF3YWl0IE8oe3RpdGxlOm8oImFjY291bnRzLmRpZmZfZGlhbG9nX3RpdGxlIiksdGFyZ2V0OlQuYWNjb3VudCh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksc3VtbWFyeTpvKCJhY2NvdW50cy5kcmFmdF9ub3RlIiksYm9keTplLmpzeChWZSx7cm93czp1LHQ6b30pLGFja0xhYmVsOnUuc29tZShpPT5pLmFmZmVjdHNMaXZlKT9vKCJhY2NvdW50cy5hY2tfbGl2ZSIpOnZvaWQgMCxjb25maXJtTGFiZWw6bygiYWNjb3VudHMuc2F2ZV9kcmFmdCIpLHRvbmU6Im5vcm1hbCJ9KSYmYXdhaXQgYmUocil9Y2F0Y2h7RSh7a2luZDoiZXJyb3IiLHRleHQ6bygiZXJyb3IuZ2VuZXJpYyIpfSl9ZmluYWxseXtTKCExKX19fSx4ZT1hc3luYygpPT57RCYmIWF3YWl0IE8oe3RpdGxlOm8oImNvbW1vbi51bnNhdmVkX2d1YXJkX3RpdGxlIiksc3VtbWFyeTpvKCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5IiksdG9uZToibm9ybWFsIn0pfHwoYyh7fSksZih7fSksbCghMSkpfSxqZT1yPT57Y29uc3QgdT1zZShyLF8pLHk9TShfLHIuZmllbGQpLGk9dT09bnVsbD8iIjpTdHJpbmcodSkscD1tW3IuZmllbGRdLE49e2lkOmgoci5maWVsZCksImFyaWEtaW52YWxpZCI6ISFwLCJhcmlhLWRlc2NyaWJlZGJ5IjpwP2Ake2goci5maWVsZCl9LWVycm9yYDp2b2lkIDB9O2xldCBSO2lmKHIuZmllbGQ9PT0ic3RyYXRlZ3lfcHJvZmlsZSIpe2NvbnN0IEk9QS5zb21lKEI9PkIucHJvZmlsZT09PWkpO1I9ZS5qc3hzKCJzZWxlY3QiLHsuLi5OLGNsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6Qj0+cShyLmZpZWxkLEIudGFyZ2V0LnZhbHVlKSxjaGlsZHJlbjpbIWkmJmUuanN4KCJvcHRpb24iLHt2YWx1ZToiIixkaXNhYmxlZDohMCxjaGlsZHJlbjpvKCJhY2NvdW50cy5mb3JtLnNlbGVjdF9wcm9maWxlIil9KSxpJiYhSSYmZS5qc3goIm9wdGlvbiIse3ZhbHVlOmksY2hpbGRyZW46aX0pLEEubWFwKEI9PmUuanN4KCJvcHRpb24iLHt2YWx1ZTpCLnByb2ZpbGUsY2hpbGRyZW46Qi5sYWJlbH0sQi5wcm9maWxlKSldfSl9ZWxzZSByLmZpZWxkPT09ImRjYV9tb2RlIj9SPWUuanN4cygic2VsZWN0Iix7Li4uTixjbGFzc05hbWU6ImlucHV0Iix2YWx1ZTppLG9uQ2hhbmdlOkk9PnEoci5maWVsZCxJLnRhcmdldC52YWx1ZSksY2hpbGRyZW46WyFpJiZlLmpzeCgib3B0aW9uIix7dmFsdWU6IiIsZGlzYWJsZWQ6ITAsY2hpbGRyZW46bygiY29tbW9uLm5hIil9KSxlLmpzeCgib3B0aW9uIix7dmFsdWU6ImZpeGVkIixjaGlsZHJlbjpvKCJhY2NvdW50cy5kY2FfbW9kZS5maXhlZCIpfSksZS5qc3goIm9wdGlvbiIse3ZhbHVlOiJzbWFydCIsY2hpbGRyZW46bygiYWNjb3VudHMuZGNhX21vZGUuc21hcnQiKX0pXX0pOnIuZmllbGQ9PT0iaW5jb21lX2xheWVyX2VuYWJsZWQifHxyLmZpZWxkPT09Im9wdGlvbl9vdmVybGF5X2VuYWJsZWQiP1I9ZS5qc3hzKCJzZWxlY3QiLHsuLi5OLGNsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6ST0+cShyLmZpZWxkLEkudGFyZ2V0LnZhbHVlPT09InRydWUiKSxjaGlsZHJlbjpbIWkmJmUuanN4KCJvcHRpb24iLHt2YWx1ZToiIixkaXNhYmxlZDohMCxjaGlsZHJlbjpvKCJjb21tb24ubmEiKX0pLGUuanN4KCJvcHRpb24iLHt2YWx1ZToidHJ1ZSIsY2hpbGRyZW46bygiYWNjb3VudHMuYm9vbC5vbiIpfSksZS5qc3goIm9wdGlvbiIse3ZhbHVlOiJmYWxzZSIsY2hpbGRyZW46bygiYWNjb3VudHMuYm9vbC5vZmYiKX0pXX0pOlI9ZS5qc3goImlucHV0Iix7Li4uTixjbGFzc05hbWU6ImlucHV0Iix2YWx1ZTppLGlucHV0TW9kZToiZGVjaW1hbCIsbWF4TGVuZ3RoOjMyLG9uQ2hhbmdlOkk9PnEoci5maWVsZCxJLnRhcmdldC52YWx1ZSl9KTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWJvZHkiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtY29udHJvbCIsY2hpbGRyZW46W1IseSYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSBidXR0b24tc20iLG9uQ2xpY2s6KCk9Pl9lKHIuZmllbGQpLGNoaWxkcmVuOm8oImFjY291bnRzLmZvcm0udW5kbyIpfSksIXkmJnIub3ZlcnJpZGRlbiYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSBidXR0b24tc20iLG9uQ2xpY2s6KCk9PmhlKHIuZmllbGQpLGNoaWxkcmVuOm8oImFjY291bnRzLmZvcm0uY2xlYXJfb3ZlcnJpZGUiKX0pXX0pLGUuanN4cygic3BhbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZmllbGQtY3VycmVudCIsY2hpbGRyZW46W28oImRlY2lzaW9ucy5jb2wuY3VycmVudCIpLCIgwrcgIixXKG8sci5maWVsZCxyLmN1cnJlbnQsci5jdXJyZW50X3N0YXR1cz09PSJ1bmtub3duIix2KV19KSxwJiZlLmpzeCgic3BhbiIse2lkOmAke2goci5maWVsZCl9LWVycm9yYCxjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWVycm9yIixjaGlsZHJlbjpwfSldfSl9O3JldHVybiBlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtdG9vbGJhciIsY2hpbGRyZW46W2UuanN4KGNlLHt0b25lOm4/ImFjY2VudCI6InVua25vd24iLGNoaWxkcmVuOm8obj8iYWNjb3VudHMuZWRpdGluZyI6ImFjY291bnRzLnZpZXdpbmciKX0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJhc29mIixjaGlsZHJlbjpvKCJhY2NvdW50cy5kcmFmdF9yZXZpc2lvbiIse3ZhbHVlOnguZHJhZnRfcmV2aXNpb259KX0pLGUuanN4KCJzcGFuIix7c3R5bGU6e2ZsZXg6MX19KSwhbiYmZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazooKT0+bCghMCksY2hpbGRyZW46bygiYWNjb3VudHMuZWRpdCIpfSksbiYmZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6Z3x8ZHx8dyxvbkNsaWNrOigpPT57dmUoKX0sY2hpbGRyZW46byhnPyJhY2NvdW50cy5jaGVja2luZyI6ImFjY291bnRzLmNoZWNrX2NoYW5nZXMiKX0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLGRpc2FibGVkOmd8fGQsb25DbGljazooKT0+e3hlKCl9LGNoaWxkcmVuOm8oImNvbW1vbi5jYW5jZWwiKX0pXX0pXX0pLHcmJmUuanN4cygicCIse2NsYXNzTmFtZToiYWNjb3VudHMtaW5saW5lLW5vdGUgZXJyb3IiLHJvbGU6ImFsZXJ0IixjaGlsZHJlbjpbbygiYWNjb3VudHMuaWRlbnRpdHlfY29uZmxpY3QiKSwiICIsZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJhY2NvdW50cy1hbGlhcy1idXR0b24iLG9uQ2xpY2s6cy5yZWxvYWQsY2hpbGRyZW46bygiY29tbW9uLnJlZnJlc2giKX0pXX0pLEwmJmUuanN4cygicCIse2NsYXNzTmFtZTpgYWNjb3VudHMtaW5saW5lLW5vdGUgJHtMLmtpbmR9YCxyb2xlOiJzdGF0dXMiLGNoaWxkcmVuOltMLnRleHQsIiAiLEwua2luZD09PSJlcnJvciImJmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYWNjb3VudHMtYWxpYXMtYnV0dG9uIixvbkNsaWNrOnMucmVsb2FkLGNoaWxkcmVuOm8oImNvbW1vbi5yZWZyZXNoIil9KV19KSxkJiZlLmpzeCgicCIse2NsYXNzTmFtZToiYWNjb3VudHMtaW5saW5lLW5vdGUiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46bygiYWNjb3VudHMuc2F2aW5nIil9KSxuP1ooJCkubWFwKHI9PmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiYWNjb3VudHMtZGlmZi1zZWN0aW9uIixjaGlsZHJlbjpbZS5qc3goImgzIix7Y2hpbGRyZW46WShvLHIuc2VjdGlvbil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3dzIixjaGlsZHJlbjpyLnJvd3MubWFwKHU9PmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1maWVsZC1yb3ciLGNoaWxkcmVuOltlLmpzeCgibGFiZWwiLHtjbGFzc05hbWU6ImFjY291bnRzLWZpZWxkLWxhYmVsIixodG1sRm9yOmgodS5maWVsZCksY2hpbGRyZW46RyhvLHUpfSksamUodSldfSx1LmZpZWxkKSl9KV19LHIuc2VjdGlvbikpOmUuanN4KGZlLHtyb3dzOiQsdDpvfSldfSl9ZnVuY3Rpb24gUGUoe2NoaWxkcmVuOnR9KXtjb25zdCBzPUYoKTtyZXR1cm4gZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJkYW5nZXItem9uZSIsImFyaWEtbGFiZWwiOnMoImNvbnRyb2xzLnRpdGxlIiksY2hpbGRyZW46W2UuanN4KCJoMyIse2NsYXNzTmFtZToiZGFuZ2VyLXpvbmUtdGl0bGUiLGNoaWxkcmVuOnMoImNvbnRyb2xzLnRpdGxlIil9KSxlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixzdHlsZTp7bWFyZ2luOjB9LGNoaWxkcmVuOnMoImNvbnRyb2xzLmRhbmdlcl9ub3RlIil9KSx0XX0pfWZ1bmN0aW9uIHplKHt0aXRsZTp0LHN1bW1hcnk6cyxhY3Rpb246YSx1bmF2YWlsYWJsZVJlYXNvbjpufSl7Y29uc3QgbD1GKCk7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJkYW5nZXItcm93IixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRhbmdlci1yb3ctdGV4dCIsY2hpbGRyZW46W2UuanN4KCJzdHJvbmciLHtjaGlsZHJlbjp0fSksZS5qc3goInAiLHtjaGlsZHJlbjpzfSksbiYmZS5qc3goInAiLHtjaGlsZHJlbjpsKCJjb250cm9scy51bmF2YWlsYWJsZSIse3JlYXNvbjpufSl9KV19KSxlLmpzeCgiZGl2Iix7Y2hpbGRyZW46YX0pXX0pfWNvbnN0IEhlPVt7bmFtZToiZW5hYmxlIix0aXRsZUtleToiY29udHJvbHMuZW5hYmxlIixzdW1tYXJ5S2V5OiJjb250cm9scy5lbmFibGVfc3VtbWFyeSJ9LHtuYW1lOiJzdG9wIix0aXRsZUtleToiY29udHJvbHMuc3RvcCIsc3VtbWFyeUtleToiY29udHJvbHMuc3RvcF9zdW1tYXJ5In0se25hbWU6InJlc3VtZSIsdGl0bGVLZXk6ImNvbnRyb2xzLnJlc3VtZSIsc3VtbWFyeUtleToiY29udHJvbHMucmVzdW1lX3N1bW1hcnkifSx7bmFtZToiYXBwcm92ZV9hcHBsaWNhdGlvbiIsdGl0bGVLZXk6ImNvbnRyb2xzLmFwcHJvdmVfYXBwbGljYXRpb24iLHN1bW1hcnlLZXk6ImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSJ9XTtmdW5jdGlvbiBVZSh7YWNjb3VudDp0LGNvbmZpZzpzLGNvbmZpcm06YX0pe2NvbnN0IG49RigpLGw9WCgpLF89SihzKSxjPVYoKCk9PmtlKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxbdC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm1dKSxbTyx2XT1qLnVzZVN0YXRlKG51bGwpLFtULGtdPWoudXNlU3RhdGUoe30pO2lmKGMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KFAse2hlaWdodDoyMDB9KTtpZihjLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goeix7b25SZXRyeTpjLnJlbG9hZH0pO2NvbnN0IGg9Yy5kYXRhLG89KCk9PntrKHt9KSxjLnJlbG9hZCgpfSxFPW09Pntjb25zdCBmPWByZWFzb24uJHttfWAseD1uKGYpO3JldHVybiB4PT09Zj9tOnh9LGc9KG0sZik9PntrKHg9Pih7Li4ueCxbbV06Zj8ic3VibWl0dGVkIjoidW5rbm93biJ9KSksbCh7a2luZDpmPyJzdWNjZXNzIjoiZXJyb3IiLHRleHQ6bihmPyJjb250cm9scy5zdWJtaXR0ZWQiOiJjb250cm9scy51bmtub3duX3Jlc3VsdCIpfSl9LEM9e2VuYWJsZTphc3luYygpPT57YXdhaXQgYSh7dGl0bGU6bigiY29udHJvbHMuY29uZmlybS5lbmFibGVfdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLmVuYWJsZV9zdW1tYXJ5IiksY29uc2VxdWVuY2U6bigiY29udHJvbHMuZW5hYmxlX25vdGUiKSx0b25lOiJub3JtYWwiLGNvbmZpcm1MYWJlbDpuKCJjb21tb24uY2xvc2UiKX0pfSxzdG9wOmFzeW5jKCk9PntpZihhd2FpdCBhKHt0aXRsZTpuKCJjb250cm9scy5zdG9wX2NvbmZpcm1fdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSIpLGNvbnNlcXVlbmNlOm4oImNvbnRyb2xzLnN0b3BfY29uc2VxdWVuY2UiKSx0b25lOiJkYW5nZXIiLGNvbmZpcm1MYWJlbDpuKCJjb250cm9scy5zdG9wIiksdHlwZVRvQ29uZmlybTp7bGFiZWw6bigiY29udHJvbHMuc3RvcF90eXBlX2FsaWFzIix7YWxpYXM6dC5hY2NvdW50X2FsaWFzfSksZXhwZWN0ZWQ6dC5hY2NvdW50X2FsaWFzLG1pc21hdGNoOm4oImNvbnRyb2xzLmFsaWFzX21pc21hdGNoIil9fSkpe3YoInN0b3AiKTt0cnl7YXdhaXQgSCgiL2FwaS9ydW50aW1lLXN0b3AiLHtwbGF0Zm9ybTp0LnBsYXRmb3JtLHRhcmdldF9uYW1lOnRlKHMsdC5wbGF0Zm9ybSx0LmFjY291bnRfYWxpYXMpLGNvbmZpcm06IlNUT1BfT05MWSJ9KSxnKCJzdG9wIiwhMCl9Y2F0Y2h7Zygic3RvcCIsITEpfWZpbmFsbHl7dihudWxsKX19fSxyZXN1bWU6YXN5bmMoKT0+e2NvbnN0IG09aC5yZXN1bWVfYmluZGluZz8ucnVudGltZV90YXJnZXRfc2hhMjU2O2lmKCEodHlwZW9mIG0hPSJzdHJpbmcifHwhbXx8IWF3YWl0IGEoe3RpdGxlOm4oImNvbnRyb2xzLmNvbmZpcm0ucmVzdW1lX3RpdGxlIiksdGFyZ2V0Ol8uYWNjb3VudCh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksc3VtbWFyeTpuKCJjb250cm9scy5yZXN1bWVfc3VtbWFyeSIpLHRvbmU6ImRhbmdlciIsY29uZmlybUxhYmVsOm4oImNvbnRyb2xzLnJlc3VtZSIpfSkpKXt2KCJyZXN1bWUiKTt0cnl7YXdhaXQgSCgiL2FwaS9ydW50aW1lLXJlc3VtZSIse3BsYXRmb3JtOnQucGxhdGZvcm0sdGFyZ2V0X25hbWU6dGUocyx0LnBsYXRmb3JtLHQuYWNjb3VudF9hbGlhcykscnVudGltZV90YXJnZXRfc2hhMjU2Om0sY29uZmlybToiUkVTVU1FX0VYSVNUSU5HIn0pLGcoInJlc3VtZSIsITApfWNhdGNoe2coInJlc3VtZSIsITEpfWZpbmFsbHl7dihudWxsKX19fSxhcHByb3ZlX2FwcGxpY2F0aW9uOmFzeW5jKCk9PntpZihhd2FpdCBhKHt0aXRsZTpuKCJjb250cm9scy5jb25maXJtLmFwcHJvdmVfdGl0bGUiKSx0YXJnZXQ6Xy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSxzdW1tYXJ5Om4oImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSIpLHRvbmU6ImRhbmdlciIsY29uZmlybUxhYmVsOm4oImNvbnRyb2xzLmFwcHJvdmVfYXBwbGljYXRpb24iKX0pKXt2KCJhcHByb3ZlX2FwcGxpY2F0aW9uIik7dHJ5e2NvbnN0IGY9YXdhaXQgbGUodC5wbGF0Zm9ybSx0LmFjY291bnRfYWxpYXMpLHg9Zi5kcmFmdD8ub3ZlcnJpZGVzfHx7fSwkPU9iamVjdC5rZXlzKHgpLHc9dHlwZW9mIHguc3RyYXRlZ3lfcHJvZmlsZT09InN0cmluZyI/eC5zdHJhdGVneV9wcm9maWxlLnRyaW0oKToiIixBPWYuZWZmZWN0aXZlPy5zdHJhdGVneV9wcm9maWxlLEQ9QT8uc3RhdHVzPT09Imtub3duIiYmdHlwZW9mIEEudmFsdWU9PSJzdHJpbmciP0EudmFsdWUudHJpbSgpOiIiO2lmKCEhIShmLmlkZW50aXR5JiZOdW1iZXIuaXNTYWZlSW50ZWdlcihmLmluc3RhbmNlX3JldmlzaW9uKSYmTnVtYmVyLmlzU2FmZUludGVnZXIoZi5kcmFmdD8ucmV2aXNpb24pJiYkLmxlbmd0aD09PTEmJiRbMF09PT0ic3RyYXRlZ3lfcHJvZmlsZSImJncmJkQmJnchPT1EKSl7bCh7a2luZDoiZXJyb3IiLHRleHQ6bigiY29udHJvbHMuYXBwcm92ZV9ub3RfcmVhZHkiKX0pO3JldHVybn1hd2FpdCBIKCIvYXBpL2FjY291bnQtc2V0dGluZ3MvcHJvZmlsZS1hcHBsaWNhdGlvbi9hcHByb3ZlIix7cGxhdGZvcm06dC5wbGF0Zm9ybSxrZXk6dC5hY2NvdW50X2FsaWFzLHJlcXVlc3Rfa2V5OmNyeXB0by5yYW5kb21VVUlEKCksaWRlbnRpdHk6Zi5pZGVudGl0eSxleHBlY3RlZF9pbnN0YW5jZV9yZXZpc2lvbjpmLmluc3RhbmNlX3JldmlzaW9uLGV4cGVjdGVkX2RyYWZ0X3JldmlzaW9uOmYuZHJhZnQ/LnJldmlzaW9uLG9sZF9wcm9maWxlOkQsbmV3X3Byb2ZpbGU6d30pLGcoImFwcHJvdmVfYXBwbGljYXRpb24iLCEwKX1jYXRjaHtnKCJhcHByb3ZlX2FwcGxpY2F0aW9uIiwhMSl9ZmluYWxseXt2KG51bGwpfX19fTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeChQZSx7Y2hpbGRyZW46SGUubWFwKCh7bmFtZTptLHRpdGxlS2V5OmYsc3VtbWFyeUtleTp4fSk9Pntjb25zdCAkPWguYWN0aW9uc1ttXSx3PVRbbV0sQT1PIT09bnVsbHx8ISF3fHwhJC5lbmFibGVkLEQ9dz9uKHc9PT0ic3VibWl0dGVkIj8iY29udHJvbHMuc3VibWl0dGVkIjoiY29udHJvbHMudW5rbm93bl9yZXN1bHQiKTokLmVuYWJsZWQ/bnVsbDpFKCQucmVhc29uKTtyZXR1cm4gZS5qc3goemUse3RpdGxlOm4oZiksc3VtbWFyeTpuKHgpLHVuYXZhaWxhYmxlUmVhc29uOkQsYWN0aW9uOmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgYnV0dG9uICR7bT09PSJzdG9wInx8bT09PSJyZXN1bWUiPyJidXR0b24tZGFuZ2VyLW91dGxpbmUiOiJidXR0b24tc2Vjb25kYXJ5In1gLGRpc2FibGVkOkEsb25DbGljazooKT0+e0NbbV0oKX0sY2hpbGRyZW46bihPPT09bT8iY29udHJvbHMuc3VibWl0dGluZyI6Zil9KX0sbSl9KX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYWNjb3VudHMtYWxpYXMtYnV0dG9uIixvbkNsaWNrOm8sY2hpbGRyZW46bigiY29tbW9uLnJlZnJlc2giKX0pfSldfSl9ZnVuY3Rpb24gR2Uoe2FjY291bnQ6dH0pe2NvbnN0IHM9RigpLGE9WCgpLG49VigoKT0+USh0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybSksW3QuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtXSksW2wsX109ai51c2VTdGF0ZShbXSksW2MsT109ai51c2VTdGF0ZShudWxsKSxbdixUXT1qLnVzZVN0YXRlKG51bGwpLFtrLGhdPWoudXNlU3RhdGUoITEpO2lmKGoudXNlRWZmZWN0KCgpPT57bi5waGFzZT09PSJyZWFkeSImJihfKG4uZGF0YS5pdGVtcyksTyhuLmRhdGEubmV4dF9jdXJzb3IpLFQobi5kYXRhLmF2YWlsYWJpbGl0eSkpfSxbbi5waGFzZSxuLmRhdGFdKSxuLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChQLHtoZWlnaHQ6MjAwfSk7aWYobi5waGFzZT09PSJlcnJvciIpcmV0dXJuIGUuanN4KHose29uUmV0cnk6bi5yZWxvYWR9KTtjb25zdCBvPWFzeW5jKCk9PntpZihjKXtoKCEwKTt0cnl7Y29uc3QgZD1hd2FpdCBRKHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtLDI1LGMpO18oYj0+Wy4uLmIsLi4uZC5pdGVtc10pLE8oZC5uZXh0X2N1cnNvciksVChkLmF2YWlsYWJpbGl0eSl9Y2F0Y2h7YSh7a2luZDoiZXJyb3IiLHRleHQ6cygiZXJyb3IuZ2VuZXJpYyIpfSl9ZmluYWxseXtoKCExKX19fSxFPWQ9PmQuZXZlbnQ9PT0iZHJhZnRfc2F2ZWQiP3MoImFjY291bnRzLmV2ZW50LmRyYWZ0X3NhdmVkIik6ZC5ldmVudD09PSJhcHByb3ZlZCI/cygiYWNjb3VudHMuZXZlbnQuYXBwcm92ZWQiKTpzKCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIiksZz1sLm1hcChkPT57Y29uc3QgYj1bZC5hY3Rvcl9hbGlhc3x8cygiYWNjb3VudHMuZXZlbnQudW5yZWNvcmRlZCIpLGQuZHJhZnRfcmV2aXNpb249PT1udWxsP251bGw6cygiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iLHt2YWx1ZTpkLmRyYWZ0X3JldmlzaW9ufSksZC5zb3VyY2U/bnVsbDpzKCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIikscygiZGVjaXNpb25zLnJlZiIse2lkOmQuc2hvcnRfaWR9KV0uZmlsdGVyKEJvb2xlYW4pLEw9Yi5maWx0ZXIoKEMsbSk9PkMhPT1iW20tMV0pLmpvaW4oIiDCtyAiKTtyZXR1cm57aWQ6ZC5pZCx0aW1lOmQudGltZSx0aXRsZTpFKGQpLGRldGFpbDpMfX0pLFM9dj8uZWZmZWN0X3ZlcmlmaWNhdGlvbjtyZXR1cm4gZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJhY2NvdW50cy50YWIuaGlzdG9yeSIpfSksbC5sZW5ndGg9PT0wP2UuanN4KGRlLHt0aXRsZTpzKCJhY2NvdW50cy5oaXN0b3J5LmVtcHR5Iil9KTplLmpzeChMZSx7aXRlbXM6Z30pLGMmJmUuanN4KCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEyfSxjaGlsZHJlbjplLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixkaXNhYmxlZDprLG9uQ2xpY2s6KCk9PntvKCl9LGNoaWxkcmVuOnMoaz8iY29tbW9uLmxvYWRpbmciOiJjb21tb24ubG9hZF9tb3JlIil9KX0pLFMmJlMuc3RhdHVzIT09Im9rIiYmZS5qc3hzKCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOltlLmpzeChLLHtzdGF0dXM6Uy5zdGF0dXMscmVhc29uOlMudW5hdmFpbGFibGVfcmVhc29ufSksIiAiLHMoInJlYXNvbi5lZmZlY3RfdmVyaWZpY2F0aW9uX25vdF9yZWNvcmRlZCIpXX0pXX0pfWNvbnN0IHBlPVsib3ZlcnZpZXciLCJzdHJhdGVneSIsImNvbnRyb2xzIiwiaGlzdG9yeSJdO2Z1bmN0aW9uIFdlKHQpe3JldHVybiBwZS5pbmNsdWRlcyh0fHwiIik/dDoib3ZlcnZpZXcifWZ1bmN0aW9uIEplKHthY2NvdW50OnQsdGFiOnMsY29uZmlnOmEsdG9kYXlSdW46bix0b2RheUZhaWxlZDpsLG9uQmFjazpffSl7Y29uc3QgYz1GKCksTz1KKGEpLHY9dWUoKSx7Y29uZmlybVJlcXVlc3Q6VCxjb25maXJtOmsscmVzb2x2ZUNvbmZpcm06aH09d2UoKSxbbyxFXT1qLnVzZVN0YXRlKCExKSxbZyxTXT1qLnVzZVN0YXRlKHt9KSxkPW8mJk9iamVjdC5rZXlzKGcpLmxlbmd0aD4wLGI9VigoKT0+aWUodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pLFt0LmFjY291bnRfYWxpYXMsdC5wbGF0Zm9ybV0pLEw9ai51c2VSZWYoayk7TC5jdXJyZW50PWs7Y29uc3QgQz1qLnVzZVJlZihjKTtDLmN1cnJlbnQ9YyxqLnVzZUVmZmVjdCgoKT0+e2lmKGQpcmV0dXJuIGVlKCgpPT5MLmN1cnJlbnQoe3RpdGxlOkMuY3VycmVudCgiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiKSxzdW1tYXJ5OkMuY3VycmVudCgiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfYm9keSIpLHRvbmU6Im5vcm1hbCJ9KSksKCk9PmVlKG51bGwpfSxbZF0pO2NvbnN0IG09V2UocyksZj1sP2UuanN4KEsse3N0YXR1czoicmVhZF9mYWlsZWQifSk6bj9lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KEsse3N0YXR1czpuLnN0YXR1cyxyZWFzb246bi51bmF2YWlsYWJsZV9yZWFzb259KSxlLmpzeChTZSx7dmFsdWU6bi5hc19vZn0pXX0pOmUuanN4KEsse3N0YXR1czoibm9fZGF0YSJ9KTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLWRldGFpbCBzZWN0aW9uLXN0YWNrIixjaGlsZHJlbjpbZS5qc3goImRpdiIse2NoaWxkcmVuOmUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSBhY2NvdW50cy1tb2JpbGUtYmFjayIsb25DbGljazpfLGNoaWxkcmVuOlsi4oaQICIsYygiYWNjb3VudHMuYmFja190b19saXN0IildfSl9KSxlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLHRpdGxlOmAke3QucGxhdGZvcm19OiR7dC5hY2NvdW50X2FsaWFzfWAsY2hpbGRyZW46Ty5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1zdW1tYXJ5LXJvd3MiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudHMtc3VtbWFyeS1yb3ciLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NoaWxkcmVuOmMoImNvbW1vbi5wbGF0Zm9ybSIpfSksZS5qc3goInNwYW4iLHtjaGlsZHJlbjpCZShhLHQucGxhdGZvcm0pfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImFjY291bnRzLXN1bW1hcnktcm93IixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjaGlsZHJlbjpjKCJhY2NvdW50cy5ydW5fc3RhdGUiKX0pLGUuanN4KCJzcGFuIix7c3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixnYXA6OCxhbGlnbkl0ZW1zOiJjZW50ZXIiLGZsZXhXcmFwOiJ3cmFwIn0sY2hpbGRyZW46Zn0pXX0pXX0pXX0pLGUuanN4KERlLHtpZDoiYWNjb3VudC1kZXRhaWwiLGl0ZW1zOnBlLm1hcCh4PT4oe2lkOngsbGFiZWw6YyhgYWNjb3VudHMudGFiLiR7eH1gKX0pKSxhY3RpdmU6bSxvbkNoYW5nZTp4PT52KHt0YWI6eH0pLGFyaWFMYWJlbDpjKCJhY2NvdW50cy50aXRsZSIpfSksZS5qc3hzKCJkaXYiLHtpZDoiYWNjb3VudC1kZXRhaWwtcGFuZWwiLGNsYXNzTmFtZToic2VjdGlvbi1zdGFjayIscm9sZToidGFicGFuZWwiLCJhcmlhLWxhYmVsbGVkYnkiOmBhY2NvdW50LWRldGFpbC10YWItJHttfWAsdGFiSW5kZXg6MCxjaGlsZHJlbjpbbT09PSJvdmVydmlldyImJmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YygiYWNjb3VudHMudGFiLm92ZXJ2aWV3Iil9KSxiLnBoYXNlPT09ImxvYWRpbmciJiZlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJza2VsZXRvbiIsc3R5bGU6e2hlaWdodDoyMDB9LCJhcmlhLWhpZGRlbiI6InRydWUifSksYi5waGFzZT09PSJlcnJvciImJmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1zdGF0ZSIscm9sZToiYWxlcnQiLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci10aXRsZSIsY2hpbGRyZW46Yygic3RhdGUucmVhZF9mYWlsZWQiKX0pLGUuanN4KCJkaXYiLHtjaGlsZHJlbjpjKCJlcnJvci5nZW5lcmljIil9KSxlLmpzeCgiZGl2Iix7c3R5bGU6e21hcmdpblRvcDoxMn0sY2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazpiLnJlbG9hZCxjaGlsZHJlbjpjKCJjb21tb24ucmV0cnkiKX0pfSldfSksYi5waGFzZT09PSJyZWFkeSImJmUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbYi5kYXRhLmlkZW50aXR5X3N0YXR1cz09PSJpZGVudGl0eV9jb25mbGljdCImJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJhY2NvdW50cy1pbmxpbmUtbm90ZSBlcnJvciIscm9sZToiYWxlcnQiLGNoaWxkcmVuOmMoImFjY291bnRzLmlkZW50aXR5X2NvbmZsaWN0Iil9KSxlLmpzeChmZSx7cm93czpiLmRhdGEucm93cyx0OmN9KSxlLmpzeHMoInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGdhcDo4LGFsaWduSXRlbXM6ImNlbnRlciIsZmxleFdyYXA6IndyYXAifSxjaGlsZHJlbjpbZS5qc3goY2Use3RvbmU6InVua25vd24iLGNoaWxkcmVuOmMoImFjY291bnRzLmRyYWZ0X3JldmlzaW9uIix7dmFsdWU6Yi5kYXRhLmRyYWZ0X3JldmlzaW9ufSl9KSxiLmRhdGEuc3RhdHVzIT09Im9rIiYmZS5qc3goSyx7c3RhdHVzOmIuZGF0YS5zdGF0dXN9KV19KV19KV19KSxtPT09InN0cmF0ZWd5IiYmZS5qc3goTWUse2FjY291bnQ6dCxkaWZmU3RhdGU6Yixjb25maWc6YSxlZGl0aW5nOm8sc2V0RWRpdGluZzpFLGVkaXRzOmcsc2V0RWRpdHM6Uyxjb25maXJtOmt9KSxtPT09ImNvbnRyb2xzIiYmZS5qc3goVWUse2FjY291bnQ6dCxjb25maWc6YSxjb25maXJtOmt9KSxtPT09Imhpc3RvcnkiJiZlLmpzeChHZSx7YWNjb3VudDp0fSldfSksVCYmZS5qc3goQWUse3JlcXVlc3Q6VCxvblJlc29sdmU6aH0pXX0pfWZ1bmN0aW9uIHR0KHthY2NvdW50OnQsdGFiOnN9KXtjb25zdCBhPUYoKSxuPXVlKCksW2wsX109ai51c2VTdGF0ZSgwKSxjPVYoKCk9Pk9lKCksW2xdKSxPPVYoKCk9PlRlKCIvYXBpL2NvbmZpZyIpLmNhdGNoKCgpPT5udWxsKSxbbF0pLHY9VigoKT0+UmUoKSxbbF0pLFQ9Ty5waGFzZT09PSJyZWFkeSI/Ty5kYXRhOm51bGwsaz1jLnBoYXNlPT09InJlYWR5Ij9jLmRhdGEuYWNjb3VudHM6W10saD10P0NlKGssdCk6dm9pZCAwLG89di5waGFzZT09PSJlcnJvciJ8fHYucGhhc2U9PT0icmVhZHkiJiZ2LmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIixFPWgmJnYucGhhc2U9PT0icmVhZHkiJiYhbz92LmRhdGEuYWNjb3VudHMuZmluZChkPT5kLmFjY291bnRfYWxpYXM9PT1oLmFjY291bnRfYWxpYXMmJmQucGxhdGZvcm09PT1oLnBsYXRmb3JtKTp2b2lkIDAsZz1kPT5uKHthY2NvdW50OmR9KTtsZXQgUztyZXR1cm4gYy5waGFzZT09PSJsb2FkaW5nIj9TPWUuanN4KFAse2hlaWdodDoyNDB9KTpjLnBoYXNlPT09ImVycm9yIj9TPWUuanN4KHose29uUmV0cnk6Yy5yZWxvYWR9KTprLmxlbmd0aD09PTA/Uz1lLmpzeChkZSx7dGl0bGU6YSgib3ZlcnZpZXcubm9fYWNjb3VudHMiKX0pOlM9ZS5qc3goJGUse2FjY291bnRzOmssY29uZmlnOlQsb25TZWxlY3Q6Z30pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlIixjaGlsZHJlbjpbZS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyIixjaGlsZHJlbjpbZS5qc3goImgxIix7Y2xhc3NOYW1lOiJwYWdlLXRpdGxlIixjaGlsZHJlbjphKCJhY2NvdW50cy50aXRsZSIpfSksYy5waGFzZT09PSJyZWFkeSImJmMuZGF0YS5zdGF0dXM9PT0icGFydGlhbCImJmUuanN4KEsse3N0YXR1czoicGFydGlhbCJ9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixvbkNsaWNrOigpPT5fKGQ9PmQrMSksY2hpbGRyZW46YSgiY29tbW9uLnJlZnJlc2giKX0pXX0pLGMucGhhc2U9PT0icmVhZHkiJiZjLmRhdGEudW5hc3NpZ25lZF9kZWNpc2lvbl9jb3VudD4wJiZlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixzdHlsZTp7bWFyZ2luOjB9LGNoaWxkcmVuOmEoImFjY291bnRzLnVuYXNzaWduZWRfbm90ZSIse2NvdW50OmMuZGF0YS51bmFzc2lnbmVkX2RlY2lzaW9uX2NvdW50fSl9KSwhaCYmZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46YSgiYWNjb3VudHMuc2VsZWN0X2FjY291bnQiKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOmBhY2NvdW50cy1zcGxpdCR7aD8iIGRldGFpbC1vcGVuIjoiIn1gLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJhY2NvdW50cy1saXN0IixjaGlsZHJlbjpTfSksaCYmZS5qc3goSmUse2FjY291bnQ6aCx0YWI6cyxjb25maWc6VCx0b2RheVJ1bjpFLHRvZGF5RmFpbGVkOm8sb25CYWNrOigpPT5uKHthY2NvdW50Om51bGx9KX0sYCR7aC5wbGF0Zm9ybX0vJHtoLmFjY291bnRfYWxpYXN9YCldfSldfSl9ZXhwb3J0e3R0IGFzIGRlZmF1bHR9Owo=" }, - "/v2/assets/DataTable-DM6W3QR1.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgcCxyIGFzIG8saiBhcyB0LGkgYXMgZ31mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2Z1bmN0aW9uIE4oe2NvbHVtbnM6Yyxyb3dzOm4scm93S2V5OnUsZW1wdHlLZXk6eD0ic3RhdGUubm9fZGF0YSIsZGVmYXVsdFNvcnQ6YixjYXB0aW9uOmR9KXtjb25zdCBoPXAoKSxbYSxtXT1vLnVzZVN0YXRlKGJ8fG51bGwpLGY9by51c2VNZW1vKCgpPT57aWYoIWEpcmV0dXJuIG47Y29uc3QgZT1jLmZpbmQocz0+cy5pZD09PWEuY29sdW1uKTtpZighZT8uc29ydFZhbHVlKXJldHVybiBuO2NvbnN0IHI9YS5kaXJlY3Rpb249PT0iYXNjIj8xOi0xO3JldHVyblsuLi5uXS5zb3J0KChzLGopPT57Y29uc3QgaT1lLnNvcnRWYWx1ZShzKSxsPWUuc29ydFZhbHVlKGopO3JldHVybiBpPT09bnVsbCYmbD09PW51bGw/MDppPT09bnVsbD8xOmw9PT1udWxsPy0xOnR5cGVvZiBpPT0ibnVtYmVyIiYmdHlwZW9mIGw9PSJudW1iZXIiPyhpLWwpKnI6U3RyaW5nKGkpLmxvY2FsZUNvbXBhcmUoU3RyaW5nKGwpKSpyfSl9LFtuLGEsY10pO3JldHVybiBuLmxlbmd0aD90LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWJsZS13cmFwIix0YWJJbmRleDowLHJvbGU6InJlZ2lvbiIsImFyaWEtbGFiZWwiOmQsY2hpbGRyZW46dC5qc3hzKCJ0YWJsZSIse2NsYXNzTmFtZToiZGF0YS10YWJsZSIsY2hpbGRyZW46W2QmJnQuanN4KCJjYXB0aW9uIix7Y2xhc3NOYW1lOiJzci1vbmx5IixjaGlsZHJlbjpkfSksdC5qc3goInRoZWFkIix7Y2hpbGRyZW46dC5qc3goInRyIix7Y2hpbGRyZW46Yy5tYXAoZT0+e2NvbnN0IHI9ISFlLnNvcnRWYWx1ZSxzPWE/LmNvbHVtbj09PWUuaWQ7cmV0dXJuIHQuanN4KCJ0aCIse2NsYXNzTmFtZTpgJHtlLm51bWVyaWM/Im51bSAiOiIifSR7cj8ic29ydGFibGUiOiIifWAsImFyaWEtc29ydCI6cz9hLmRpcmVjdGlvbj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIjp2b2lkIDAsY2hpbGRyZW46cj90LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJ0YWJsZS1zb3J0IixvbkNsaWNrOigpPT5tKHtjb2x1bW46ZS5pZCxkaXJlY3Rpb246cyYmYS5kaXJlY3Rpb249PT0iZGVzYyI/ImFzYyI6ImRlc2MifSksY2hpbGRyZW46W2UuaGVhZGVyLHM/YS5kaXJlY3Rpb249PT0iYXNjIj8iIOKWsiI6IiDilrwiOiIiXX0pOmUuaGVhZGVyfSxlLmlkKX0pfSl9KSx0LmpzeCgidGJvZHkiLHtjaGlsZHJlbjpmLm1hcChlPT50LmpzeCgidHIiLHtjaGlsZHJlbjpjLm1hcChyPT50LmpzeCgidGQiLHtjbGFzc05hbWU6ci5udW1lcmljPyJudW0iOiIiLGNoaWxkcmVuOnIuY2VsbChlKX0sci5pZCkpfSx1KGUpKSl9KV19KX0pOnQuanN4KGcse3RpdGxlOmgoeCl9KX1leHBvcnR7TiBhcyBEfTsK" }, + "/v2/assets/DataTable-CvMU-qGc.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgcCxyIGFzIG8saiBhcyB0LGkgYXMgZ31mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2Z1bmN0aW9uIE4oe2NvbHVtbnM6Yyxyb3dzOm4scm93S2V5OnUsZW1wdHlLZXk6eD0ic3RhdGUubm9fZGF0YSIsZGVmYXVsdFNvcnQ6YixjYXB0aW9uOmR9KXtjb25zdCBoPXAoKSxbYSxtXT1vLnVzZVN0YXRlKGJ8fG51bGwpLGY9by51c2VNZW1vKCgpPT57aWYoIWEpcmV0dXJuIG47Y29uc3QgZT1jLmZpbmQocz0+cy5pZD09PWEuY29sdW1uKTtpZighZT8uc29ydFZhbHVlKXJldHVybiBuO2NvbnN0IHI9YS5kaXJlY3Rpb249PT0iYXNjIj8xOi0xO3JldHVyblsuLi5uXS5zb3J0KChzLGopPT57Y29uc3QgaT1lLnNvcnRWYWx1ZShzKSxsPWUuc29ydFZhbHVlKGopO3JldHVybiBpPT09bnVsbCYmbD09PW51bGw/MDppPT09bnVsbD8xOmw9PT1udWxsPy0xOnR5cGVvZiBpPT0ibnVtYmVyIiYmdHlwZW9mIGw9PSJudW1iZXIiPyhpLWwpKnI6U3RyaW5nKGkpLmxvY2FsZUNvbXBhcmUoU3RyaW5nKGwpKSpyfSl9LFtuLGEsY10pO3JldHVybiBuLmxlbmd0aD90LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0YWJsZS13cmFwIix0YWJJbmRleDowLHJvbGU6InJlZ2lvbiIsImFyaWEtbGFiZWwiOmQsY2hpbGRyZW46dC5qc3hzKCJ0YWJsZSIse2NsYXNzTmFtZToiZGF0YS10YWJsZSIsY2hpbGRyZW46W2QmJnQuanN4KCJjYXB0aW9uIix7Y2xhc3NOYW1lOiJzci1vbmx5IixjaGlsZHJlbjpkfSksdC5qc3goInRoZWFkIix7Y2hpbGRyZW46dC5qc3goInRyIix7Y2hpbGRyZW46Yy5tYXAoZT0+e2NvbnN0IHI9ISFlLnNvcnRWYWx1ZSxzPWE/LmNvbHVtbj09PWUuaWQ7cmV0dXJuIHQuanN4KCJ0aCIse2NsYXNzTmFtZTpgJHtlLm51bWVyaWM/Im51bSAiOiIifSR7cj8ic29ydGFibGUiOiIifWAsImFyaWEtc29ydCI6cz9hLmRpcmVjdGlvbj09PSJhc2MiPyJhc2NlbmRpbmciOiJkZXNjZW5kaW5nIjp2b2lkIDAsY2hpbGRyZW46cj90LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJ0YWJsZS1zb3J0IixvbkNsaWNrOigpPT5tKHtjb2x1bW46ZS5pZCxkaXJlY3Rpb246cyYmYS5kaXJlY3Rpb249PT0iZGVzYyI/ImFzYyI6ImRlc2MifSksY2hpbGRyZW46W2UuaGVhZGVyLHM/YS5kaXJlY3Rpb249PT0iYXNjIj8iIOKWsiI6IiDilrwiOiIiXX0pOmUuaGVhZGVyfSxlLmlkKX0pfSl9KSx0LmpzeCgidGJvZHkiLHtjaGlsZHJlbjpmLm1hcChlPT50LmpzeCgidHIiLHtjaGlsZHJlbjpjLm1hcChyPT50LmpzeCgidGQiLHtjbGFzc05hbWU6ci5udW1lcmljPyJudW0iOiIiLGNoaWxkcmVuOnIuY2VsbChlKX0sci5pZCkpfSx1KGUpKSl9KV19KX0pOnQuanN4KGcse3RpdGxlOmgoeCl9KX1leHBvcnR7TiBhcyBEfTsK" }, "/v2/assets/DecisionsPage-BA3RcN_8.css": { contentType: "text/css; charset=utf-8", base64: "LmRlY2lzaW9uLXJlZnJlc2h7bWFyZ2luLWxlZnQ6YXV0b30uZGVjaXNpb25zLWZpbHRlcnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5kZWNpc2lvbi1kZXRhaWwtaGVhZHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHh9LmRlY2lzaW9uLWJhZGdlc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcH0uZGVjaXNpb24tcHJvbXB0e21hcmdpbjowO2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMH0uZGVjaXNpb24tbWV0YXtkaXNwbGF5OmZsZXg7Z2FwOjZweCAxNHB4O2ZsZXgtd3JhcDp3cmFwO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTJweH0uZGVjaXNpb24tc2VjdGlvbi10aXRsZXttYXJnaW46MTZweCAwIDhweDtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tbXV0ZWQpfS5kZWNpc2lvbi1tYXRlcmlhbHN7bWFyZ2luLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmctdG9wOjhweH0uZGVjaXNpb24tbWF0ZXJpYWxzPnN1bW1hcnl7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxM3B4fS5kZWNpc2lvbi1tYXRlcmlhbHMgcHttYXJnaW46NnB4IDAgMDtmb250LXNpemU6MTNweH0uZGVjaXNpb24tbm90ZXtmbGV4LWJhc2lzOjEwMCU7bWFyZ2luOjRweCAwIDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4fS5kZWNpc2lvbi1hY2NvdW50LXBpY2tlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWFyZ2luLXRvcDoxMnB4O2ZvbnQtc2l6ZToxM3B4fS5kZWNpc2lvbi1hY2NvdW50LXBpY2tlcj5zcGFue2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTJweH0uZGVjaXNpb24tYWNjb3VudC1waWNrZXIgc2VsZWN0e3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKTtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2NvbG9yOnZhcigtLWluayk7Zm9udDppbmhlcml0fS5pbmJveC1pdGVtLmlzLWV4cGlyZWR7b3BhY2l0eTouN30uaW5ib3gtYmFja3tkaXNwbGF5Om5vbmU7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fUBtZWRpYShtYXgtd2lkdGg6MTAyNHB4KXsuaW5ib3guZGV0YWlsLW9wZW4gLmluYm94LWxpc3R7ZGlzcGxheTpub25lfS5pbmJveDpub3QoLmRldGFpbC1vcGVuKSAuaW5ib3gtZGV0YWlse2Rpc3BsYXk6bm9uZX0uaW5ib3gtYmFja3tkaXNwbGF5OmlubGluZS1mbGV4fX0uZGVjaXNpb24taGlzdG9yeS1tb3Jle21hcmdpbi10b3A6MTJweH0ucmVjb25jaWxpYXRpb24tbWF0ZXJpYWxze21hcmdpbi1ibG9jazoxNnB4fS5yZWNvbmNpbGlhdGlvbi1tYXRlcmlhbHM+LmNhcmQtdGl0bGU6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLXRvcDoyNHB4fS5yZWNvbmNpbGlhdGlvbi1yZWZ7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4fS5kZWNpc2lvbi1zdGFsZS1oaW50e2NvbG9yOnZhcigtLW11dGVkKX0ucmVjb25jaWxpYXRpb24tbWF0ZXJpYWwrLnJlY29uY2lsaWF0aW9uLW1hdGVyaWFse2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmctdG9wOjEycHh9LnJlY29uY2lsaWF0aW9uLW1hdGVyaWFsIGRse2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heChtaW4oMTAwJSwyMjBweCksMWZyKSk7Z2FwOjEycHh9LnJlY29uY2lsaWF0aW9uLW1hdGVyaWFsIGR0e2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTJweH0ucmVjb25jaWxpYXRpb24tbWF0ZXJpYWwgZGR7bWFyZ2luOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0K" }, - "/v2/assets/DecisionsPage-BB4zo5fM.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgaSxHIGFzIGdlLHUgYXMgU2UsdyBhcyBGZSxrIGFzIEFlLGUgYXMgTGUsSCBhcyBHZSxyIGFzIGIsbiBhcyBCLGcgYXMgUGUsSSBhcyBCZSxmIGFzIEgsaSBhcyBkZSxtIGFzIEhlLEIgYXMgVSxKIGFzIHhlLEsgYXMgdWUsQSBhcyBNZSxMIGFzIHdlLE4gYXMgUWUsTyBhcyBLZX1mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2ltcG9ydHtJIGFzIFRlfWZyb20iLi9JbmJveFJlYWRGYWlsZWQtQmUwNUE1bTUuanMiO2ltcG9ydHtSIGFzIEplfWZyb20iLi9ydW50aW1lX2RhaWx5X2NvbnRyYWN0LUNmOE51MVRlLmpzIjtpbXBvcnR7dSBhcyBjZSxjIGFzIFhlfWZyb20iLi9ob29rcy1EMG9TNXViRy5qcyI7aW1wb3J0e1QgYXMgWWV9ZnJvbSIuL1RhYnMtRGI3eDNodWkuanMiO2ltcG9ydHt1IGFzIFVlLEMgYXMgVmUsVCBhcyBaZSxEIGFzIGplfWZyb20iLi9EaWFsb2ctQldmYVFMd3QuanMiO2Z1bmN0aW9uIFdlKGUsbil7Y29uc3QgYT1lLmNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTZ8fGUub3duZXJfZGVjaXNpb24/LmNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTY7cmV0dXJuIWUuY2FuZGlkYXRlX2lkfHwhL15bYS1mMC05XXs2NH0kLy50ZXN0KFN0cmluZyhhfHwiIikpfHwhWyJhcHByb3ZlX2xpbWl0ZWRfbGl2ZV9jYW5hcnkiLCJrZWVwX3BhcmtlZCJdLmluY2x1ZGVzKG4pP251bGw6e2NhbmRpZGF0ZV9pZDplLmNhbmRpZGF0ZV9pZCxjYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2OmEsZGVjaXNpb246bn19ZnVuY3Rpb24gZWkoZSxuPSJhcHByb3ZlIil7Y29uc3QgYT1lLnJlY292ZXJ5fHx7fTtyZXR1cm4gbiE9PSJhcHByb3ZlIiYmbiE9PSJyZWplY3QifHxlLmZyZXNobmVzcz8uZGF0YV9zdGF0dXMhPT0icmVhZHkifHxlLmNvbmZpcm1hdGlvbnx8ZS5yZWplY3Rpb258fGEucmVhZGluZXNzIT09ImF3YWl0aW5nX2h1bWFuX2NvbmZpcm1hdGlvbiJ8fCFBcnJheS5pc0FycmF5KGEuYmxvY2tlcl9jb2Rlcyl8fGEuYmxvY2tlcl9jb2Rlcy5sZW5ndGh8fCEvXlthLWYwLTldezY0fSQvLnRlc3QoU3RyaW5nKGEuY2FuZGlkYXRlX3NoYTI1Nnx8IiIpKXx8YS5kdWFsX3Jldmlldz8uZXZpZGVuY2VfYmluZGluZ19zaGEyNTYhPT1hLmNhbmRpZGF0ZV9zaGEyNTY/bnVsbDp7ZGVjaXNpb246bixyZWNvdmVyeV9pZDphLnJlY292ZXJ5X2lkLGNhbmRpZGF0ZV9zaGEyNTY6YS5jYW5kaWRhdGVfc2hhMjU2LGR1YWxfcmV2aWV3X2JpbmRpbmdfc2hhMjU2OmEuZHVhbF9yZXZpZXcuZXZpZGVuY2VfYmluZGluZ19zaGEyNTZ9fWZ1bmN0aW9uIGlpKCl7Y29uc3QgZT1uZXcgU2V0O3JldHVybnthY3F1aXJlKG4pe3JldHVybiBlLmhhcyhuKT8hMTooZS5hZGQobiksITApfSxyZWxlYXNlKG4pe2UuZGVsZXRlKG4pfSxpc0xvY2tlZChuKXtyZXR1cm4gZS5oYXMobil9LGhhc0FueShuKXtyZXR1cm4gbi5zb21lKGE9PmUuaGFzKGEpKX0saGFzQW55V2l0aFByZWZpeGVzKG4pe3JldHVyblsuLi5lXS5zb21lKGE9Pm4uc29tZShzPT5hLnN0YXJ0c1dpdGgocykpKX0sY2xlYXIoKXtlLmNsZWFyKCl9fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZT9lLnN0YXR1cz09PSJyZWplY3RlZCI6ITB9Y29uc3QgdGU9L15bMC05YS1mXXs2NH0kLyxNPWU9PiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoZSkpO2Z1bmN0aW9uIEwoZSl7aWYoZT09PW51bGx8fHR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJib29sZWFuInx8dHlwZW9mIGU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUoZSkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuYFske2UubWFwKEwpLmpvaW4oIiwiKX1dYDtpZighTShlKSl0aHJvdyBuZXcgRXJyb3IoImh1bWFuX2RlY2lzaW9uX21hdGVyaWFsX2ludmFsaWQiKTtyZXR1cm5geyR7T2JqZWN0LmtleXMoZSkuc29ydCgpLm1hcChuPT5gJHtKU09OLnN0cmluZ2lmeShuKX06JHtMKGVbbl0pfWApLmpvaW4oIiwiKX19YH1hc3luYyBmdW5jdGlvbiBwZShlKXtjb25zdCBuPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoTChlKSkpO3JldHVyblsuLi5uZXcgVWludDhBcnJheShuKV0ubWFwKGE9PmEudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIil9ZnVuY3Rpb24gYWkoZSl7Y29uc3Qgbj1lPy5kZWNpc2lvbl9iaW5kaW5nO3JldHVybiBuPy5raW5kPT09InByb21vdGlvbiImJm4uc3ViamVjdF9pZD09PWUudGlja2V0X2lkJiZ0eXBlb2Ygbi5tYXRlcmlhbF9zaGEyNTY9PSJzdHJpbmciJiZ0ZS50ZXN0KG4ubWF0ZXJpYWxfc2hhMjU2KSYmKG4ucmV2aWV3X2JpbmRpbmc9PW51bGx8fG4ucmV2aWV3X2JpbmRpbmcuc2NoZW1hX3ZlcnNpb249PT0icXNsX3Byb21vdGlvbl9yZXZpZXdfYmluZGluZy52MiImJnR5cGVvZiBuLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTY9PSJzdHJpbmciJiZ0ZS50ZXN0KG4ucmV2aWV3X2JpbmRpbmcucmV2aWV3X3NoYTI1NikpfWZ1bmN0aW9uIHRpKGUsbil7aWYoIU0oZSl8fGUua2luZCE9PW4ua2luZHx8ZS5zdWJqZWN0X2lkIT09bi5zdWJqZWN0X2lkfHxlLm1hdGVyaWFsX3NoYTI1NiE9PW4ubWF0ZXJpYWxfc2hhMjU2KXJldHVybiExO2NvbnN0IGE9ZS5yZXZpZXdfYmluZGluZztyZXR1cm4gbi5yZXZpZXdfc2hhMjU2PT09bnVsbD9hPT1udWxsOk0oYSkmJmEuc2NoZW1hX3ZlcnNpb249PT0icXNsX3Byb21vdGlvbl9yZXZpZXdfYmluZGluZy52MiImJmEucmV2aWV3X3NoYTI1Nj09PW4ucmV2aWV3X3NoYTI1Nn1hc3luYyBmdW5jdGlvbiBvaShlLG4sYSl7dHJ5e2NvbnN0IHM9bj8uZGVjaXNpb25fYmluZGluZztsZXQgbyxfLHAscj1udWxsO2lmKGU9PT0ib3duZXIiKXtpZihvPWEuY2FuZGlkYXRlX2lkLF89bnVsbCxwPXtkZWNpc2lvbjphLmRlY2lzaW9ufSwhWyJhcHByb3ZlX2xpbWl0ZWRfbGl2ZV9jYW5hcnkiLCJrZWVwX3BhcmtlZCJdLmluY2x1ZGVzKGEuZGVjaXNpb24pfHxuLmNhbmRpZGF0ZT8uY2FuZGlkYXRlX2lkIT09b3x8bi5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2IT09YS5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2KXJldHVybiBudWxsfWVsc2UgaWYoZT09PSJyZWNvdmVyeSIpe2lmKG89YS5yZWNvdmVyeV9pZCwhWyJhcHByb3ZlIiwicmVqZWN0Il0uaW5jbHVkZXMoYS5kZWNpc2lvbil8fG4ucmVjb3Zlcnk/LnJlY292ZXJ5X2lkIT09b3x8bi5yZWNvdmVyeS5jYW5kaWRhdGVfc2hhMjU2IT09YS5jYW5kaWRhdGVfc2hhMjU2fHxuLnJlY292ZXJ5LmR1YWxfcmV2aWV3Py5ldmlkZW5jZV9iaW5kaW5nX3NoYTI1NiE9PWEuZHVhbF9yZXZpZXdfYmluZGluZ19zaGEyNTYpcmV0dXJuIG51bGw7Xz17cmVjb3ZlcnlfaWQ6byxjYW5kaWRhdGVfc2hhMjU2OmEuY2FuZGlkYXRlX3NoYTI1NixkdWFsX3Jldmlld19iaW5kaW5nX3NoYTI1NjphLmR1YWxfcmV2aWV3X2JpbmRpbmdfc2hhMjU2fSxwPXtkZWNpc2lvbjphLmRlY2lzaW9ufX1lbHNle2lmKG89YS50aWNrZXRfaWQsIWFpKG4pfHxuLnRpY2tldF9pZCE9PW98fCFbImFjY2VwdCIsInJlamVjdCJdLmluY2x1ZGVzKGEuZGVjaXNpb24pKXJldHVybiBudWxsO2lmKF89T2JqZWN0LmZyb21FbnRyaWVzKFsidGlja2V0X2lkIiwic3RyYXRlZ3lfcHJvZmlsZSIsImRvbWFpbiIsInByb3Bvc2VkX3BhcmFtcyIsInNoYWRvd19wYXNzZWQiLCJzaGFkb3dfZXZpZGVuY2Vfa2luZCJdLm1hcCh3PT5bdyxuW3ddXSkpLHMucmV2aWV3X2JpbmRpbmchPW51bGwpe2NvbnN0IHc9e3NjaGVtYV92ZXJzaW9uOiJxc2xfcHJvbW90aW9uX3Jldmlld19tYXRlcmlhbC52MiIsLi4uXywuLi5PYmplY3QuZnJvbUVudHJpZXMoWyJkcmlmdF9zdGF0dXMiLCJkcmlmdF9zY29yZSIsImJ1ZGdldCIsInNlYXJjaF9pdGVyYXRpb25zIiwic3VnZ2VzdGVkX3Jpc2tfcHJvZmlsZSIsIm5vdGlmaWNhdGlvbl9zdWJqZWN0Iiwibm90aWZpY2F0aW9uX2JvZHkiLCJub3RlcyJdLm1hcChDPT5bQyxuW0NdXSkpLHJlc2VhcmNoX3N1bW1hcnk6bi5yZXNlYXJjaF9zdW1tYXJ5fHxudWxsfTtpZihyPWF3YWl0IHBlKHcpLHIhPT1zLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTYpcmV0dXJuIG51bGx9Y29uc3QgeD1hLnNlbGVjdGVkX2FjY291bnQ/P251bGwseT1hLmNvbmZpcm1hdGlvbj8/bnVsbDtpZihhLmRlY2lzaW9uPT09ImFjY2VwdCImJighTSh4KXx8IU0oeSl8fHgucGxhdGZvcm0hPT15LnRhcmdldF9wbGF0Zm9ybSkpcmV0dXJuIG51bGw7cD17c2VsZWN0ZWRfYWNjb3VudDp4LGNvbmZpcm1hdGlvbjp5fX1jb25zdCBjPWU9PT0ib3duZXIiP2EuY2FuZGlkYXRlX2V2aWRlbmNlX3NoYTI1Njphd2FpdCBwZShfKTtyZXR1cm4gdHlwZW9mIG8hPSJzdHJpbmcifHwhb3x8dHlwZW9mIGMhPSJzdHJpbmcifHwhdGUudGVzdChjKXx8cz8ua2luZCE9PWV8fHMuc3ViamVjdF9pZCE9PW98fHMubWF0ZXJpYWxfc2hhMjU2IT09Yz9udWxsOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoe2tpbmQ6ZSxzdWJqZWN0X2lkOm8sbWF0ZXJpYWxfc2hhMjU2OmMscmV2aWV3X3NoYTI1NjpyLGFjdGlvbjphLmRlY2lzaW9uLHRhcmdldDpwfSkpfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBmdW5jdGlvbiBrZShlLG4pe3RyeXtpZighTShuKXx8IVsicXNsX2h1bWFuX2RlY2lzaW9uX3JlY2VpcHQudjEiLCJxc2xfaHVtYW5fZGVjaXNpb25fcmVjZWlwdC52MiJdLmluY2x1ZGVzKG4uc2NoZW1hX3ZlcnNpb24pfHxuLmtpbmQhPT1lLmtpbmR8fG4uc3ViamVjdF9pZCE9PWUuc3ViamVjdF9pZHx8bi5tYXRlcmlhbF9zaGEyNTYhPT1lLm1hdGVyaWFsX3NoYTI1Nnx8bi5hY3Rpb24hPT1lLmFjdGlvbnx8TChuLnRhcmdldCkhPT1MKGUudGFyZ2V0KXx8bi5ub19vcmRlciE9PSEwfHxuLmV4ZWN1dGlvbl9hdXRob3JpdHlfZ3JhbnRlZCE9PSExfHx0eXBlb2Ygbi5kZWNpZGVkX2J5IT0ic3RyaW5nInx8IW4uZGVjaWRlZF9ieXx8bi5kZWNpZGVkX2J5Lmxlbmd0aD4xMDB8fC9bXHUwMDAwLVx1MDAxZlx1MDA3Zl0vLnRlc3Qobi5kZWNpZGVkX2J5KXx8dHlwZW9mIG4uZGVjaWRlZF9hdCE9InN0cmluZyJ8fG4uZGVjaWRlZF9hdC5sZW5ndGg+NDB8fCFOdW1iZXIuaXNGaW5pdGUoRGF0ZS5wYXJzZShuLmRlY2lkZWRfYXQpKXx8L1tcdTAwMDAtXHUwMDFmXHUwMDdmXS8udGVzdChuLmRlY2lkZWRfYXQpfHx0eXBlb2Ygbi5yZWNlaXB0X3NoYTI1NiE9InN0cmluZyJ8fCF0ZS50ZXN0KG4ucmVjZWlwdF9zaGEyNTYpKXJldHVybiExO2NvbnN0IGE9bi5zY2hlbWFfdmVyc2lvbj09PSJxc2xfaHVtYW5fZGVjaXNpb25fcmVjZWlwdC52MiI7aWYoYSE9PSEhZS5yZXZpZXdfc2hhMjU2fHxhJiYoZS5raW5kIT09InByb21vdGlvbiJ8fG4ucmV2aWV3X2JpbmRpbmc/LnNjaGVtYV92ZXJzaW9uIT09InFzbF9wcm9tb3Rpb25fcmV2aWV3X2JpbmRpbmcudjIifHxuLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTYhPT1lLnJldmlld19zaGEyNTYpKXJldHVybiExO2NvbnN0IHM9e3NjaGVtYV92ZXJzaW9uOm4uc2NoZW1hX3ZlcnNpb24sLi4uYT97cmV2aWV3X2JpbmRpbmc6e3NjaGVtYV92ZXJzaW9uOiJxc2xfcHJvbW90aW9uX3Jldmlld19iaW5kaW5nLnYyIixyZXZpZXdfc2hhMjU2OmUucmV2aWV3X3NoYTI1Nn19Ont9LGtpbmQ6ZS5raW5kLHN1YmplY3RfaWQ6ZS5zdWJqZWN0X2lkLG1hdGVyaWFsX3NoYTI1NjplLm1hdGVyaWFsX3NoYTI1NixhY3Rpb246ZS5hY3Rpb24sdGFyZ2V0OmUudGFyZ2V0LGRlY2lkZWRfYXQ6bi5kZWNpZGVkX2F0LGRlY2lkZWRfYnk6bi5kZWNpZGVkX2J5LG5vX29yZGVyOiEwLGV4ZWN1dGlvbl9hdXRob3JpdHlfZ3JhbnRlZDohMX07cmV0dXJuIEwobik9PT1MKHsuLi5zLHJlY2VpcHRfc2hhMjU2OmF3YWl0IHBlKHMpfSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHNpKCl7Y29uc3QgZT1uZXcgTWFwLG49bmV3IE1hcCxhPW89PmAke28ua2luZH06JHtvLnN1YmplY3RfaWR9OiR7by5tYXRlcmlhbF9zaGEyNTZ9YDtsZXQgcz0wO3JldHVybntlcG9jaCgpe3JldHVybiBzfSxjbGVhcigpe3MrKyxlLmNsZWFyKCksbi5jbGVhcigpfSxlbnRyaWVzKCl7cmV0dXJuWy4uLmUudmFsdWVzKCldLm1hcChvPT5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG8pKSl9LHN0YXJ0KG8pe2NvbnN0IF89YShvKTtyZXR1cm4gZS5oYXMoXyk/bnVsbDooZS5zZXQoXyx7ZXhwZWN0ZWQ6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSksc3RhdHVzOiJ1bnJlc29sdmVkIixyZWNlaXB0Om51bGwscXVldWVDb25maXJtZWQ6ITF9KSx7aWQ6XyxnZW5lcmF0aW9uOnN9KX0sY3VycmVudChvKXtyZXR1cm4gby5nZW5lcmF0aW9uPT09cyYmZS5oYXMoby5pZCkmJihvLnNlcXVlbmNlPT09dm9pZCAwfHxuLmdldChvLmlkKT09PW8uc2VxdWVuY2UpfSxhc3luYyByZWNlaXZlKG8sXyxwKXtjb25zdCByPWUuZ2V0KG8uaWQpO2lmKCFyfHwhdGhpcy5jdXJyZW50KG8pKXJldHVybiExO2NvbnN0IGM9YXdhaXQga2Uoci5leHBlY3RlZCxfKTtyZXR1cm4gdGhpcy5jdXJyZW50KG8pPyFjfHxyLnJlY2VpcHQmJnIucmVjZWlwdC5yZWNlaXB0X3NoYTI1NiE9PV8ucmVjZWlwdF9zaGEyNTY/KHIuc3RhdHVzPSJ1bnJlc29sdmVkIixyLnF1ZXVlQ29uZmlybWVkPSExLCExKTooci5yZWNlaXB0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoXykpLHIucXVldWVDb25maXJtZWQ9cD8/ci5xdWV1ZUNvbmZpcm1lZCxyLnN0YXR1cz1yLnF1ZXVlQ29uZmlybWVkPyJyZWNvcmRlZCI6InVucmVzb2x2ZWQiLCEwKTohMX0sYmVnaW5SZWFkKG8pe2NvbnN0IF89YShvKSxwPShuLmdldChfKXx8MCkrMTtyZXR1cm4gbi5zZXQoXyxwKSx7aWQ6XyxnZW5lcmF0aW9uOnMsc2VxdWVuY2U6cH19LGFzeW5jIHJlYWRiYWNrKG8sXyxwKXtjb25zdCByPWUuZ2V0KG8uaWQpLGM9Xz8uZGVjaXNpb25fcmVhZGJhY2sseD0oKT0+dGhpcy5jdXJyZW50KG8pJiZuLmdldChvLmlkKT09PW8uc2VxdWVuY2U7aWYoIXJ8fCF4KCkpcmV0dXJuITE7aWYoXz8ub2shPT0hMHx8Yz8uc2NoZW1hX3ZlcnNpb24hPT0icXNsX2h1bWFuX2RlY2lzaW9uX3JlYWRiYWNrLnYxInx8Yy5zb3VyY2UhPT0iZHVyYWJsZV9odW1hbl9kZWNpc2lvbl9yZWNvcmQifHxjLmtpbmQhPT1yLmV4cGVjdGVkLmtpbmR8fGMuc3ViamVjdF9pZCE9PXIuZXhwZWN0ZWQuc3ViamVjdF9pZHx8Yy5yZXF1ZXN0ZWRfbWF0ZXJpYWxfc2hhMjU2IT09ci5leHBlY3RlZC5tYXRlcmlhbF9zaGEyNTZ8fHR5cGVvZiBjLm9ic2VydmVkX2F0IT0ic3RyaW5nInx8IU51bWJlci5pc0Zpbml0ZShEYXRlLnBhcnNlKGMub2JzZXJ2ZWRfYXQpKXx8Yy5sb29rdXBfc3RhdHVzIT09ImZvdW5kIilyZXR1cm4gci5zdGF0dXM9InVucmVzb2x2ZWQiLHIucXVldWVDb25maXJtZWQ9ITEsITE7Y29uc3QgeT1hd2FpdCBrZShyLmV4cGVjdGVkLGMucmVjZWlwdCk7cmV0dXJuIHgoKT90aGlzLnJlY2VpdmUobyx5P2MucmVjZWlwdDpudWxsLHApOiExfSxyZWFkRmFpbGVkKG8pe2lmKCF0aGlzLmN1cnJlbnQobyl8fG4uZ2V0KG8uaWQpIT09by5zZXF1ZW5jZSlyZXR1cm4hMTtjb25zdCBfPWUuZ2V0KG8uaWQpO3JldHVybiBfLnN0YXR1cz0idW5yZXNvbHZlZCIsXy5xdWV1ZUNvbmZpcm1lZD0hMSwhMH19fWNvbnN0IE9lPU9iamVjdC5mcmVlemUoW09iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToicGFwZXIiLHBheWxvYWRfc2NvcGU6IlBBUEVSIn0pLE9iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToiSEsiLHBheWxvYWRfc2NvcGU6IkhLIn0pLE9iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToic2ciLHBheWxvYWRfc2NvcGU6IlNHIn0pXSk7T2JqZWN0LmZyZWV6ZShPZS5tYXAoZT0+ZS5vcHRpb25fc2NvcGUpKTtPYmplY3QuZnJlZXplKE9lLm1hcChlPT5lLnBheWxvYWRfc2NvcGUpKTtjb25zdCByaT1PYmplY3QuZnJlZXplKFsibWF4X2ZpbmFuY2VfYW1vdW50IiwicmVtYWluaW5nX2ZpbmFuY2VfYW1vdW50IiwiaW5pdF9tYXJnaW4iLCJtYWludGVuYW5jZV9tYXJnaW4iLCJtYXJnaW5fY2FsbCIsImJ1eV9wb3dlciJdKTtPYmplY3QuZnJlZXplKFsiY3VycmVuY3kiLC4uLnJpLCJyaXNrX2xldmVsIl0pO2NvbnN0IERlPVt7cHJvZmlsZToidHFxcV9ncm93dGhfaW5jb21lIixsYWJlbDoi57qz5pav6L6+5YWL5aKe6ZW/5pS255uKIixsYWJlbF9lbjoiTkFTREFRIEdyb3d0aCBJbmNvbWUiLGxhYmVsX3poOiLnurPmlq/ovr7lhYvlop7plb/mlLbnm4oiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITAsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITAsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMCxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicnVudGltZV9lbmFibGVkIixjYW5fc3dpdGNoX2xpdmU6ITAsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iLCJsaXZlIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoiIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiEwLGFsbG93ZWRfcGxhdGZvcm1zOlsiaWJrciJdfSxpbmNvbWVfbGF5ZXJfc3RhcnRfdXNkOiIyNTAwMDAiLGluY29tZV9sYXllcl9tYXhfcmF0aW86IjAuNTUiLGluY29tZV9sYXllcl9hbGxvY2F0aW9uczp7U0NIRDouMyxER1JPOi4yLFNHT1Y6LjQsU1BZSTouMDgsUVFRSTouMDJ9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToidHFxcV9sZWFwc19ncm93dGhfdjEiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9zdGFydF91c2Q6IjI1MDAwMCIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X25hdl9idWRnZXRfcmF0aW86IjAuMDMifSx7cHJvZmlsZToic294bF9zb3h4X3RyZW5kX2luY29tZSIsbGFiZWw6IuWNiuWvvOS9k+i2i+WKv+aUtuebiiIsbGFiZWxfZW46IlNlbWljb25kdWN0b3IgVHJlbmQgSW5jb21lIixsYWJlbF96aDoi5Y2K5a+85L2T6LaL5Yq/5pS255uKIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImxvbmdicmlkZ2UiLCJpYmtyIiwic2Nod2FiIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjE1MDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC45NSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi4xNSxER1JPOi4xLFNHT1Y6LjcsU1BZSTouMDQsUVFRSTouMDF9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2luY29tZV9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2luY29tZV9vdmVybGF5X3JlY2lwZToic294eF9wdXRfY3JlZGl0X3NwcmVhZF9pbmNvbWVfdjEiLG9wdGlvbl9pbmNvbWVfb3ZlcmxheV9zdGFydF91c2Q6IjE1MDAwMCIsb3B0aW9uX2luY29tZV9vdmVybGF5X25hdl9yaXNrX3JhdGlvOiIwLjAxIn0se3Byb2ZpbGU6InNveGxfc294eF9jb3JlX29ubHlfcDJfdjdfbG9uZ3Rlcm1fY29tcG91bmRpbmdfY2FzaF9yZXNlcnZlIixsYWJlbDoiU09YTC9TT1hYIOaguOW/g+WkjeWIqe+8iOeOsOmHkeS/neeVme+8iSIsbGFiZWxfZW46IlNPWEwvU09YWCBDb3JlIENvbXBvdW5kaW5nIChDYXNoIFJlc2VydmUpIixsYWJlbF96aDoiU09YTC9TT1hYIOaguOW/g+WkjeWIqe+8iOeOsOmHkeS/neeVme+8iSIsZG9tYWluOiJ1c19lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX29ubHlfbmFtZWRfcHJvZmlsZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0scmVzZWFyY2hfY2FuZGlkYXRlX2lkZW50aXR5OntjYW5kaWRhdGVfaWQ6InNveGxfc294eF9jb3JlX29ubHlfcDJfdjdfbG9uZ3Rlcm1fY29tcG91bmRpbmdfY2FzaF9yZXNlcnZlIixjb25maWdfc2hhMjU2OiI4NDNhYjRlOTNlODE5ODVjMmIzYmVjYzYxYTJmMGI5NzE1MDhjY2YyNWFmYTU5YWNmNDAyZTc1ZjU3NDUxNGQxIn19LHtwcm9maWxlOiJuYXNkYXFfc3A1MDBfc21hcnRfZGNhIixsYWJlbDoi57qz5oyH5qCH5pmu5a6a5oqVIixsYWJlbF9lbjoiTkFTREFRL1MmUCA1MDAgRENBIixsYWJlbF96aDoi57qz5oyH5qCH5pmu5a6a5oqVIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoibWlzc2luZ19jdXJyZW50X3Byb21vdGlvbl9ldmlkZW5jZV9hbmRfcHJlYXV0aG9yaXplZF9hdXRvbm9teV9wb2xpY3kiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119LGRjYV9lbmFibGVkOiEwLGRjYV9kZWZhdWx0X21vZGU6ImZpeGVkIixkY2FfZGVmYXVsdF9iYXNlX2ludmVzdG1lbnRfdXNkOiIxMDAwIn0se3Byb2ZpbGU6ImliaXRfc21hcnRfZGNhIixsYWJlbDoiSUJJVOavlOeJueW4geWumuaKlSIsbGFiZWxfZW46IklCSVQgQml0Y29pbiBEQ0EiLGxhYmVsX3poOiJJQklU5q+U54m55biB5a6a5oqVIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImZpcnN0cmFkZSJdfSxkY2FfZW5hYmxlZDohMCxkY2FfZGVmYXVsdF9tb2RlOiJmaXhlZCIsZGNhX2RlZmF1bHRfYmFzZV9pbnZlc3RtZW50X3VzZDoiMTAwMCJ9LHtwcm9maWxlOiJnbG9iYWxfZXRmX3JvdGF0aW9uIixsYWJlbDoi5YWo55CDRVRG6L2u5YqoIixsYWJlbF9lbjoiR2xvYmFsIEVURiBSb3RhdGlvbiIsbGFiZWxfemg6IuWFqOeQg0VURui9ruWKqCIsZG9tYWluOiJ1c19lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMCxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiEwLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITAsYWxsb3dlZF9wbGF0Zm9ybXM6WyJpYmtyIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjUwMDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC4xNSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi40LERHUk86LjI1LFNHT1Y6LjMsU1BZSTouMDV9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToic3B5X2xlYXBzX2dyb3d0aF92MSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3N0YXJ0X3VzZDoiNTAwMDAwIixvcHRpb25fZ3Jvd3RoX292ZXJsYXlfbmF2X2J1ZGdldF9yYXRpbzoiMC4wMTUifSx7cHJvZmlsZToicnVzc2VsbF90b3A1MF9sZWFkZXJfcm90YXRpb24iLGxhYmVsOiLnvZfntKBUb3A1MOmihua2qCIsbGFiZWxfZW46IlJ1c3NlbGwgVG9wNTAgTGVhZGVycyIsbGFiZWxfemg6Iue9l+e0oFRvcDUw6aKG5raoIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImlia3IiLCJsb25nYnJpZGdlIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjMwMDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC4yNSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi40NSxER1JPOi4zLFNHT1Y6LjI1fSxvcHRpb25fb3ZlcmxheV9saXZlX2dhdGU6InByb21vdGlvbl9yZXF1aXJlZCIsb3B0aW9uX292ZXJsYXlfbGl2ZV9zdGF0dXM6InJlc2VhcmNoX29ubHkiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9lbmFibGVkOiEwLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9yZWNpcGU6InNweV9sZWFwc19ncm93dGhfdjEiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9zdGFydF91c2Q6IjMwMDAwMCIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X25hdl9idWRnZXRfcmF0aW86IjAuMDE1In0se3Byb2ZpbGU6InRlY2xfeGxrX3RyZW5kX2luY29tZSIsbGFiZWw6IlRFQ0wvWExL6LaL5Yq/5pS255uKIixsYWJlbF9lbjoiVEVDTC9YTEsgVHJlbmQgSW5jb21lIixsYWJlbF96aDoiVEVDTC9YTEvotovlir/mlLbnm4oiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoiZmFpbGVkX3Byb21vdGlvbl92c19saXZlX3Byb2ZpbGVzIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6InVzX2VxdWl0eV9jb21ibyIsbGFiZWw6Iue+juiCoeaguOW/g+aUtuebiue7hOWQiCIsbGFiZWxfZW46IlVTIENvcmUgSW5jb21lIENvbWJvIixsYWJlbF96aDoi576O6IKh5qC45b+D5pS255uK57uE5ZCIIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InNoYWRvd19hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InNoYWRvd19jYW5kaWRhdGVfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyIsaW5jb21lX2xheWVyX3N0YXJ0X3VzZDoiMzAwMDAwIixpbmNvbWVfbGF5ZXJfbWF4X3JhdGlvOiIwLjI1IixpbmNvbWVfbGF5ZXJfYWxsb2NhdGlvbnM6e1NDSEQ6LjI1LERHUk86LjI1LFNHT1Y6LjIsU1BZSTouMTUsUVFRSTouMTV9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToic3B5X2xlYXBzX2dyb3d0aF92MSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3N0YXJ0X3VzZDoiMzAwMDAwIixvcHRpb25fZ3Jvd3RoX292ZXJsYXlfbmF2X2J1ZGdldF9yYXRpbzoiMC4wMTUifSx7cHJvZmlsZToidXNfZXF1aXR5X2NvbWJvX2NvcmUiLGxhYmVsOiLnvo7ogqHmoLjlv4Pnu4TlkIgiLGxhYmVsX2VuOiJVUyBDb3JlIENvbWJvIixsYWJlbF96aDoi576O6IKh5qC45b+D57uE5ZCIIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InNoYWRvd19hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InNoYWRvd19jYW5kaWRhdGVfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJ1c19lcXVpdHlfY29tYm9fbGV2ZXJhZ2VkIixsYWJlbDoi576O6IKh5Yqg6YCf57uE5ZCIIixsYWJlbF9lbjoiVVMgQWxwaGEgQ29tYm8iLGxhYmVsX3poOiLnvo7ogqHliqDpgJ/nu4TlkIgiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiEwLGxpZmVjeWNsZV9zdGFnZToic2hhZG93X2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoic2hhZG93X2NhbmRpZGF0ZV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfSxjb21ib19tb2RlOiJkeW5hbWljIn0se3Byb2ZpbGU6ImhrX2dsb2JhbF9ldGZfdGFjdGljYWxfcm90YXRpb24iLGxhYmVsOiLmuK/ogqFFVEbmiJjmnK/ova7liqgiLGxhYmVsX2VuOiJISyBFVEYgVGFjdGljYWwgUm90YXRpb24iLGxhYmVsX3poOiLmuK/ogqFFVEbmiJjmnK/ova7liqgiLGRvbWFpbjoiaGtfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImhrX2xvd192b2xfZGl2aWRlbmRfcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6Iua4r+iCoee6ouWIqei0qOmHjyIsbGFiZWxfZW46IkhLIERpdmlkZW5kIFF1YWxpdHkiLGxhYmVsX3poOiLmuK/ogqHnuqLliKnotKjph48iLGRvbWFpbjoiaGtfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJtaXNzaW5nX2N1cnJlbnRfcHJvbW90aW9uX2V2aWRlbmNlX2FuZF9wcmVhdXRob3JpemVkX2F1dG9ub215X3BvbGljeSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJoa19lcXVpdHlfY29tYm8iLGxhYmVsOiLmuK/ogqHmgZLnlJ/nu4TlkIgiLGxhYmVsX2VuOiJISyBDb3JlIENvbWJvIixsYWJlbF96aDoi5riv6IKh5oGS55Sf57uE5ZCIIixkb21haW46ImhrX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJjbl9pbmR1c3RyeV9ldGZfcm90YXRpb24iLGxhYmVsOiJB6IKh6KGM5LiaRVRG6L2u5YqoIixsYWJlbF9lbjoiQ04gSW5kdXN0cnkgRVRGIFJvdGF0aW9uIixsYWJlbF96aDoiQeiCoeihjOS4mkVURui9ruWKqCIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246Im1pc3NpbmdfY3VycmVudF9wcm9tb3Rpb25fZXZpZGVuY2VfYW5kX3ByZWF1dGhvcml6ZWRfYXV0b25vbXlfcG9saWN5IixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX2luZHVzdHJ5X2V0Zl9yb3RhdGlvbl9hZ2dyZXNzaXZlIixsYWJlbDoiQeiCoUVURui9ruWKqCIsbGFiZWxfZW46IkNOIEVURiBSb3RhdGlvbiIsbGFiZWxfemg6IkHogqFFVEbova7liqgiLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToibGl2ZV9jYW5kaWRhdGUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246ImxpdmVfY2FuZGlkYXRlX3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25faW5kZXhfZXRmX3RhY3RpY2FsX3JvdGF0aW9uIixsYWJlbDoiQeiCoeWuveWfukVURuaImOacr+i9ruWKqCIsbGFiZWxfZW46IkNOIEluZGV4IEVURiBUYWN0aWNhbCBSb3RhdGlvbiIsbGFiZWxfemg6IkHogqHlrr3ln7pFVEbmiJjmnK/ova7liqgiLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX2NoaW5leHRfdGFjdGljYWxfcm90YXRpb24iLGxhYmVsOiLliJvkuJrmnb/miJjmnK/ova7liqgiLGxhYmVsX2VuOiJDTiBDaGlOZXh0IFRhY3RpY2FsIFJvdGF0aW9uIixsYWJlbF96aDoi5Yib5Lia5p2/5oiY5pyv6L2u5YqoIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJjbl9jaGluZXh0X2dyb3d0aF9tb21lbnR1bV9xdWFsaXR5IixsYWJlbDoi5Yib5Lia5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIixsYWJlbF9lbjoiQ04gQ2hpTmV4dCBHcm93dGggTW9tZW50dW0gUXVhbGl0eSIsbGFiZWxfemg6IuWIm+S4muadv+aIkOmVv+WKqOmHj+i0qOmHjyIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25fZGl2aWRlbmRfcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6IkHogqHnuqLliKnotKjph48iLGxhYmVsX2VuOiJDTiBEaXZpZGVuZCBRdWFsaXR5IixsYWJlbF96aDoiQeiCoee6ouWIqei0qOmHjyIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25fY2hpbmV4dF9ncm93dGhfbW9tZW50dW1fcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6IuWIm+S4muadv+aIkOmVv+i0qOmHj+W/q+eFpyIsbGFiZWxfZW46IkNOIENoaU5leHQgR3Jvd3RoIFF1YWxpdHkgU25hcHNob3QiLGxhYmVsX3poOiLliJvkuJrmnb/miJDplb/otKjph4/lv6vnhaciLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX3N0YXJfZ3Jvd3RoX21vbWVudHVtX3F1YWxpdHkiLGxhYmVsOiLnp5HliJvmnb/miJDplb/liqjph4/otKjph48iLGxhYmVsX2VuOiJDTiBTVEFSIEdyb3d0aCBNb21lbnR1bSBRdWFsaXR5IixsYWJlbF96aDoi56eR5Yib5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJjbl9lcXVpdHlfY29tYm8iLGxhYmVsOiJB6IKh6L+b5Y+W57uE5ZCIIixsYWJlbF9lbjoiQ04gQWxwaGEgQ29tYm8iLGxhYmVsX3poOiJB6IKh6L+b5Y+W57uE5ZCIIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJjcnlwdG9fbGl2ZV9wb29sX3JvdGF0aW9uIixsYWJlbDoi5Yqg5a+G5rGg6L2u5YqoIixsYWJlbF9lbjoiQ3J5cHRvIFBvb2wgUm90YXRpb24iLGxhYmVsX3poOiLliqDlr4bmsaDova7liqgiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJtaXNzaW5nX2N1cnJlbnRfcHJvbW90aW9uX2V2aWRlbmNlX2FuZF9wcmVhdXRob3JpemVkX2F1dG9ub215X3BvbGljeSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImJpbmFuY2UiXX19LHtwcm9maWxlOiJjcnlwdG9fYnRjX2RjYSIsbGFiZWw6IkJUQ+WumuaKlSIsbGFiZWxfZW46IkJUQyBEQ0EiLGxhYmVsX3poOiJCVEPlrprmipUiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToic2hhZG93X2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoic2hhZG93X2NhbmRpZGF0ZV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNyeXB0b190cmVuZF9yb3RhdGlvbiIsbGFiZWw6IuWxseWvqOi2i+WKv+i9ruWKqCIsbGFiZWxfZW46IkFsdGNvaW4gVHJlbmQiLGxhYmVsX3poOiLlsbHlr6jotovlir/ova7liqgiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNyeXB0b19lcXVpdHlfY29tYm8iLGxhYmVsOiLliqDlr4bliqjph4/nu4TlkIgiLGxhYmVsX2VuOiJDcnlwdG8gQ29yZSBDb21ibyIsbGFiZWxfemg6IuWKoOWvhuWKqOmHj+e7hOWQiCIsZG9tYWluOiJjcnlwdG8iLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITAsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119LGNvbWJvX21vZGU6ImR5bmFtaWMifV07SmUucGxhdGZvcm07Y29uc3QgbGk9bmV3IFNldChEZS5tYXAoZT0+ZS5wcm9maWxlKSk7bmV3IE1hcChEZS5maWx0ZXIoZT0+bGkuaGFzKGUucHJvZmlsZSkpLm1hcChlPT5bZS5wcm9maWxlLHtsYWJlbF96aDplLmxhYmVsX3poLGxhYmVsX2VuOmUubGFiZWxfZW59XSkpO2Z1bmN0aW9uIGNpKGUpe3JldHVybihlPy5hcHBsaWNhdGlvbl9wcmVwYXJhdGlvbj8uYWNjb3VudF9vcHRpb25zfHxbXSkuZmlsdGVyKG49Pm4/LnBsYXRmb3JtPT09ImxvbmdicmlkZ2UiJiZuPy5icm9rZXJfZW52aXJvbm1lbnQ9PT0icGFwZXIiJiZ0eXBlb2Ygbi5rZXk9PSJzdHJpbmciJiZuLmtleS50cmltKCkpLm1hcChuPT4oe2lkOmAke24ucGxhdGZvcm19OiR7bi5rZXl9YCxsYWJlbDp0eXBlb2Ygbi5sYWJlbD09InN0cmluZyImJm4ubGFiZWwudHJpbSgpP24ubGFiZWw6U3RyaW5nKG4ua2V5KX0pKX1mdW5jdGlvbiBfaShlKXtjb25zdCBuPWU/LmFwcGxpY2F0aW9uX3ByZXBhcmF0aW9uPy5ibG9ja2VyX2NvZGVzO3JldHVybiBBcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aD4wfWZ1bmN0aW9uIE5lKGUsbil7aWYoIWV8fCFuaShlLmFwcGxpY2F0aW9uKSlyZXR1cm4hMTtjb25zdCBhPWUuYXBwbGljYXRpb25fcHJlcGFyYXRpb258fHt9O3JldHVybiBfaShlKXx8YS5wcmVmbGlnaHRfc3RhdHVzIT09InJlYWR5Inx8IWEucHJldmlld19yZXF1ZXN0PyExOmNpKGUpLnNvbWUocz0+cy5pZD09PW4pfWZ1bmN0aW9uIF9lKGUsbil7cmV0dXJuIGUuZmluZChhPT5hLmlkPT09bik/PyhlLmxlbmd0aD09PTE/ZVswXTpudWxsKX1mdW5jdGlvbiBkaSh7ZGF0YTplLGxhbmd1YWdlOm4sdDphfSl7Y29uc3Qgcz1lPy5zb3VyY2VzLmZpbmQocj0+ci5zb3VyY2U9PT0icmVjb3ZlcnkiKSxvPXM/LmN1cnJlbnRfcmVjb25jaWxpYXRpb25fb2JzZXJ2YXRpb24sXz1lPy5pdGVtcy5maWx0ZXIocj0+ci5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpfHxbXSxwPXI9PntpZighcnx8IU51bWJlci5pc0Zpbml0ZShEYXRlLnBhcnNlKHIpKSlyZXR1cm4gYSgiY29tbW9uLnVua25vd24iKTtjb25zdCBjPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG49PT0iemgiPyJ6aC1DTiI6ImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITEsdGltZVpvbmVOYW1lOiJzaG9ydE9mZnNldCJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKHIpKSx4PWMuZmluZCh3PT53LnR5cGU9PT0idGltZVpvbmVOYW1lIik/LnZhbHVlfHwiIix5PWMuZmlsdGVyKHc9PncudHlwZSE9PSJ0aW1lWm9uZU5hbWUiKS5tYXAodz0+dy52YWx1ZSkuam9pbigiIikudHJpbSgpO3JldHVybiBpLmpzeCgidGltZSIse2RhdGVUaW1lOnIsY2hpbGRyZW46eD9gJHt5fSAoJHt4fSlgOnl9KX07cmV0dXJuIGkuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCByZWNvbmNpbGlhdGlvbi1tYXRlcmlhbHMiLCJhcmlhLWxhYmVsIjphKCJyZWNvbmNpbGlhdGlvbi50aXRsZSIpLGNoaWxkcmVuOltpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmN1cnJlbnQiKX0pLGkuanN4KCJwIix7cm9sZToic3RhdHVzIixjaGlsZHJlbjpvPy5zdGF0dXNfbGFiZWxbbl18fGEoInJlY29uY2lsaWF0aW9uLm5vdF9jb25uZWN0ZWQiKX0pLG8/Lmxhc3Rfb2JzZXJ2ZWRfYXQmJmkuanN4cygicCIse2NoaWxkcmVuOlthKCJyZWNvbmNpbGlhdGlvbi5vYnNlcnZlZF9hdCIpLCLvvJoiLHAoby5sYXN0X29ic2VydmVkX2F0KV19KSxpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24uaGlzdG9yeV9ub3RpY2UiKX0pLGkuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24ubWF0ZXJpYWxzIil9KSxzPy5zdGF0dXMhPT0ib2siJiZpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46YShzPy5zdGF0dXM9PT0ic3RhbGUiPyJyZWNvbmNpbGlhdGlvbi5zdGFsZSI6InJlY29uY2lsaWF0aW9uLnJlYWRfdW5rbm93biIpfSksIV8ubGVuZ3RoJiZpLmpzeCgicCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmVtcHR5Iil9KSxfLm1hcChyPT57Y29uc3QgYz1yLnByZXNlbnRhdGlvbix4PWdlKCJzdHJhdGVnaWVzIixjPy5zdHJhdGVneV9wcm9maWxlfHwiIixuLGEoInJlY29uY2lsaWF0aW9uLnVubmFtZWRfc3RyYXRlZ3kiKSkseT1nZSgiYWNjb3VudHMiLHIuYWNjb3VudF9hbGlhc3x8IiIsbixhKCJjb21tb24uYWNjb3VudCIpLHIucGxhdGZvcm18fCIiKTtyZXR1cm4gaS5qc3hzKCJhcnRpY2xlIix7Y2xhc3NOYW1lOiJyZWNvbmNpbGlhdGlvbi1tYXRlcmlhbCIsY2hpbGRyZW46W2kuanN4KCJoMyIse2NoaWxkcmVuOmM/LmxhYmVsW25dfHxhKCJyZWNvbmNpbGlhdGlvbi5tYXRlcmlhbHMiKX0pLGkuanN4cygicCIse2NoaWxkcmVuOlt4LCIgwrcgIix5LCIgwrcgIixpLmpzeCgic3BhbiIse2NsYXNzTmFtZToicmVjb25jaWxpYXRpb24tcmVmIixjaGlsZHJlbjphKCJkZWNpc2lvbnMucmVmIix7aWQ6ci5zaG9ydF9pZH0pfSldfSksaS5qc3hzKCJkbCIse2NoaWxkcmVuOltpLmpzeHMoImRpdiIse2NoaWxkcmVuOltpLmpzeCgiZHQiLHtjaGlsZHJlbjphKCJyZWNvbmNpbGlhdGlvbi5kZWNpc2lvbl9zdGF0dXMiKX0pLGkuanN4KCJkZCIse2NoaWxkcmVuOmM/LmRlY2lzaW9uX3N0YXR1c19sYWJlbFtuXXx8YSgicmVjb25jaWxpYXRpb24uZGVjaXNpb25fdW5rbm93biIpfSldfSksaS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbaS5qc3goImR0Iix7Y2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24uZnJlc2huZXNzIil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjphKHIuZXZpZGVuY2VfZnJlc2huZXNzLnN0YXR1cz09PSJzdGFsZSI/InN0YXRlLnN0YWxlIjpyLmV2aWRlbmNlX2ZyZXNobmVzcy5zdGF0dXM9PT0icmVhZHkiPyJkZWNpc2lvbnMuZnJlc2huZXNzLnJlYWR5IjoiY29tbW9uLnVua25vd24iKX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLm9ic2VydmVkX2F0Iil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjpwKGM/Lmxhc3Rfb2JzZXJ2ZWRfYXR8fHIuZXZpZGVuY2VfZnJlc2huZXNzLmFzX29mKX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmdlbmVyYXRlZF9hdCIpfSksaS5qc3goImRkIix7Y2hpbGRyZW46cChjPy5zb3VyY2VfZ2VuZXJhdGVkX2F0KX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmNvbXB1dGVkX2F0Iil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjpwKGM/LnNvdXJjZV9jb21wdXRlZF9hdCl9KV19KV19KV19LHIuaWQpfSldfSl9Y29uc3QgdWk9WyJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIsInN0cmF0ZWd5X3Byb21vdGlvbiIsIm93bmVyX2RlY2lzaW9uIiwicGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiIsImNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiXSxxZT17aGlnaDowLG1lZGl1bToxLG5vcm1hbDoyfSxwaT0zMCo4NjRlNTtmdW5jdGlvbiBDZShlKXtpZihlLmV2aWRlbmNlX2ZyZXNobmVzcz8uc3RhdHVzPT09InN0YWxlIilyZXR1cm4hMDtjb25zdCBuPWUuY3JlYXRlZF9hdD9EYXRlLnBhcnNlKGUuY3JlYXRlZF9hdCk6TmFOO3JldHVybiBOdW1iZXIuaXNGaW5pdGUobikmJkRhdGUubm93KCktbj5waX1mdW5jdGlvbiBWKGUpe2NvbnN0IG49ZS5kZWNpc2lvbl9iaW5kaW5nO2lmKG4mJnR5cGVvZiBuLnN1YmplY3RfaWQ9PSJzdHJpbmciJiZuLnN1YmplY3RfaWQpcmV0dXJuIG4uc3ViamVjdF9pZDtjb25zdCBhPWUuaWQuaW5kZXhPZigiOiIpO3JldHVybiBhPj0wP2UuaWQuc2xpY2UoYSsxKTplLmlkfWZ1bmN0aW9uIFooZSl7aWYoZS5zdGF0dXM9PT0iZXhwaXJlZCIpcmV0dXJuITA7Y29uc3Qgbj1lLmV4cGlyZXNfYXQ/RGF0ZS5wYXJzZShlLmV4cGlyZXNfYXQpOk5hTjtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pJiZuPERhdGUubm93KCl9ZnVuY3Rpb24gZmkoZSl7cmV0dXJuWy4uLmVdLnNvcnQoKG4sYSk9Pntjb25zdCBzPSsoYS5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpLSsobi5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpO2lmKHMhPT0wKXJldHVybiBzO2NvbnN0IG89KHFlW24ucHJpb3JpdHldPz8zKS0ocWVbYS5wcmlvcml0eV0/PzMpO3JldHVybiBvIT09MD9vOihhLmNyZWF0ZWRfYXR8fCIiKS5sb2NhbGVDb21wYXJlKG4uY3JlYXRlZF9hdHx8IiIpfSl9ZnVuY3Rpb24gVyhlLG4pe2NvbnN0IGE9ZT8uYXBwbGljYXRpb25fcHJlcGFyYXRpb24/LmFjY291bnRfb3B0aW9ucztyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihzPT57aWYoIXN8fHR5cGVvZiBzLnBsYXRmb3JtIT0ic3RyaW5nInx8dHlwZW9mIHMua2V5IT0ic3RyaW5nInx8IXMua2V5LnRyaW0oKSlyZXR1cm4hMTtjb25zdCBvPXMuYnJva2VyX2Vudmlyb25tZW50O3JldHVybiBuP3MucGxhdGZvcm09PT0ibG9uZ2JyaWRnZSImJm89PT0icGFwZXIiOm89PT0ibGl2ZSJ8fG89PT0icGFwZXIiJiZzLnBsYXRmb3JtPT09ImxvbmdicmlkZ2UifSkubWFwKHM9Pih7aWQ6YCR7cy5wbGF0Zm9ybX06JHtzLmtleX1gLHBsYXRmb3JtOlN0cmluZyhzLnBsYXRmb3JtKSxrZXk6U3RyaW5nKHMua2V5KSxsYWJlbDp0eXBlb2Ygcy5sYWJlbD09InN0cmluZyImJnMubGFiZWwudHJpbSgpP3MubGFiZWw6U3RyaW5nKHMua2V5KSxtb2RlOlN0cmluZyhzLmJyb2tlcl9lbnZpcm9ubWVudHx8IiIpfSkpOltdfWZ1bmN0aW9uIG1pKGUpe3JldHVybiBlPT09ImZyZXNoIj8ic3RhdGUuZnJlc2giOmU9PT0ic3RhbGUiPyJzdGF0ZS5zdGFsZSI6ZT09PSJyZWFkeSI/ImRlY2lzaW9ucy5mcmVzaG5lc3MucmVhZHkiOmU9PT0idW5hdmFpbGFibGUiPyJzdGF0ZS51bmF2YWlsYWJsZSI6InN0YXRlLnVua25vd24ifWZ1bmN0aW9uIGJpKHtlcG9jaDplLGNhdGVnb3J5Om59KXtjb25zdCBhPVNlKCkscz1BZSgpLFtvLF9dPWIudXNlU3RhdGUobnVsbCksW3Ascl09Yi51c2VTdGF0ZShudWxsKSxbYyx4XT1iLnVzZVN0YXRlKCExKSxbeSx3XT1iLnVzZVN0YXRlKCExKSxDPWIudXNlUmVmKFhlKCkpLFE9Yi51c2VDYWxsYmFjaygoKT0+e2NvbnN0IHY9Qy5jdXJyZW50LmJlZ2luKCk7XyhudWxsKSx4KCExKSxyKG51bGwpLHhlKDI1KS50aGVuKEU9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiYoXyhFLml0ZW1zKSxyKEUubmV4dF9jdXJzb3IpKX0pLmNhdGNoKCgpPT57Qy5jdXJyZW50LmlzQ3VycmVudCh2KSYmeCghMCl9KX0sW10pO2IudXNlRWZmZWN0KCgpPT5RKCksW1EsZV0pO2NvbnN0IEc9KCk9PntpZighcHx8eSlyZXR1cm47Y29uc3Qgdj1DLmN1cnJlbnQuYmVnaW4oKTt3KCEwKSx4ZSgyNSxwKS50aGVuKEU9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiYoXyhLPT5bLi4uS3x8W10sLi4uRS5pdGVtc10pLHIoRS5uZXh0X2N1cnNvcikpfSkuY2F0Y2goKCk9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiZ4KCEwKX0pLmZpbmFsbHkoKCk9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiZ3KCExKX0pfTtpZihjJiYhbz8ubGVuZ3RoKXJldHVybiBpLmpzeChUZSx7b25SZXRyeTpRfSk7aWYoIW8pcmV0dXJuIGkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbaS5qc3goSCx7aGVpZ2h0OjU2fSksaS5qc3goImRpdiIse3N0eWxlOntoZWlnaHQ6OH19KSxpLmpzeChILHtoZWlnaHQ6NTZ9KV19KTtjb25zdCBQPW49PT0iYWxsIj9vOm8uZmlsdGVyKHY9PnYuY2F0ZWdvcnk9PT1uKTtyZXR1cm4gUC5sZW5ndGg9PT0wP2kuanN4KGRlLHt0aXRsZTphKCJkZWNpc2lvbnMuaGlzdG9yeS5lbXB0eSIpfSk6aS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoImRlY2lzaW9ucy5oaXN0b3J5X3RpdGxlIil9KSxpLmpzeChaZSx7aXRlbXM6UC5tYXAodj0+KHtpZDp2LmlkLHRpbWU6di50aW1lLHRpdGxlOmkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbdi5hY3Rvcl9hbGlhc3x8YSgiY29tbW9uLnVua25vd24iKSwiIMK3ICIsYShgZGVjaXNpb25zLmFjdGlvbi4ke3YuYWN0aW9ufWApXX0pLGRldGFpbDppLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2EoYGNhdGVnb3J5LiR7di5jYXRlZ29yeX1gKSwiIMK3ICIsYSgiZGVjaXNpb25zLnJlZiIse2lkOnYuaXRlbV9zaG9ydF9pZH0pLCIgwrcgIix1ZSh2LnRpbWUscykudGV4dF19KX0pKX0pLHAmJmkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWhpc3RvcnktbW9yZSIsY2hpbGRyZW46aS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsZGlzYWJsZWQ6eSxvbkNsaWNrOkcsY2hpbGRyZW46YSh5PyJjb21tb24ubG9hZGluZyI6ImNvbW1vbi5sb2FkX21vcmUiKX0pfSksYyYmaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmEoImVycm9yLmdlbmVyaWMiKX0pXX0pfWZ1bmN0aW9uIGtpKCl7Y29uc3QgZT1TZSgpLG49RmUoKSxhPUFlKCkscz1MZSgpLG89R2UoKSx7Y29uZmlybVJlcXVlc3Q6Xyxjb25maXJtOnAscmVzb2x2ZUNvbmZpcm06cn09VWUoKSxbYyx4XT1iLnVzZVN0YXRlKCJhbGwiKSxbeSx3XT1iLnVzZVN0YXRlKCJwZW5kaW5nIiksW0MsUV09Yi51c2VTdGF0ZSgwKSxbRyxQXT1iLnVzZVN0YXRlKG51bGwpLFt2LEVdPWIudXNlU3RhdGUoe30pLFtLLGZlXT1iLnVzZVN0YXRlKHt9KSxqPWNlKCgpPT5QZShDPjApLFtDXSksbWU9Y2UoKCk9PkJlKCksW10pLGJlPW1lLnBoYXNlPT09InJlYWR5IiYmbWUuZGF0YS5hZG1pbj09PSEwLEY9Yi51c2VSZWYoc2koKSksSj1iLnVzZVJlZihpaSgpKSxJPWIudXNlQ2FsbGJhY2soKCk9PlEodD0+dCsxKSxbXSksZWU9Yi51c2VNZW1vKCgpPT5qLnBoYXNlPT09InJlYWR5IiYmai5kYXRhLnN0YXR1cyE9PSJyZWFkX2ZhaWxlZCI/ai5kYXRhLml0ZW1zOltdLFtqXSksb2U9Yi51c2VNZW1vKCgpPT5maShlZS5maWx0ZXIodD0+dC5zdGF0dXM9PT0icGVuZGluZyJ8fHQuc3RhdHVzPT09ImV4cGlyZWQiKSksW2VlXSkseWU9Yi51c2VNZW1vKCgpPT5lZS5maWx0ZXIodD0+dC5zdGF0dXM9PT0icGVuZGluZyIpLmxlbmd0aCxbZWVdKSxYPWIudXNlTWVtbygoKT0+Yz09PSJhbGwiP29lOm9lLmZpbHRlcih0PT50LmNhdGVnb3J5PT09YyksW29lLGNdKSxBPVguZmluZCh0PT50LmlkPT09Ryl8fG51bGw7Yi51c2VFZmZlY3QoKCk9PntqLnBoYXNlPT09InJlYWR5IiYmRyYmIVguc29tZSh0PT50LmlkPT09RykmJlAobnVsbCl9LFtqLnBoYXNlLEcsWF0pO2NvbnN0IGhlPSEhKEEmJkEuc3RhdHVzPT09InBlbmRpbmciJiYhWihBKSYmKEEuY2F0ZWdvcnk9PT0ic3RyYXRlZ3lfcHJvbW90aW9uInx8QS5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIikpLGllPWNlKCgpPT5oZT9CKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi10aWNrZXRzIik6UHJvbWlzZS5yZXNvbHZlKG51bGwpLFtoZSxBPy5pZCxDXSksWT1iLnVzZU1lbW8oKCk9PntpZighQXx8aWUucGhhc2UhPT0icmVhZHkifHwhaWUuZGF0YSlyZXR1cm4gbnVsbDtjb25zdCB0PWllLmRhdGEuYXBwbGljYXRpb25zO3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0LmZpbmQobD0+bD8udGlja2V0X2lkPT09VihBKSl8fG51bGx9LFtBLGllXSksVD0odCxsKT0+byh7a2luZDp0LHRleHQ6ZShsKX0pLHNlPXQ9Pnt0IGluc3RhbmNlb2YgUWV8fChUKCJlcnJvciIsdCBpbnN0YW5jZW9mIEtlJiZ0LnN0YXR1cz09PTQwOT8iZXJyb3IuY29uZmxpY3QiOiJlcnJvci5nZW5lcmljIiksSSgpKX0sRWU9YXN5bmModCxsLGcpPT57Y29uc3QgdT1WKHQpLGQ9dC5jYXRlZ29yeT09PSJvd25lcl9kZWNpc2lvbiI/Im93bmVyIjp0LmNhdGVnb3J5PT09InJlY29uY2lsaWF0aW9uX3JlY292ZXJ5Ij8icmVjb3ZlcnkiOiJwcm9tb3Rpb24iO2xldCBrLGgsTyxmPW51bGw7dHJ5e2lmKGQ9PT0ib3duZXIiKXtjb25zdCBtPSgoYXdhaXQgQigiL2FwaS9vd25lci1kZWNpc2lvbnMiKSkuY2FuZGlkYXRlc3x8W10pLmZpbmQoUj0+Uj8uY2FuZGlkYXRlPy5jYW5kaWRhdGVfaWQ9PT11KTtpZighbSl7VCgiaW5mbyIsImRlY2lzaW9ucy5pbnRlbnRfbm90X3BlbmRpbmciKSxJKCk7cmV0dXJufWNvbnN0IEQ9V2Uoey4uLm0uY2FuZGlkYXRlLGNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTY6bS5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2fSxsPT09ImFkb3B0Ij8iYXBwcm92ZV9saW1pdGVkX2xpdmVfY2FuYXJ5Ijoia2VlcF9wYXJrZWQiKTtpZighRCl7VChtLmludGVudD8iaW5mbyI6ImVycm9yIixtLmludGVudD8iZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyI6ImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKSxJKCk7cmV0dXJufWs9bSxoPUQsTz0iL2FwaS9vd25lci1kZWNpc2lvbnMifWVsc2UgaWYoZD09PSJyZWNvdmVyeSIpe2NvbnN0IG09KChhd2FpdCBCKCIvYXBpL3JlY29uY2lsaWF0aW9uLXJlY292ZXJ5IikpLnJlY292ZXJpZXN8fFtdKS5maW5kKFI9PlI/LnJlY292ZXJ5Py5yZWNvdmVyeV9pZD09PXUpO2lmKCFtKXtUKCJpbmZvIiwiZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyIpLEkoKTtyZXR1cm59Y29uc3QgRD1laShtLGw9PT0iYWRvcHQiPyJhcHByb3ZlIjoicmVqZWN0Iik7aWYoIUQpe2NvbnN0IFI9ISEobS5jb25maXJtYXRpb258fG0ucmVqZWN0aW9uKTtUKFI/ImluZm8iOiJlcnJvciIsUj8iZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyI6ImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKSxJKCk7cmV0dXJufWs9bSxoPUQsTz0iL2FwaS9yZWNvbmNpbGlhdGlvbi1yZWNvdmVyeS1jb25maXJtYXRpb25zIn1lbHNle2NvbnN0IHE9YXdhaXQgQigiL2FwaS9yZXNlYXJjaC1wcm9tb3Rpb24tdGlja2V0cyIpLG09KHEudGlja2V0c3x8W10pLmZpbmQoUj0+Uj8udGlja2V0X2lkPT09dSk7aWYoIW0pe1QoImluZm8iLCJkZWNpc2lvbnMuaW50ZW50X25vdF9wZW5kaW5nIiksSSgpO3JldHVybn1sZXQgRD1udWxsO2lmKGw9PT0iYWRvcHQiKXtjb25zdCBSPShxLmFwcGxpY2F0aW9uc3x8W10pLmZpbmQobGU9PmxlPy50aWNrZXRfaWQ9PT11KSxyZT1XKFIsITEpLmZpbmQobGU9PmxlLmlkPT09Zyk7aWYoIXJlKXtUKCJlcnJvciIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKTtyZXR1cm59RD1yZSxmPXJlfWs9bSxoPXt0aWNrZXRfaWQ6bS50aWNrZXRfaWQsZGVjaXNpb246bD09PSJhZG9wdCI/ImFjY2VwdCI6InJlamVjdCIsY29uZmlybWF0aW9uOkQ/e3RhcmdldF9wbGF0Zm9ybTpELnBsYXRmb3JtLGV4ZWN1dGlvbl9tb2RlOkQubW9kZSxyaXNrX3Byb2ZpbGU6IkNBUElUQUxfUFJFU0VSVkFUSU9OIn06bnVsbCwuLi5EP3tzZWxlY3RlZF9hY2NvdW50OntwbGF0Zm9ybTpELnBsYXRmb3JtLGtleTpELmtleX19Ont9LGV4cGVjdGVkX3Byb3Bvc2VkX3BhcmFtczptLnByb3Bvc2VkX3BhcmFtc3x8e30sZXhwZWN0ZWRfc3RyYXRlZ3lfcHJvZmlsZTptLnN0cmF0ZWd5X3Byb2ZpbGUsZXhwZWN0ZWRfZG9tYWluOm0uZG9tYWlufSxPPSIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi1kZWNpc2lvbnMifX1jYXRjaChxKXtzZShxKTtyZXR1cm59Y29uc3QgTj1GLmN1cnJlbnQuZXBvY2goKSxTPWF3YWl0IG9pKGQsayxoKTtpZihOIT09Ri5jdXJyZW50LmVwb2NoKCkpcmV0dXJuO2lmKCFTKXtUKCJlcnJvciIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKTtyZXR1cm59aWYoIXRpKHQuZGVjaXNpb25fYmluZGluZyxTKSl7VCgiaW5mbyIsImRlY2lzaW9ucy5tYXRlcmlhbF9jaGFuZ2VkIiksSSgpO3JldHVybn1pZighYXdhaXQgdmUodCxsLCExLGYpfHxOIT09Ri5jdXJyZW50LmVwb2NoKCl8fFoodCkpcmV0dXJuO2NvbnN0IHo9Ri5jdXJyZW50LnN0YXJ0KFMpO2lmKCF6KXJldHVybjtjb25zdCAkPWBpbnRlbnQ6JHt0LmlkfWA7RShxPT4oey4uLnEsWyRdOiEwfSkpO3RyeXtjb25zdCBxPWF3YWl0IHdlKE8sey4uLmgsZXhwZWN0ZWRfbWF0ZXJpYWxfc2hhMjU2OlMubWF0ZXJpYWxfc2hhMjU2LC4uLlMucmV2aWV3X3NoYTI1Nj97ZXhwZWN0ZWRfcmV2aWV3X3NoYTI1NjpTLnJldmlld19zaGEyNTZ9Ont9fSk7aWYoIUYuY3VycmVudC5jdXJyZW50KHopKXJldHVybjtjb25zdCBtPWF3YWl0IEYuY3VycmVudC5yZWNlaXZlKHoscT8uZGVjaXNpb25fcmVjZWlwdCk7VChtPyJzdWNjZXNzIjoiZXJyb3IiLG0/ImRlY2lzaW9ucy5pbnRlbnRfcmVjb3JkZWQiOiJlcnJvci5nZW5lcmljIiksSSgpfWNhdGNoKHEpe3NlKHEpfWZpbmFsbHl7Ri5jdXJyZW50LmN1cnJlbnQoeikmJkUocT0+KHsuLi5xLFskXTohMX0pKX19LEllPWFzeW5jKHQsbCk9Pntjb25zdCBnPVYodCksdT1gYXBwbHk6JHtnfWA7aWYoIUouY3VycmVudC5hY3F1aXJlKHUpKXJldHVybjtFKGs9Pih7Li4uayxbdV06ITB9KSk7bGV0IGQ9ITE7dHJ5e2NvbnN0IGg9KChhd2FpdCBCKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi10aWNrZXRzIikpLmFwcGxpY2F0aW9uc3x8W10pLmZpbmQoTj0+Tj8udGlja2V0X2lkPT09ZyksTz1XKGgsITApLmZpbmQoTj0+Ti5pZD09PWwpO2lmKCFofHwhT3x8IU5lKGgsbCkpe1QoImVycm9yIiwiZGVjaXNpb25zLmludGVudF91bmF2YWlsYWJsZSIpO3JldHVybn1jb25zdCBmPWF3YWl0IEIoIi9hcGkvYWRtaW4vcnVudGltZS1pbnN0YW5jZXMiKTtkPSEwLGF3YWl0IHdlKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi1hcHBsaWNhdGlvbnMiLHt0aWNrZXRfaWQ6ZyxzZWxlY3RlZF9hY2NvdW50OntwbGF0Zm9ybTpPLnBsYXRmb3JtLGtleTpPLmtleX0sZXhwZWN0ZWRfcmV2aXNpb246TnVtYmVyKGYucmV2aXNpb24pfSksVCgic3VjY2VzcyIsImRlY2lzaW9ucy5hcHBsaWNhdGlvbl9zdWJtaXR0ZWQiKSxJKCl9Y2F0Y2goayl7c2Uoayl9ZmluYWxseXtFKGs9Pih7Li4uayxbdV06ITF9KSksZHx8Si5jdXJyZW50LnJlbGVhc2UodSl9fSx2ZT0odCxsLGcsdSk9PnAoe3RpdGxlOmUobD09PSJhZG9wdCI/ImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X3RpdGxlIjoiZGVjaXNpb25zLmNvbmZpcm1fZGVjbGluZV90aXRsZSIpLHRhcmdldDp1P2Ake2FlKHQsZSl9IMK3ICR7dS5sYWJlbH0gKCR7dS5wbGF0Zm9ybX0gLyAke3Uua2V5fSAvICR7dS5tb2RlfSlgOmFlKHQsZSksc3VtbWFyeTplKGc/ImRlY2lzaW9ucy5hcHBseV9ub3RlIjoiZGVjaXNpb25zLmNvbmZpcm1fYm9keSIpLGJvZHk6aS5qc3goamUse3Jvd3M6dC5kaWZmLm1hcChkPT4oey4uLmQsbGFiZWw6ZShkLmxhYmVsX2tleSk9PT1kLmxhYmVsX2tleT9kLmZpZWxkOmUoZC5sYWJlbF9rZXkpLGFmZmVjdHNMaXZlOmQuYWZmZWN0c19saXZlfSkpfSksY29uc2VxdWVuY2U6ZSgiZGVjaXNpb25zLmludGVudF9ub3RlIiksdG9uZTpsPT09ImFkb3B0Ij8ibm9ybWFsIjoiZGFuZ2VyIixjb25maXJtTGFiZWw6ZShsPT09ImFkb3B0Ij8iZGVjaXNpb25zLmNvbmZpcm1fYWRvcHRfbGFiZWwiOiJkZWNpc2lvbnMuY29uZmlybV9kZWNsaW5lX2xhYmVsIil9KSxuZT1hc3luYyh0LGwpPT57aWYoIWJlfHx0LnN0YXR1cyE9PSJwZW5kaW5nInx8Wih0KSlyZXR1cm47Y29uc3QgZz1gY29uZmlybToke3QuaWR9YDtpZighSi5jdXJyZW50LmFjcXVpcmUoZykpcmV0dXJuO2NvbnN0IHU9YGludGVudDoke3QuaWR9YDtFKGQ9Pih7Li4uZCxbdV06ITB9KSk7dHJ5e2NvbnN0IGQ9dC5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIiYmbD09PSJhZG9wdCIsaz1XKFksdC5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIiksaD1fZShrLEtbdC5pZF0pO2lmKGw9PT0iYWRvcHQiJiYoZHx8dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iKSYmIWgpe1QoImVycm9yIiwiZGVjaXNpb25zLmludGVudF91bmF2YWlsYWJsZSIpO3JldHVybn1kJiZoP2F3YWl0IHZlKHQsbCwhMCxoKSYmYXdhaXQgSWUodCxoLmlkKTphd2FpdCBFZSh0LGwsaD8uaWQ/P251bGwpfWZpbmFsbHl7Si5jdXJyZW50LnJlbGVhc2UoZyksRShkPT4oey4uLmQsW3VdOiExfSkpfX07ZnVuY3Rpb24gYWUodCxsKXtjb25zdCBnPWwodC50aXRsZV9rZXkpO3JldHVybiBnPT09dC50aXRsZV9rZXk/dC5zaG9ydF9pZDpnfWNvbnN0IFJlPVt7aWQ6ImFsbCIsbGFiZWw6ZSgiZGVjaXNpb25zLmZpbHRlci5hbGwiKX0sLi4udWkubWFwKHQ9Pih7aWQ6dCxsYWJlbDplKGBjYXRlZ29yeS4ke3R9YCl9KSldLHplPSgpPT57aWYoIUEpcmV0dXJuIG51bGw7Y29uc3QgdD1BLGw9Wih0KSxnPXQuc3RhdHVzPT09InBlbmRpbmciJiYhbCx1PXQuZGlmZi5tYXAoZj0+e2NvbnN0IE49ZShmLmxhYmVsX2tleSk7cmV0dXJue2ZpZWxkOmYuZmllbGQsbGFiZWw6Tj09PWYubGFiZWxfa2V5P2YuZmllbGQ6TixiZWZvcmU6Zi5iZWZvcmUsYWZ0ZXI6Zi5hZnRlcixhZmZlY3RzTGl2ZTpmLmFmZmVjdHNfbGl2ZX19KSxkPSEhdltgaW50ZW50OiR7dC5pZH1gXSxrPSEhdltgYXBwbHk6JHtWKHQpfWBdLGg9ZHx8aztsZXQgTz1udWxsO2lmKGcmJmJlKWlmKHQuY2F0ZWdvcnk9PT0iY3JlZGVudGlhbF9tYWludGVuYW5jZSIpTz1pLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixvbkNsaWNrOigpPT5zKHtwYWdlOiJoZWFsdGgifSksY2hpbGRyZW46ZSgiZGVjaXNpb25zLm9wZW5faGVhbHRoIil9KTtlbHNlIGlmKHQuY2F0ZWdvcnk9PT0icGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiIpe2NvbnN0IGY9VyhZLCEwKSxOPV9lKGYsS1t0LmlkXSk/LmlkPz8iIixTPXQuYXBwbGljYXRpb25fc3RhdHVzPT09InVuY2VydGFpbiIsej0hIShOJiZZJiZOZShZLE4pKTtPPWkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbZi5sZW5ndGg+MSYmaS5qc3hzKCJsYWJlbCIse2NsYXNzTmFtZToiZGVjaXNpb24tYWNjb3VudC1waWNrZXIiLGNoaWxkcmVuOltpLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImRlY2lzaW9ucy5zZWxlY3RfYWNjb3VudCIpfSksaS5qc3hzKCJzZWxlY3QiLHt2YWx1ZTpOLG9uQ2hhbmdlOiQ9PmZlKHE9Pih7Li4ucSxbdC5pZF06JC50YXJnZXQudmFsdWV9KSksY2hpbGRyZW46W2kuanN4cygib3B0aW9uIix7dmFsdWU6IiIsY2hpbGRyZW46W2UoImRlY2lzaW9ucy5zZWxlY3RfYWNjb3VudCIpLCLigKYiXX0pLGYubWFwKCQ9PmkuanN4KCJvcHRpb24iLHt2YWx1ZTokLmlkLGNoaWxkcmVuOiQubGFiZWx9LCQuaWQpKV19KV19KSxpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3gtYWN0aW9ucyIsY2hpbGRyZW46W1M/aS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5hcHBsaWNhdGlvbl91bmNlcnRhaW4iKX0pOmkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbZi5sZW5ndGg9PT0wP2kuanN4KCJwIix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1ub3RlIixjaGlsZHJlbjplKCJkZWNpc2lvbnMubm9fYWNjb3VudF9vcHRpb25zIil9KTppLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6aHx8IXp8fEouY3VycmVudC5pc0xvY2tlZChgYXBwbHk6JHtWKHQpfWApLG9uQ2xpY2s6KCk9PntuZSh0LCJhZG9wdCIpfSxjaGlsZHJlbjplKGs/ImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoiZGVjaXNpb25zLmFkb3B0X2ludGVudCIpfSksaS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsZGlzYWJsZWQ6aCxvbkNsaWNrOigpPT57bmUodCwiZGVjbGluZSIpfSxjaGlsZHJlbjplKGQ/ImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoiZGVjaXNpb25zLmRlY2xpbmVfaW50ZW50Iil9KV19KSxpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46ZShmLmxlbmd0aD09PTB8fFM/ImRlY2lzaW9ucy5pbnRlbnRfbm90ZSI6ImRlY2lzaW9ucy5hcHBseV9ub3RlIil9KV19KV19KX1lbHNle2NvbnN0IGY9dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iP1coWSwhMSk6W10sTj1fZShmLEtbdC5pZF0pPy5pZD8/IiI7Tz1pLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2YubGVuZ3RoPjEmJmkuanN4cygibGFiZWwiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWFjY291bnQtcGlja2VyIixjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiKX0pLGkuanN4cygic2VsZWN0Iix7dmFsdWU6TixvbkNoYW5nZTpTPT5mZSh6PT4oey4uLnosW3QuaWRdOlMudGFyZ2V0LnZhbHVlfSkpLGNoaWxkcmVuOltpLmpzeHMoIm9wdGlvbiIse3ZhbHVlOiIiLGNoaWxkcmVuOltlKCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiKSwi4oCmIl19KSxmLm1hcChTPT5pLmpzeCgib3B0aW9uIix7dmFsdWU6Uy5pZCxjaGlsZHJlbjpTLmxhYmVsfSxTLmlkKSldfSldfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImluYm94LWFjdGlvbnMiLGNoaWxkcmVuOltpLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6aHx8dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iJiYhTixvbkNsaWNrOigpPT57bmUodCwiYWRvcHQiKX0sY2hpbGRyZW46ZShkPyJkZWNpc2lvbnMuc3VibWl0dGluZyI6ImRlY2lzaW9ucy5hZG9wdF9pbnRlbnQiKX0pLGkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLGRpc2FibGVkOmgsb25DbGljazooKT0+e25lKHQsImRlY2xpbmUiKX0sY2hpbGRyZW46ZShkPyJkZWNpc2lvbnMuc3VibWl0dGluZyI6ImRlY2lzaW9ucy5kZWNsaW5lX2ludGVudCIpfSksaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5pbnRlbnRfbm90ZSIpfSldfSldfSl9cmV0dXJuIGkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIGluYm94LWRldGFpbCIsY2hpbGRyZW46W2kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1kZXRhaWwtaGVhZCIsY2hpbGRyZW46W2kuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgaW5ib3gtYmFjayIsb25DbGljazooKT0+UChudWxsKSxjaGlsZHJlbjplKCJjb21tb24uYmFjayIpfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWJhZGdlcyIsY2hpbGRyZW46W2kuanN4KFUse3RvbmU6dC5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI/Indhcm4iOiJhY2NlbnQiLGNoaWxkcmVuOmUoYGNhdGVnb3J5LiR7dC5jYXRlZ29yeX1gKX0pLGkuanN4KFUse3RvbmU6dC5zdGF0dXM9PT0iZGVjaWRlZCI/Im9rIjpsPyJ1bmtub3duIjoid2FybiIsY2hpbGRyZW46ZShgZGVjaXNpb25zLnN0YXR1cy4ke2w/ImV4cGlyZWQiOnQuc3RhdHVzfWApfSksdC5hZmZlY3RzX2xpdmUmJmkuanN4KFUse3RvbmU6Indhcm4iLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5jb2wuYWZmZWN0c19saXZlIil9KV19KSxpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLHN0eWxlOnttYXJnaW46MH0sY2hpbGRyZW46YWUodCxlKX0pLGkuanN4KCJwIix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1wcm9tcHQiLGNoaWxkcmVuOmUoYGRlY2lzaW9ucy5wcm9tcHQuJHt0LmNhdGVnb3J5fWApfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW1ldGEiLGNoaWxkcmVuOltpLmpzeCgic3BhbiIse2NoaWxkcmVuOnQuYWNjb3VudF9hbGlhcz9uLmFjY291bnQodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pOmUoImRlY2lzaW9ucy5hY2NvdW50X2dsb2JhbCIpfSksdC5wbGF0Zm9ybSYmaS5qc3goInNwYW4iLHtjaGlsZHJlbjp0LnBsYXRmb3JtfSksdC5jcmVhdGVkX2F0JiZpLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImRlY2lzaW9ucy5jcmVhdGVkX2F0Iix7dmFsdWU6dWUodC5jcmVhdGVkX2F0LGEpLnRleHR9KX0pLHQuZXhwaXJlc19hdCYmaS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMuZXhwaXJlc19hdCIse3ZhbHVlOnVlKHQuZXhwaXJlc19hdCxhKS50ZXh0fSl9KSxDZSh0KSYmaS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImRlY2lzaW9uLXN0YWxlLWhpbnQiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5zdGFsZV9oaW50Iil9KV19KV19KSx1Lmxlbmd0aD4wJiZpLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2kuanN4KCJoMyIse2NsYXNzTmFtZToiZGVjaXNpb24tc2VjdGlvbi10aXRsZSIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLmRpZmZfdGl0bGUiKX0pLGkuanN4KGplLHtyb3dzOnV9KV19KSxpLmpzeHMoImRldGFpbHMiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW1hdGVyaWFscyIsY2hpbGRyZW46W2kuanN4KCJzdW1tYXJ5Iix7Y2hpbGRyZW46ZSgiZGVjaXNpb25zLm1hdGVyaWFscyIpfSksaS5qc3goInAiLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMucmVmIix7aWQ6dC5zaG9ydF9pZH0pfSksaS5qc3goInAiLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMubWF0ZXJpYWxfZnJlc2huZXNzIix7dmFsdWU6ZShtaSh0LmV2aWRlbmNlX2ZyZXNobmVzcz8uc3RhdHVzKSl9KX0pLHQuZXZpZGVuY2VfZnJlc2huZXNzPy5hc19vZiYmaS5qc3goTWUse3ZhbHVlOnQuZXZpZGVuY2VfZnJlc2huZXNzLmFzX29mfSldfSksT119KX0sJGU9KCk9PntpZihqLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3giLGNoaWxkcmVuOltpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3gtbGlzdCIsY2hpbGRyZW46W2kuanN4KEgse2hlaWdodDo2NH0pLGkuanN4KEgse2hlaWdodDo2NH0pLGkuanN4KEgse2hlaWdodDo2NH0pXX0pLGkuanN4KEgse2hlaWdodDoyODB9KV19KTtpZihqLnBoYXNlPT09ImVycm9yInx8ai5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpcmV0dXJuIGkuanN4KFRlLHtkYXRhOmouZGF0YSxlcnJvcjpqLmVycm9yLG9uUmV0cnk6ai5waGFzZT09PSJlcnJvciI/ai5yZWxvYWQ6SX0pO2NvbnN0IHQ9ai5kYXRhLnNvdXJjZXMuZmlsdGVyKGw9Pmwuc3RhdHVzIT09Im9rIik7cmV0dXJuIGkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbdC5sZW5ndGg+MCYmaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnBhcnRpYWxfc291cmNlcyIse3ZhbHVlOnQubWFwKGw9PmUoYGRlY2lzaW9ucy5zb3VyY2UuJHtsLnNvdXJjZX1gKSkuam9pbihhPT09InpoIj8i44CBIjoiLCAiKX0pfSksWC5sZW5ndGg9PT0wP2kuanN4KGRlLHt0aXRsZTplKCJkZWNpc2lvbnMuZW1wdHlfcGVuZGluZyIpfSk6aS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YGluYm94JHtBPyIgZGV0YWlsLW9wZW4iOiIifWAsY2hpbGRyZW46W2kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImluYm94LWxpc3QiLHJvbGU6Imxpc3QiLGNoaWxkcmVuOlgubWFwKGw9Pntjb25zdCBnPVoobCksdT1IZShsLmNyZWF0ZWRfYXQsYSk7cmV0dXJuIGkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixyb2xlOiJsaXN0aXRlbSIsY2xhc3NOYW1lOmBpbmJveC1pdGVtJHtBPy5pZD09PWwuaWQ/IiBhY3RpdmUiOiIifSR7Zz8iIGlzLWV4cGlyZWQiOiIifWAsb25DbGljazooKT0+UChsLmlkKSxjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHByaW9yaXR5LWRvdCBwcmlvcml0eS0ke2wucHJpb3JpdHl9YCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGkuanN4cygic3BhbiIse2NsYXNzTmFtZToiaXRlbS1tYWluIixjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tdGl0bGUiLGNoaWxkcmVuOmFlKGwsZSl9KSxpLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tbWV0YSIsY2hpbGRyZW46W2wuY2F0ZWdvcnk9PT0icmVjb25jaWxpYXRpb25fcmVjb3ZlcnkiJiZpLmpzeChVLHt0b25lOiJ3YXJuIixjaGlsZHJlbjplKCJjYXRlZ29yeS5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpfSksaS5qc3goInNwYW4iLHtjaGlsZHJlbjpsLmFjY291bnRfYWxpYXM/bi5hY2NvdW50KGwuYWNjb3VudF9hbGlhcyxsLnBsYXRmb3JtKTplKCJkZWNpc2lvbnMuYWNjb3VudF9nbG9iYWwiKX0pLHUmJmkuanN4KCJzcGFuIix7Y2hpbGRyZW46dX0pLENlKGwpJiZpLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZGVjaXNpb24tc3RhbGUtaGludCIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnN0YWxlX2hpbnQiKX0pXX0pXX0pLGkuanN4KFUse3RvbmU6Zz8idW5rbm93biI6Indhcm4iLGNoaWxkcmVuOmUoYGRlY2lzaW9ucy5zdGF0dXMuJHtnPyJleHBpcmVkIjpsLnN0YXR1c31gKX0pXX0sbC5pZCl9KX0pLHplKCl8fGkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImNhcmQgaW5ib3gtZGV0YWlsIixjaGlsZHJlbjppLmpzeChkZSx7dGl0bGU6ZSgiZGVjaXNpb25zLnNlbGVjdF9wcm9tcHQiKX0pfSldfSldfSl9O3JldHVybiBpLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2kuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnRpdGxlIil9KSxpLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGRlY2lzaW9uLXJlZnJlc2giLG9uQ2xpY2s6SSxjaGlsZHJlbjplKCJjb21tb24ucmVmcmVzaCIpfSldfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9ucy1maWx0ZXJzIixjaGlsZHJlbjpbaS5qc3goWWUse2lkOiJkZWNpc2lvbnMiLGl0ZW1zOlJlLGFjdGl2ZTpjLG9uQ2hhbmdlOnQ9PngodCksYXJpYUxhYmVsOmUoImRlY2lzaW9ucy50aXRsZSIpfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjplKCJkZWNpc2lvbnMudGl0bGUiKSxjaGlsZHJlbjpbaS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLXByZXNzZWQiOnk9PT0icGVuZGluZyIsY2xhc3NOYW1lOmBzZWdtZW50JHt5PT09InBlbmRpbmciPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PncoInBlbmRpbmciKSxjaGlsZHJlbjpbZSgiZGVjaXNpb25zLnRhYi5wZW5kaW5nIikseWU+MCYmaS5qc3goInNwYW4iLHtjbGFzc05hbWU6InNlZ21lbnQtc3ViIixjaGlsZHJlbjp5ZX0pXX0pLGkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLXByZXNzZWQiOnk9PT0iZGVjaWRlZCIsY2xhc3NOYW1lOmBzZWdtZW50JHt5PT09ImRlY2lkZWQiPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PncoImRlY2lkZWQiKSxjaGlsZHJlbjplKCJkZWNpc2lvbnMudGFiLmRlY2lkZWQiKX0pXX0pXX0pLGkuanN4KGRpLHtkYXRhOmoucGhhc2U9PT0icmVhZHkiP2ouZGF0YTpudWxsLGxhbmd1YWdlOmEsdDplfSksaS5qc3goImRpdiIse2lkOiJkZWNpc2lvbnMtcGFuZWwiLHJvbGU6InRhYnBhbmVsIiwiYXJpYS1sYWJlbGxlZGJ5IjpgZGVjaXNpb25zLXRhYi0ke2N9YCx0YWJJbmRleDowLGNoaWxkcmVuOnk9PT0icGVuZGluZyI/JGUoKTppLmpzeChiaSx7ZXBvY2g6QyxjYXRlZ29yeTpjfSl9KSxfJiZpLmpzeChWZSx7cmVxdWVzdDpfLG9uUmVzb2x2ZTpyfSldfSl9ZXhwb3J0e2tpIGFzIGRlZmF1bHR9Owo=" }, - "/v2/assets/Dialog-BWfaQLwt.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgaixqIGFzIGUsRCBhcyB2LHIgYXMgbH1mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2Z1bmN0aW9uIHgoe3ZhbHVlOm59KXtyZXR1cm4gbj09bnVsbD9lLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KTp0eXBlb2Ygbj09ImJvb2xlYW4iP2UuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOm4/IuKckyI6IuKclSJ9KTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpTdHJpbmcobil9KX1mdW5jdGlvbiBrKHtyb3dzOm59KXtjb25zdCB0PWooKTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToidGFibGUtd3JhcCIsY2hpbGRyZW46ZS5qc3hzKCJ0YWJsZSIse2NsYXNzTmFtZToiZGF0YS10YWJsZSIsY2hpbGRyZW46W2UuanN4KCJ0aGVhZCIse2NoaWxkcmVuOmUuanN4cygidHIiLHtjaGlsZHJlbjpbZS5qc3goInRoIix7Y2hpbGRyZW46dCgiZGVjaXNpb25zLmNvbC5maWVsZCIpfSksZS5qc3goInRoIix7Y2hpbGRyZW46dCgiZGVjaXNpb25zLmNvbC5jdXJyZW50Iil9KSxlLmpzeCgidGgiLHtjaGlsZHJlbjp0KCJkZWNpc2lvbnMuY29sLnByb3Bvc2VkIil9KSxlLmpzeCgidGgiLHtjaGlsZHJlbjp0KCJkZWNpc2lvbnMuY29sLmFmZmVjdHNfbGl2ZSIpfSldfSl9KSxlLmpzeCgidGJvZHkiLHtjaGlsZHJlbjpuLm1hcChzPT5lLmpzeHMoInRyIix7Y2hpbGRyZW46W2UuanN4KCJ0ZCIse2NoaWxkcmVuOnMubGFiZWx9KSxlLmpzeCgidGQiLHtjaGlsZHJlbjplLmpzeCh4LHt2YWx1ZTpzLmJlZm9yZX0pfSksZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goeCx7dmFsdWU6cy5hZnRlcn0pfSksZS5qc3goInRkIix7Y2xhc3NOYW1lOnMuYWZmZWN0c0xpdmU/ImRpZmYtYWZmZWN0cy1saXZlIjoiIixjaGlsZHJlbjpzLmFmZmVjdHNMaXZlP3QoImRlY2lzaW9ucy5hZmZlY3RzX2xpdmVfeWVzIik6dCgiZGVjaXNpb25zLmFmZmVjdHNfbGl2ZV9ubyIpfSldfSxzLmZpZWxkKSl9KV19KX0pfWZ1bmN0aW9uIEMoe2l0ZW1zOm59KXtyZXR1cm4gZS5qc3goInVsIix7Y2xhc3NOYW1lOiJ0aW1lbGluZSIsY2hpbGRyZW46bi5tYXAodD0+ZS5qc3hzKCJsaSIse2NoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2hpbGRyZW46dC50aXRsZX0pLHQuZGV0YWlsJiZlLmpzeCgiZGl2Iix7c3R5bGU6e2NvbG9yOiJ2YXIoLS1tdXRlZCkiLGZvbnRTaXplOjEzfSxjaGlsZHJlbjp0LmRldGFpbH0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6InRpbWVsaW5lLXRpbWUiLGNoaWxkcmVuOmUuanN4KHYse3ZhbHVlOnQudGltZX0pfSldfSx0LmlkKSl9KX1mdW5jdGlvbiBUKHtyZXF1ZXN0Om4sb25SZXNvbHZlOnR9KXtjb25zdCBzPWooKSxyPWwudXNlUmVmKG51bGwpLGQ9bC51c2VSZWYobnVsbCksW2MsZl09bC51c2VTdGF0ZSghMSksW2kscF09bC51c2VTdGF0ZSgiIik7bC51c2VFZmZlY3QoKCk9PntkLmN1cnJlbnQ/LmZvY3VzKCl9LFtdKTtjb25zdCBtPSFuLnR5cGVUb0NvbmZpcm18fGkudHJpbSgpPT09bi50eXBlVG9Db25maXJtLmV4cGVjdGVkLGI9IW4uYWNrTGFiZWx8fGMsZz1tJiZiLHk9YT0+e2lmKGEua2V5PT09IkVzY2FwZSIpe2EucHJldmVudERlZmF1bHQoKSx0KCExKTtyZXR1cm59aWYoYS5rZXkhPT0iVGFiIilyZXR1cm47Y29uc3Qgbz1yLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKSwgW2hyZWZdLCBpbnB1dDpub3QoOmRpc2FibGVkKSwgc2VsZWN0Om5vdCg6ZGlzYWJsZWQpLCB0ZXh0YXJlYTpub3QoOmRpc2FibGVkKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2lmKCFvPy5sZW5ndGgpcmV0dXJuO2NvbnN0IHU9b1swXSxoPW9bby5sZW5ndGgtMV07YS5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXU/KGEucHJldmVudERlZmF1bHQoKSxoLmZvY3VzKCkpOiFhLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aCYmKGEucHJldmVudERlZmF1bHQoKSx1LmZvY3VzKCkpfTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLWJhY2tkcm9wIixvbk1vdXNlRG93bjphPT57YS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJnQoITEpfSxjaGlsZHJlbjplLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nIixyb2xlOiJkaWFsb2ciLCJhcmlhLW1vZGFsIjoidHJ1ZSIsImFyaWEtbGFiZWxsZWRieSI6ImNvbmZpcm0tdGl0bGUiLHJlZjpyLG9uS2V5RG93bjp5LGNoaWxkcmVuOltlLmpzeCgiaDIiLHtpZDoiY29uZmlybS10aXRsZSIsY2hpbGRyZW46bi50aXRsZX0pLG4udGFyZ2V0JiZlLmpzeCgicCIse2NsYXNzTmFtZToiZGlhbG9nLXRhcmdldCIsY2hpbGRyZW46bi50YXJnZXR9KSxuLnN1bW1hcnkmJmUuanN4KCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZy1zdW1tYXJ5IixjaGlsZHJlbjpuLnN1bW1hcnl9KSxuLmJvZHksbi5jb25zZXF1ZW5jZSYmZS5qc3goInAiLHtjbGFzc05hbWU6YGRpYWxvZy1jb25zZXF1ZW5jZSAke24udG9uZT09PSJkYW5nZXIiPyJkYW5nZXIiOiIifWAsY2hpbGRyZW46bi5jb25zZXF1ZW5jZX0pLG4uYWNrTGFiZWwmJmUuanN4cygibGFiZWwiLHtjbGFzc05hbWU6ImNoZWNrYm94LXJvdyIsY2hpbGRyZW46W2UuanN4KCJpbnB1dCIse3R5cGU6ImNoZWNrYm94IixjaGVja2VkOmMsb25DaGFuZ2U6YT0+ZihhLnRhcmdldC5jaGVja2VkKX0pLGUuanN4KCJzcGFuIix7Y2hpbGRyZW46bi5hY2tMYWJlbH0pXX0pLG4udHlwZVRvQ29uZmlybSYmZS5qc3hzKCJsYWJlbCIse2NsYXNzTmFtZToiZmllbGQiLHN0eWxlOnttYXJnaW5Ub3A6MTJ9LGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NoaWxkcmVuOm4udHlwZVRvQ29uZmlybS5sYWJlbH0pLGUuanN4KCJpbnB1dCIse2NsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6YT0+cChhLnRhcmdldC52YWx1ZSksYXV0b0NvbXBsZXRlOiJvZmYiLCJhcmlhLWludmFsaWQiOiFtJiZpLmxlbmd0aD4wfSksIW0mJmkubGVuZ3RoPjAmJmUuanN4KCJzcGFuIix7c3R5bGU6e2NvbG9yOiJ2YXIoLS1kYW5nZXIpIixmb250U2l6ZToxMn0sY2hpbGRyZW46bi50eXBlVG9Db25maXJtLm1pc21hdGNofSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZy1hY3Rpb25zIixjaGlsZHJlbjpbZS5qc3goImJ1dHRvbiIse3JlZjpkLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLHR5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+dCghMSksY2hpbGRyZW46cygiY29tbW9uLmNhbmNlbCIpfSksZS5qc3goImJ1dHRvbiIse2NsYXNzTmFtZTpgYnV0dG9uICR7bi50b25lPT09ImRhbmdlciI/ImJ1dHRvbi1kYW5nZXIiOiJidXR0b24tcHJpbWFyeSJ9YCx0eXBlOiJidXR0b24iLGRpc2FibGVkOiFnLG9uQ2xpY2s6KCk9PnQoITApLGNoaWxkcmVuOm4uY29uZmlybUxhYmVsfHxzKCJjb21tb24uY29uZmlybSIpfSldfSldfSl9KX1mdW5jdGlvbiBEKCl7Y29uc3Rbbix0XT1sLnVzZVN0YXRlKG51bGwpLHM9bC51c2VSZWYobnVsbCk7cmV0dXJue2NvbmZpcm1SZXF1ZXN0Om4sY29uZmlybTpjPT5uZXcgUHJvbWlzZShmPT57cy5jdXJyZW50Py4oITEpLHMuY3VycmVudD1mLHQoYyl9KSxyZXNvbHZlQ29uZmlybTpjPT57cy5jdXJyZW50Py4oYykscy5jdXJyZW50PW51bGwsdChudWxsKX19fWV4cG9ydHtUIGFzIEMsayBhcyBELEMgYXMgVCxEIGFzIHV9Owo=" }, - "/v2/assets/HealthPage-Bq2ejkVs.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgbSx3IGFzIEYsciBhcyBqLGEyIGFzIFAsaiBhcyBlLGkgYXMgQyxmIGFzIGcsayBhcyBLLHAgYXMgVSxCIGFzIFQsUyBhcyBMLEsgYXMgdyxFIGFzIGIsaCBhcyB6LGEzIGFzIEcsbyBhcyBZLGE0IGFzIFosQSBhcyBJLF8gYXMgcSxhNSBhcyBKfWZyb20iLi9pbmRleC1KNWZxejVodi5qcyI7aW1wb3J0e3UgYXMgJH1mcm9tIi4vaG9va3MtRDBvUzV1YkcuanMiO2ltcG9ydHtLIGFzIFN9ZnJvbSIuL0twaUNhcmQtMFdVTnVYZ3YuanMiO2ltcG9ydHtEIGFzIE99ZnJvbSIuL0RhdGFUYWJsZS1ETTZXM1FSMS5qcyI7aW1wb3J0e3IgYXMgeSxhIGFzIFF9ZnJvbSIuL3J1bnRpbWVfZGFpbHlfY29udHJhY3QtQ2Y4TnUxVGUuanMiO2Z1bmN0aW9uIEgocyl7Y29uc3QgdD1zLnJlY29yZDtpZighdHx8cy5kYXRhX3N0YXR1cz09PSJ1bmF2YWlsYWJsZSIpcmV0dXJuIm5vLXJlY29yZCI7Y29uc3QgYT10LnJ1bnM/P1tdO3JldHVybiB0LnN0YXR1cz09PSJibG9ja2VkIj8iYmxvY2tlZCI6WyJmYWlsZWQiLCJlcnJvciJdLmluY2x1ZGVzKHQuc3RhdHVzKXx8YS5zb21lKGw9PmwuYWN0aXZpdHkhPT0iYmxvY2tlZCImJnkobCk9PT0iZmFpbHVyZSIpPyJmYWlsZWQiOmEuc29tZShsPT5sLmFjdGl2aXR5PT09ImJsb2NrZWQiKT8iYmxvY2tlZCI6dC5zdGF0dXM9PT0icmVhZF9pbmNvbXBsZXRlIj8icmVhZC1mYWlsZWQiOnMuZGF0YV9zdGF0dXM9PT0ic3RhbGUiPyJzdGFsZSI6IVsiZnJlc2giLCJoaXN0b3JpY2FsIl0uaW5jbHVkZXMocy5kYXRhX3N0YXR1cyl8fHQuc3RhdHVzPT09InVua25vd24iPyJ1bmtub3duIjp0LmNvbXBsZXRlbmVzcyE9PSJjb21wbGV0ZSJ8fHQua2luZD09PSJpbmNvbXBsZXRlInx8dC5zdGF0dXM9PT0ibWlzc2luZ19yZXBvcnQiPyJpbmNvbXBsZXRlIjp0LmtpbmQ9PT0ic2NoZWR1bGUiJiYhYS5sZW5ndGgmJlsibm90X2R1ZSIsIm1hcmtldF9jbG9zZWQiLCJvdXRzaWRlX3dpbmRvdyIsIndpdGhpbl9ncmFjZSJdLmluY2x1ZGVzKHQuc3RhdHVzKT8ibm90LXJ1biI6dC5raW5kPT09InJ1biImJlsibm9fc3VibWlzc2lvbiIsIm5vX3NpZ25hbCIsIm5vX3JlYmFsYW5jZSIsImZpbGxlZCJdLmluY2x1ZGVzKHQuc3RhdHVzKSYmYS5sZW5ndGg+MCYmYS5ldmVyeShsPT55KGwpPT09bnVsbCk/Im9rIjoidW5rbm93biJ9ZnVuY3Rpb24gVyhzKXtjb25zdCB0PVsiZmFpbGVkIiwiZXJyb3IiXSxhPVsiYmxvY2tlZCIsIm5vX3N1Ym1pc3Npb24iLCJub19zaWduYWwiLCJub19yZWJhbGFuY2UiLCJmaWxsZWQiXTtyZXR1cm57Y291bnQ6cy5hY2NvdW50cy5maWx0ZXIobD0+bC5hY3Rpdml0eSE9PSJibG9ja2VkIiYmKHQuaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpfHxsLnJ1bnMuc29tZShpPT5pLmFjdGl2aXR5IT09ImJsb2NrZWQiJiZ5KGkpPT09ImZhaWx1cmUiKSkpLmxlbmd0aCxjb21wbGV0ZTpzLnN0YXR1cz09PSJvayImJnMuY291bnRzLnJ1bnMhPT1udWxsJiZzLmNvdW50cy5jb25maWd1cmVkPjAmJnMuY291bnRzLm9ic2VydmVkPT09cy5jb3VudHMuY29uZmlndXJlZCYmcy5hY2NvdW50cy5sZW5ndGg9PT1zLmNvdW50cy5jb25maWd1cmVkJiZzLmFjY291bnRzLmV2ZXJ5KGw9Pmwuc3RhdHVzPT09Im9rIiYmbC5jb21wbGV0ZW5lc3M9PT0iY29tcGxldGUiJiZsLnJ1bl9jb3VudCE9PW51bGwmJmwucnVuX2NvdW50PT09bC5ydW5zLmxlbmd0aCYmKHQuaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpfHxhLmluY2x1ZGVzKGwuYWN0aXZpdHl8fCIiKXx8WyJub3RfZHVlIiwibWFya2V0X2Nsb3NlZCIsIm91dHNpZGVfd2luZG93Iiwid2l0aGluX2dyYWNlIl0uaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpKSYmbC5ydW5zLmV2ZXJ5KGk9PnkoaSkhPT0idW5jb25maXJtZWQiKSl9fWNvbnN0IEE9e29rOiJoZWFsdGguZ3JpZC5vayIsZmFpbGVkOiJoZWFsdGguZ3JpZC5mYWlsZWQiLGJsb2NrZWQ6ImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCIsIm5vdC1ydW4iOiJoZWFsdGguZ3JpZC5ub3RfcnVuIiwibm8tcmVjb3JkIjoiaGVhbHRoLmdyaWQubm9fcmVjb3JkIix1bmtub3duOiJzdGF0ZS51bmtub3duIixpbmNvbXBsZXRlOiJoZWFsdGguZ3JpZC5pbmNvbXBsZXRlIixzdGFsZToic3RhdGUuc3RhbGUiLCJyZWFkLWZhaWxlZCI6InN0YXRlLnJlYWRfZmFpbGVkIn0sQj17b2s6IuKckyIsZmFpbGVkOiLinJciLGJsb2NrZWQ6IuKKmCIsIm5vdC1ydW4iOiLigJMiLCJuby1yZWNvcmQiOiIiLHVua25vd246Ij8iLGluY29tcGxldGU6IuKApiIsc3RhbGU6In4iLCJyZWFkLWZhaWxlZCI6IiEifTtmdW5jdGlvbiBFKHMsdCl7cmV0dXJuYCR7cy5wbGF0Zm9ybX0vJHtzLmFjY291bnRfYWxpYXN9LyR7dH1gfWZ1bmN0aW9uIFgocyx0KXtjb25zdCBhPVtdO2xldCBsPURhdGUucGFyc2UoYCR7c31UMDA6MDA6MDBaYCk7Zm9yKDthLmxlbmd0aDx0Oyl7Y29uc3QgaT1uZXcgRGF0ZShsKS5nZXRVVENEYXkoKTtpIT09MCYmaSE9PTYmJmEudW5zaGlmdChuZXcgRGF0ZShsKS50b0lTT1N0cmluZygpLnNsaWNlKDAsMTApKSxsLT04NjRlNX1yZXR1cm4gYX1mdW5jdGlvbiBlZSh7c2VsZWN0aW9uOnMsY2VsbDp0fSl7Y29uc3QgYT1tKCksbD1GKCksaT1LKCksbj1VKHMuZGF0ZSxpKTtsZXQgcjtpZighdHx8dC5waGFzZT09PSJsb2FkaW5nIilyPWUuanN4KGcse2hlaWdodDoxNix3aWR0aDoyNDB9KTtlbHNlIGlmKHQucGhhc2U9PT0iZXJyb3IiKXI9ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImhlYWx0aC1ncmlkLW5vdGUiLGNoaWxkcmVuOmEoInN0YXRlLnJlYWRfZmFpbGVkIil9KTtlbHNlIGlmKCF0LnNuYXBzaG90LnJlY29yZClyPWUuanN4KCJzcGFuIix7Y2hpbGRyZW46YSgiaGVhbHRoLmdyaWQubm9fcmVjb3JkIil9KTtlbHNle2NvbnN0IGQ9dC5zbmFwc2hvdC5yZWNvcmQsaD1kLnJ1bnM/P1tdO3I9ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwtbWV0YSIsY2hpbGRyZW46W2Quc3RhdHVzPT09ImJsb2NrZWQiP2UuanN4KFQse3RvbmU6Indhcm4iLGNoaWxkcmVuOmEoImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCIpfSk6ZS5qc3goTCx7c3RhdHVzOmQuc3RhdHVzfSksSCh0LnNuYXBzaG90KT09PSJibG9ja2VkIiYmZS5qc3goInNwYW4iLHtjaGlsZHJlbjphKGQuYmxvY2tfcmVhc29uX2NvZGU/YHJlYXNvbi4ke2QuYmxvY2tfcmVhc29uX2NvZGV9YDoicmVhc29uLnVua25vd24iKX0pLGUuanN4cygic3BhbiIse2NoaWxkcmVuOlthKCJoZWFsdGgucnVuX2NvdW50IiksIjogIixkLnJ1bnM/aC5sZW5ndGg6IuKAlCJdfSldfSksaC5sZW5ndGg+MCYmZS5qc3goInVsIix7Y2xhc3NOYW1lOiJoZWFsdGgtZGF5LXJ1bnMiLGNoaWxkcmVuOmgubWFwKChjLGYpPT57Y29uc3QgTj13KGMuc3RhcnRlZF9hdCxpKS50ZXh0LG89dyhjLmZpbmlzaGVkX2F0LGkpLnRleHQ7cmV0dXJuIGUuanN4cygibGkiLHtjaGlsZHJlbjpbZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOlthKCJoZWFsdGguZGV0YWlsLnN0YXJ0ZWQiKSwiICIsTl19KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Im51bSIsY2hpbGRyZW46W2EoImhlYWx0aC5kZXRhaWwuZmluaXNoZWQiKSwiICIsb119KSxlLmpzeCgic3BhbiIse2NoaWxkcmVuOmEoYy5hY3Rpdml0eT09PSJibG9ja2VkIj8iaGVhbHRoLnJ1bl9zdGF0ZS5ibG9ja2VkIjpgc3RhdGUuJHtjLmFjdGl2aXR5fHwidW5rbm93biJ9YCl9KSxjLmVycm9yc19wcmVzZW50PT09ITAmJmMuYWN0aXZpdHkhPT0iYmxvY2tlZCImJmUuanN4KFQse3RvbmU6ImVycm9yIixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZC5mYWlsZWQiKX0pXX0sZil9KX0pXX0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJzdHJvbmciLHtjaGlsZHJlbjphKCJoZWFsdGguZGF5X2RldGFpbCIpfSksZS5qc3goInNwYW4iLHtjaGlsZHJlbjpsLmFjY291bnQocy5hY2NvdW50LmFjY291bnRfYWxpYXMscy5hY2NvdW50LnBsYXRmb3JtKX0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOm59KV19KSxyXX0pfWZ1bmN0aW9uIHRlKHthY2NvdW50czpzLGVwb2NoOnR9KXtjb25zdCBhPW0oKSxsPUYoKSxpPWoudXNlTWVtbygoKT0+WChRKCksMTQpLFt0XSksW24scl09ai51c2VTdGF0ZSh7fSksW2QsaF09ai51c2VTdGF0ZSghMSksW2MsZl09ai51c2VTdGF0ZShudWxsKTtpZihqLnVzZUVmZmVjdCgoKT0+e2lmKCFzLmxlbmd0aClyZXR1cm47bGV0IG89ITE7Y29uc3QgdT17fTtmb3IoY29uc3QgayBvZiBzKWZvcihjb25zdCBwIG9mIGkpdVtFKGsscCldPXtwaGFzZToibG9hZGluZyJ9O3JldHVybiByKHUpLGgoITEpLGYobnVsbCksKGFzeW5jKCk9PntsZXQgaz0hMTtmb3IoY29uc3QgcCBvZiBpKXtjb25zdCB2PWF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChzLm1hcChfPT5QKHAsXy5wbGF0Zm9ybSxfLmFjY291bnRfYWxpYXMsITEpKSk7aWYobylyZXR1cm47Y29uc3QgeD17fTt2LmZvckVhY2goKF8sTSk9Pntjb25zdCBWPUUoc1tNXSxwKTtfLnN0YXR1cz09PSJmdWxmaWxsZWQiP3hbVl09e3BoYXNlOiJyZWFkeSIsc25hcHNob3Q6Xy52YWx1ZX06KHhbVl09e3BoYXNlOiJlcnJvciJ9LGs9ITApfSkscihfPT4oey4uLl8sLi4ueH0pKX0hbyYmayYmaCghMCl9KSgpLmNhdGNoKCgpPT57b3x8aCghMCl9KSwoKT0+e289ITB9fSxbcyxpLHRdKSwhcy5sZW5ndGgpcmV0dXJuIGUuanN4KEMse3RpdGxlOmEoInN0YXRlLm5vX2RhdGEiKX0pO2NvbnN0IE49T2JqZWN0LmtleXMoQSk7cmV0dXJuIGUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3goInAiLHtjbGFzc05hbWU6InNjcm9sbC1oaW50IixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZF9zY3JvbGxfaGludCIpfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWdyaWQiLHRhYkluZGV4OjAscm9sZToicmVnaW9uIiwiYXJpYS1sYWJlbCI6YSgiaGVhbHRoLmdyaWRfdGl0bGUiKSxjaGlsZHJlbjplLmpzeHMoInRhYmxlIix7Y2hpbGRyZW46W2UuanN4KCJjYXB0aW9uIix7Y2xhc3NOYW1lOiJzci1vbmx5IixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZF90aXRsZSIpfSksZS5qc3goInRoZWFkIix7Y2hpbGRyZW46ZS5qc3hzKCJ0ciIse2NoaWxkcmVuOltlLmpzeCgidGgiLHtzY29wZToiY29sIixjaGlsZHJlbjphKCJoZWFsdGguY29sLmFjY291bnQiKX0pLGkubWFwKG89PmUuanN4KCJ0aCIse3Njb3BlOiJjb2wiLGNsYXNzTmFtZToibnVtIixjaGlsZHJlbjpvLnNsaWNlKDUpfSxvKSldfSl9KSxlLmpzeCgidGJvZHkiLHtjaGlsZHJlbjpzLm1hcChvPT5lLmpzeHMoInRyIix7Y2hpbGRyZW46W2UuanN4cygidGgiLHtzY29wZToicm93IixjaGlsZHJlbjpbbC5hY2NvdW50KG8uYWNjb3VudF9hbGlhcyxvLnBsYXRmb3JtKSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46WyIgwrcgIixsLnBsYXRmb3JtKG8ucGxhdGZvcm0pXX0pXX0pLGkubWFwKHU9Pntjb25zdCBrPUUobyx1KSxwPW5ba10sdj1jPy5hY2NvdW50LnBsYXRmb3JtPT09by5wbGF0Zm9ybSYmYy5hY2NvdW50LmFjY291bnRfYWxpYXM9PT1vLmFjY291bnRfYWxpYXMmJmMuZGF0ZT09PXU7aWYoIXB8fHAucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KCJ0ZCIse2NoaWxkcmVuOmUuanN4KGcse2hlaWdodDoyNix3aWR0aDoyNn0pfSx1KTtpZihwLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBoZWFsdGgtY2VsbCByZWFkLWZhaWxlZCR7dj8iIHNlbGVjdGVkIjoiIn1gLHRpdGxlOmEoInN0YXRlLnJlYWRfZmFpbGVkIiksImFyaWEtbGFiZWwiOmAke2wuYWNjb3VudChvLmFjY291bnRfYWxpYXMsby5wbGF0Zm9ybSl9ICR7dX06ICR7YSgic3RhdGUucmVhZF9mYWlsZWQiKX1gLG9uQ2xpY2s6KCk9PmYoe2FjY291bnQ6byxkYXRlOnV9KSxjaGlsZHJlbjoiISJ9KX0sdSk7Y29uc3QgeD1IKHAuc25hcHNob3QpLF89YShBW3hdKTtyZXR1cm4gZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBoZWFsdGgtY2VsbCAke3h9JHt2PyIgc2VsZWN0ZWQiOiIifWAsdGl0bGU6XywiYXJpYS1sYWJlbCI6YCR7bC5hY2NvdW50KG8uYWNjb3VudF9hbGlhcyxvLnBsYXRmb3JtKX0gJHt1fTogJHtffWAsImFyaWEtcHJlc3NlZCI6dixvbkNsaWNrOigpPT5mKHthY2NvdW50Om8sZGF0ZTp1fSksY2hpbGRyZW46Qlt4XX0pfSx1KX0pXX0sYCR7by5wbGF0Zm9ybX0vJHtvLmFjY291bnRfYWxpYXN9YCkpfSldfSl9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtbGVnZW5kIixjaGlsZHJlbjpOLm1hcChvPT5lLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YGhlYWx0aC1jZWxsICR7b31gLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOkJbb119KSxhKEFbb10pXX0sbykpfSksZCYmZS5qc3goInAiLHtjbGFzc05hbWU6ImhlYWx0aC1ncmlkLW5vdGUiLGNoaWxkcmVuOmEoImhlYWx0aC5ncmlkX3JlYWRfZmFpbGVkX25vdGUiKX0pLGMmJmUuanN4KGVlLHtzZWxlY3Rpb246YyxjZWxsOm5bRShjLmFjY291bnQsYy5kYXRlKV19KV19KX1jb25zdCBhZT1bInN1Y2NlZWRlZCIsImZhaWxlZCIsImJsb2NrZWQiLCJub19kYXRhIiwibm90X2Nvbm5lY3RlZCIsIm5vdF9ydW4iLCJ1bmtub3duIiwicmVhZF9mYWlsZWQiXTtmdW5jdGlvbiBSKHMpe2lmKFsibm90X2Nvbm5lY3RlZCIsIm5vX2RhdGEiLCJyZWFkX2ZhaWxlZCJdLmluY2x1ZGVzKHMuc3RhdHVzKSlyZXR1cm4gcy5zdGF0dXM7Y29uc3QgdD1zLmFjdGl2aXR5LGE9cy5ydW5zfHxbXTtyZXR1cm4gdD09PSJibG9ja2VkIj8iYmxvY2tlZCI6WyJmYWlsZWQiLCJlcnJvciJdLmluY2x1ZGVzKHQpfHxhLnNvbWUobD0+bC5hY3Rpdml0eSE9PSJibG9ja2VkIiYmeShsKT09PSJmYWlsdXJlIik/ImZhaWxlZCI6YS5zb21lKGw9PmwuYWN0aXZpdHk9PT0iYmxvY2tlZCIpPyJibG9ja2VkIjp0PT09InJlYWRfaW5jb21wbGV0ZSI/InJlYWRfZmFpbGVkIjpbIm5vdF9kdWUiLCJtYXJrZXRfY2xvc2VkIiwib3V0c2lkZV93aW5kb3ciLCJ3aXRoaW5fZ3JhY2UiXS5pbmNsdWRlcyh0KSYmIWEubGVuZ3RoPyJub3RfcnVuIjpzLmNvbXBsZXRlbmVzcz09PSJjb21wbGV0ZSImJlsibm9fc3VibWlzc2lvbiIsIm5vX3NpZ25hbCIsIm5vX3JlYmFsYW5jZSIsImZpbGxlZCJdLmluY2x1ZGVzKHQpJiZhLmxlbmd0aCYmYS5ldmVyeShsPT55KGwpPT09bnVsbCk/InN1Y2NlZWRlZCI6InVua25vd24ifWZ1bmN0aW9uIHNlKHMpe2NvbnN0IHQ9T2JqZWN0LmZyb21FbnRyaWVzKGFlLm1hcChhPT5bYSwwXSkpO2Zvcihjb25zdCBhIG9mIHMpdFtSKGEpXSsrO3JldHVybiB0fWZ1bmN0aW9uIG5lKHMsdCl7cmV0dXJuIHMuZmlsdGVyKGE9Pntjb25zdCBsPXQuZmlsdGVyKGk9PmkucGxhdGZvcm09PT1hLnBsYXRmb3JtJiZpLmFjY291bnRfa2V5PT09YS5hY2NvdW50X2FsaWFzKTtyZXR1cm4gbC5sZW5ndGg9PT0xJiZsWzBdLnN0YXR1cz09PSJib3VuZCImJiEhbFswXS50YXJnZXRfa2V5fSl9Y29uc3QgbGU9WyIzMCIsIjciLCIxIiwiZXhwaXJlZCJdLHJlPXtleHBpcmVkOiJlcnJvciIsMToiZXJyb3IiLDc6Indhcm4iLDMwOiJ3YXJuIixub3RfZHVlOiJvayIsdW5rbm93bjoidW5rbm93biJ9O2Z1bmN0aW9uIEQoe3N0YXRlOnMscmVuZGVyOnR9KXtjb25zdCBhPW0oKTtyZXR1cm4gcy5waGFzZT09PSJsb2FkaW5nIj9lLmpzeChnLHtoZWlnaHQ6MjQsd2lkdGg6OTB9KTpzLnBoYXNlPT09ImVycm9yInx8cy5waGFzZT09PSJyZWFkeSImJnMuZGF0YSE9PW51bGwmJnR5cGVvZiBzLmRhdGE9PSJvYmplY3QiJiYic3RhdHVzImluIHMuZGF0YSYmcy5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCI/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdGF0ZSIsY2hpbGRyZW46YSgic3RhdGUucmVhZF9mYWlsZWQiKX0pOmUuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOnQoKX0pfWZ1bmN0aW9uIGllKHtzdW1tYXJ5OnMsY3JlZGVudGlhbDp0fSl7Y29uc3QgYT1tKCksbD1zLnBoYXNlPT09InJlYWR5Ij9zLmRhdGE6bnVsbCxpPWw/bC5hY2NvdW50cy5maWx0ZXIoZj0+Zi5zdGF0dXM9PT0ib2siKS5sZW5ndGg6MCxuPWw/VyhsKTp7Y291bnQ6MCxjb21wbGV0ZTohMX0scj1sP3NlKGwuYWNjb3VudHMpOm51bGwsZD1yJiYoci5ub3RfY29ubmVjdGVkPjB8fHIubm9fZGF0YT4wKT9hKCJoZWFsdGgua3BpLnRvZGF5X3J1bnNfbm90ZSIse25vdF9jb25uZWN0ZWQ6ci5ub3RfY29ubmVjdGVkLG5vX2RhdGE6ci5ub19kYXRhfSk6dm9pZCAwLGg9dC5waGFzZT09PSJyZWFkeSI/dC5kYXRhOm51bGwsYz1oJiZsZS5pbmNsdWRlcyhoLnBoYXNlKT8xOjA7cmV0dXJuIGUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0YXQtc3RyaXAiLGNoaWxkcmVuOltlLmpzeChTLHt0aXRsZTphKCJoZWFsdGgua3BpLnRvZGF5X3J1bnMiKSx2YWx1ZTplLmpzeChELHtzdGF0ZTpzLHJlbmRlcjooKT0+YSgiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iLHtjb3VudDppLHRvdGFsOmw/LmNvdW50cy5jb25maWd1cmVkPz8wfSl9KSxzdWI6ZCxmb290ZXI6bD8uYXNfb2Y/ZS5qc3goSSx7dmFsdWU6bC5hc19vZn0pOnZvaWQgMH0pLGUuanN4KFMse3RpdGxlOmEoImhlYWx0aC5rcGkub2JzZXJ2ZWQiKSx2YWx1ZTplLmpzeChELHtzdGF0ZTpzLHJlbmRlcjooKT0+YSgiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iLHtjb3VudDpsPy5jb3VudHMub2JzZXJ2ZWQ/PzAsdG90YWw6bD8uY291bnRzLmNvbmZpZ3VyZWQ/PzB9KX0pfSksZS5qc3goUyx7dGl0bGU6YSgiaGVhbHRoLmtwaS5jcmVkZW50aWFscyIpLHZhbHVlOmUuanN4KEQse3N0YXRlOnQscmVuZGVyOigpPT5hKCJoZWFsdGguc3RhdC5jcmVkZW50aWFscyIse2NvdW50OmN9KX0pfSksZS5qc3goUyx7dGl0bGU6YSgiaGVhbHRoLmtwaS5yZWNlbnRfZmFpbHVyZSIpLHZhbHVlOmUuanN4KEQse3N0YXRlOnMscmVuZGVyOigpPT5uLmNvbXBsZXRlP1N0cmluZyhuLmNvdW50KTpuLmNvdW50PjA/YSgiaGVhbHRoLmZhaWx1cmVfYXRfbGVhc3QiLHtjb3VudDpuLmNvdW50fSk6YSgic3RhdGUudW5rbm93biIpfSl9KV19KSxyJiZlLmpzeCgidWwiLHtjbGFzc05hbWU6ImhlYWx0aC1zdGF0ZS1jb3VudHMiLCJhcmlhLWxhYmVsIjphKCJoZWFsdGguc3RhdGVfY291bnRzIiksY2hpbGRyZW46T2JqZWN0LmVudHJpZXMocikubWFwKChbZixOXSk9PmUuanN4cygibGkiLHtjaGlsZHJlbjpbYShgaGVhbHRoLnJ1bl9zdGF0ZS4ke2Z9YCksIjogIixlLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpOfSldfSxmKSl9KSxlLmpzeHMoInAiLHtjbGFzc05hbWU6Im1ldHJpYy1ub3RlIixjaGlsZHJlbjpbYSgiaGVhbHRoLmZhaWx1cmVfd2luZG93Iix7ZGF0ZTpsPy5kYXRlPz8i4oCUIn0pLCFuLmNvbXBsZXRlJiZgIMK3ICR7YSgiaGVhbHRoLmZhaWx1cmVfaW5jb21wbGV0ZSIpfWBdfSldfSl9ZnVuY3Rpb24gb2Uoe3N1bW1hcnk6c30pe2NvbnN0IHQ9bSgpLGE9RigpO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KGcse2hlaWdodDoxMjB9KTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpzLnJlbG9hZH0pO2NvbnN0IGw9W3tpZDoiYWNjb3VudCIsaGVhZGVyOnQoImhlYWx0aC5jb2wuYWNjb3VudCIpLGNlbGw6bj0+ZS5qc3goZS5GcmFnbWVudCx7Y2hpbGRyZW46YS5hY2NvdW50KG4uYWNjb3VudF9hbGlhcyxuLnBsYXRmb3JtKX0pLHNvcnRWYWx1ZTpuPT5gJHthLmFjY291bnQobi5hY2NvdW50X2FsaWFzLG4ucGxhdGZvcm0pfToke24uYWNjb3VudF9hbGlhc31gfSx7aWQ6InN0YXR1cyIsaGVhZGVyOnQoImhlYWx0aC5jb2wuc3RhdHVzIiksY2VsbDpuPT5lLmpzeChMLHtzdGF0dXM6bi5mcmVzaG5lc3M/PyhuLnN0YWxlPT09ITA/InN0YWxlIjpuLmZyZXNoPT09ITA/ImZyZXNoIjpuLnN0YXR1cykscmVhc29uOm4udW5hdmFpbGFibGVfcmVhc29ufSksc29ydFZhbHVlOm49Pm4uc3RhdHVzfSx7aWQ6ImFjdGl2aXR5IixoZWFkZXI6dCgiaGVhbHRoLmFjdGl2aXR5IiksY2VsbDpuPT5lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3QoYGhlYWx0aC5ydW5fc3RhdGUuJHtuLnJ1bl9zdGF0dXN8fFIobil9YCksKG4ucnVuX3N0YXR1c3x8UihuKSk9PT0iYmxvY2tlZCImJmUuanN4cygic3BhbiIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjpbIiDCtyAiLHQobi5ydW5fc3RhdHVzX3JlYXNvbj9gcmVhc29uLiR7bi5ydW5fc3RhdHVzX3JlYXNvbn1gOiJyZWFzb24udW5rbm93biIpXX0pXX0pfSx7aWQ6InJ1bl9jb3VudCIsaGVhZGVyOnQoImhlYWx0aC5ydW5fY291bnQiKSxudW1lcmljOiEwLGNlbGw6bj0+bi5ydW5fY291bnQ9PT1udWxsPyLigJQiOm4ucnVuX2NvdW50LHNvcnRWYWx1ZTpuPT5uLnJ1bl9jb3VudH0se2lkOiJhc19vZiIsaGVhZGVyOnQoImhlYWx0aC5jb2wuYXNfb2YiKSxjZWxsOm49PmUuanN4KEkse3ZhbHVlOm4uYXNfb2YscHJlZml4OiJjb21tb24uYXNfb2YifSksc29ydFZhbHVlOm49Pm4uYXNfb2Z9XSxpPXEocy5kYXRhLmFjY291bnRzLGEuY29uZmlnKS5zb3J0KChuLHIpPT5hLnBsYXRmb3JtKG4ucGxhdGZvcm0pLmxvY2FsZUNvbXBhcmUoYS5wbGF0Zm9ybShyLnBsYXRmb3JtKSkpO3JldHVybiBlLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3MuZGF0YS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiJiZlLmpzeCgicCIse3JvbGU6ImFsZXJ0IixjaGlsZHJlbjp0KCJzdGF0ZS5yZWFkX2ZhaWxlZCIpfSksaS5tYXAobj0+ZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJoZWFsdGgtcGxhdGZvcm0tZ3JvdXAiLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjaGlsZHJlbjphLnBsYXRmb3JtKG4ucGxhdGZvcm0pfSksZS5qc3goTyx7Y29sdW1uczpsLHJvd3M6bi5hY2NvdW50cy5mbGF0TWFwKHI9PnIucm93cykscm93S2V5OnI9PmAke3IucGxhdGZvcm19LyR7ci5hY2NvdW50X2FsaWFzfWAsZGVmYXVsdFNvcnQ6e2NvbHVtbjoiYWNjb3VudCIsZGlyZWN0aW9uOiJhc2MifSxjYXB0aW9uOmAke3QoImhlYWx0aC5mcmVzaG5lc3NfdGl0bGUiKX0gwrcgJHthLnBsYXRmb3JtKG4ucGxhdGZvcm0pfWB9KV19LG4ucGxhdGZvcm0pKSwhaS5sZW5ndGgmJmUuanN4KEMse3RpdGxlOnQoInN0YXRlLm5vX2RhdGEiKX0pXX0pfWZ1bmN0aW9uIGNlKHtjcmVkZW50aWFsOnN9KXtjb25zdCB0PW0oKSxhPUsoKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChnLHtoZWlnaHQ6NzJ9KTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpzLnJlbG9hZH0pO2NvbnN0IGw9cy5kYXRhLGk9W3tpZDoiaWQiLGhlYWRlcjp0KCJoZWFsdGguY29sLmNyZWRlbnRpYWwiKSxjZWxsOm49PnQobi5pZD09PSJpYmtyX2ZsZXgiPyJoZWFsdGguY3JlZGVudGlhbF9pYmtyX3JlcG9ydCI6ImhlYWx0aC5jcmVkZW50aWFsX290aGVyIil9LHtpZDoicGhhc2UiLGhlYWRlcjp0KCJoZWFsdGguY29sLnBoYXNlIiksY2VsbDpuPT5lLmpzeChULHt0b25lOnJlW24ucGhhc2VdLGNoaWxkcmVuOnQoYGhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLiR7bi5waGFzZX1gKX0pfSx7aWQ6ImV4cGlyZXMiLGhlYWRlcjp0KCJoZWFsdGguY29sLmV4cGlyZXMiKSxjZWxsOm49PntpZighbi5leHBpcmVzX2F0KXJldHVybiLigJQiO2NvbnN0e3RleHQ6cix6b25lOmR9PXcobi5leHBpcmVzX2F0LGEsITApO3JldHVybiB0KCJoZWFsdGguY3JlZGVudGlhbF9leHBpcmVzIix7dmFsdWU6ZD9gJHtyfSAoJHtkfSlgOnJ9KX0sc29ydFZhbHVlOm49Pm4uZXhwaXJlc19hdH1dO3JldHVybiBlLmpzeChPLHtjb2x1bW5zOmkscm93czpbbF0scm93S2V5Om49Pm4uaWQsY2FwdGlvbjp0KCJoZWFsdGguY3JlZGVudGlhbHNfdGl0bGUiKX0pfWZ1bmN0aW9uIGRlKHtlcG9jaDpzfSl7Y29uc3QgdD1tKCksYT1LKCksbD0kKCgpPT5KKCksW3NdKTtpZihsLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChnLHtoZWlnaHQ6NzJ9KTtpZihsLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpsLnJlbG9hZH0pO2NvbnN0IGk9bC5kYXRhO2lmKGkuc3RhdHVzPT09Im5vdF9jb25uZWN0ZWQiKXJldHVybiBlLmpzeChDLHt0aXRsZTp0KCJoZWFsdGgubm90aWZpY2F0aW9uc19ub3RfY29ubmVjdGVkIiksYWN0aW9uOmUuanN4KEwse3N0YXR1czoibm90X2Nvbm5lY3RlZCJ9KX0pO2lmKGkuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpsLnJlbG9hZH0pO2lmKCFpLml0ZW1zLmxlbmd0aClyZXR1cm4gZS5qc3goQyx7dGl0bGU6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbnNfZW1wdHkiKSxib2R5OnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3Njb3BlIil9KTtjb25zdCBuPVt7aWQ6ImRhdGUiLGhlYWRlcjp0KCJoZWFsdGgubm90aWZpY2F0aW9uX2J1c2luZXNzX2RheSIpLGNlbGw6cj0+ci5idXNpbmVzc19kYXl8fCLigJQiLHNvcnRWYWx1ZTpyPT5yLmJ1c2luZXNzX2RheX0se2lkOiJzdGF0dXMiLGhlYWRlcjp0KCJjb21tb24uc3RhdHVzIiksY2VsbDpyPT5lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3QoYGhlYWx0aC5ub3RpZmljYXRpb24uJHtyLnN0YXR1c31gKSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46WyIgwrcgIix0KCJoZWFsdGgubm90aWZpY2F0aW9uX2RlbGl2ZXJlZCIpLCI6ICIsdChyLmRlbGl2ZXJlZD09PW51bGw/InN0YXRlLnVua25vd24iOnIuZGVsaXZlcmVkPyJoZWFsdGgubm90aWZpY2F0aW9uX3llcyI6ImhlYWx0aC5ub3RpZmljYXRpb25fbm8iKV19KSxyLmRyeV9ydW49PT0hMCYmZS5qc3hzKCJzcGFuIix7Y2hpbGRyZW46WyIgwrcgIix0KCJoZWFsdGgubm90aWZpY2F0aW9uLmRyeV9ydW4iKV19KSxyLnRlc3RfbWVzc2FnZT09PSEwJiZlLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbIiDCtyAiLHQoImhlYWx0aC5ub3RpZmljYXRpb24udGVzdF9tZXNzYWdlIildfSksci5yZWFzb25fY29kZSYmZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46dChgaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uJHtyLnJlYXNvbl9jb2RlfWApfSldfSl9LHtpZDoic2VudCIsaGVhZGVyOnQoImhlYWx0aC5ub3RpZmljYXRpb25fc2VudF9hdCIpLGNlbGw6cj0+dyhyLnNlbnRfYXQsYSkudGV4dH0se2lkOiJ3b3JrZmxvd190aW1lIixoZWFkZXI6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl93b3JrZmxvd190aW1lIiksY2VsbDpyPT53KHIud29ya2Zsb3dfdXBkYXRlZF9hdCxhKS50ZXh0LHNvcnRWYWx1ZTpyPT5yLndvcmtmbG93X3VwZGF0ZWRfYXR9LHtpZDoic291cmNlIixoZWFkZXI6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl9zb3VyY2UiKSxjZWxsOnI9PmUuanN4KCJhIix7aHJlZjpyLnNvdXJjZV91cmwsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9yZWZlcnJlciIsY2hpbGRyZW46dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl9ydW4iLHtpZDpyLnNvdXJjZV9ydW5faWQsYXR0ZW1wdDpyLnNvdXJjZV9ydW5fYXR0ZW1wdH0pfSl9XTtyZXR1cm4gZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjp0KCJoZWFsdGgubm90aWZpY2F0aW9uc19zY29wZSIpfSksaS5zdGF0dXM9PT0icGFydGlhbCImJmUuanN4KCJwIix7cm9sZToiYWxlcnQiLGNoaWxkcmVuOnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3BhcnRpYWwiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzY3JvbGwtaGludCIsY2hpbGRyZW46dCgiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Iil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtbm90aWZpY2F0aW9ucyIsY2hpbGRyZW46ZS5qc3goTyx7Y29sdW1uczpuLHJvd3M6aS5pdGVtcyxyb3dLZXk6cj0+ci5pZCxjYXB0aW9uOnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3RpdGxlIil9KX0pXX0pfWZ1bmN0aW9uIG1lKCl7Y29uc3Qgcz1tKCksW3QsYV09ai51c2VTdGF0ZSgwKSxsPSQoKCk9PnooKSxbdF0pLGk9JCgoKT0+RygpLFt0XSksbj0kKCgpPT5ZKCksW3RdKSxyPSQoKCk9PlooKSxbdF0pLGQ9ai51c2VNZW1vKCgpPT5uLnBoYXNlPT09InJlYWR5IiYmci5waGFzZT09PSJyZWFkeSI/bmUobi5kYXRhLmFjY291bnRzLHIuZGF0YSk6W10sW24ucGhhc2Usbi5kYXRhLHIucGhhc2Usci5kYXRhXSk7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlIixjaGlsZHJlbjpbZS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyIixjaGlsZHJlbjpbZS5qc3goImgxIix7Y2xhc3NOYW1lOiJwYWdlLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGgudGl0bGUiKX0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgaGVhbHRoLXJlZnJlc2giLG9uQ2xpY2s6KCk9PmEoaD0+aCsxKSxjaGlsZHJlbjpzKCJjb21tb24ucmVmcmVzaCIpfSldfSksZS5qc3goaWUse3N1bW1hcnk6bCxjcmVkZW50aWFsOml9KSxlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOnMoImhlYWx0aC5ncmlkX3RpdGxlIil9KSwobi5waGFzZT09PSJsb2FkaW5nInx8ci5waGFzZT09PSJsb2FkaW5nIikmJmUuanN4KGcse2hlaWdodDoxNjB9KSxuLnBoYXNlPT09ImVycm9yIiYmZS5qc3goYix7b25SZXRyeTpuLnJlbG9hZH0pLHIucGhhc2U9PT0iZXJyb3IiJiZlLmpzeChiLHtvblJldHJ5OnIucmVsb2FkfSksbi5waGFzZT09PSJyZWFkeSImJnIucGhhc2U9PT0icmVhZHkiJiZlLmpzeCh0ZSx7YWNjb3VudHM6ZCxlcG9jaDp0fSldfSksZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGguZnJlc2huZXNzX3RpdGxlIil9KSxlLmpzeCgicCIse2NsYXNzTmFtZToic2Nyb2xsLWhpbnQiLGNoaWxkcmVuOnMoImhlYWx0aC50YWJsZV9zY3JvbGxfaGludCIpfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWZyZXNobmVzcyIsY2hpbGRyZW46ZS5qc3gob2Use3N1bW1hcnk6bH0pfSldfSksZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGguY3JlZGVudGlhbHNfdGl0bGUiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzY3JvbGwtaGludCIsY2hpbGRyZW46cygiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Iil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtY3JlZGVudGlhbHMiLGNoaWxkcmVuOmUuanN4KGNlLHtjcmVkZW50aWFsOml9KX0pXX0pLGUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46cygiaGVhbHRoLm5vdGlmaWNhdGlvbnNfdGl0bGUiKX0pLGUuanN4KGRlLHtlcG9jaDp0fSldfSldfSl9ZXhwb3J0e21lIGFzIGRlZmF1bHR9Owo=" }, + "/v2/assets/DecisionsPage-Cy_L9S-v.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgaSxHIGFzIGdlLHUgYXMgU2UsdyBhcyBGZSxrIGFzIEFlLGUgYXMgTGUsSCBhcyBHZSxyIGFzIGIsbiBhcyBCLGcgYXMgUGUsSSBhcyBCZSxmIGFzIEgsaSBhcyBkZSxtIGFzIEhlLEIgYXMgVSxKIGFzIHhlLEsgYXMgdWUsQSBhcyBNZSxMIGFzIHdlLE4gYXMgUWUsTyBhcyBLZX1mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2ltcG9ydHtJIGFzIFRlfWZyb20iLi9JbmJveFJlYWRGYWlsZWQtRDJDT19yc1MuanMiO2ltcG9ydHtSIGFzIEplfWZyb20iLi9ydW50aW1lX2RhaWx5X2NvbnRyYWN0LUNmOE51MVRlLmpzIjtpbXBvcnR7dSBhcyBjZSxjIGFzIFhlfWZyb20iLi9ob29rcy1DUk5rWWh4Ny5qcyI7aW1wb3J0e1QgYXMgWWV9ZnJvbSIuL1RhYnMtQndYeER2SW0uanMiO2ltcG9ydHt1IGFzIFVlLEMgYXMgVmUsVCBhcyBaZSxEIGFzIGplfWZyb20iLi9EaWFsb2ctQ3ZOQlpIMVIuanMiO2Z1bmN0aW9uIFdlKGUsbil7Y29uc3QgYT1lLmNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTZ8fGUub3duZXJfZGVjaXNpb24/LmNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTY7cmV0dXJuIWUuY2FuZGlkYXRlX2lkfHwhL15bYS1mMC05XXs2NH0kLy50ZXN0KFN0cmluZyhhfHwiIikpfHwhWyJhcHByb3ZlX2xpbWl0ZWRfbGl2ZV9jYW5hcnkiLCJrZWVwX3BhcmtlZCJdLmluY2x1ZGVzKG4pP251bGw6e2NhbmRpZGF0ZV9pZDplLmNhbmRpZGF0ZV9pZCxjYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2OmEsZGVjaXNpb246bn19ZnVuY3Rpb24gZWkoZSxuPSJhcHByb3ZlIil7Y29uc3QgYT1lLnJlY292ZXJ5fHx7fTtyZXR1cm4gbiE9PSJhcHByb3ZlIiYmbiE9PSJyZWplY3QifHxlLmZyZXNobmVzcz8uZGF0YV9zdGF0dXMhPT0icmVhZHkifHxlLmNvbmZpcm1hdGlvbnx8ZS5yZWplY3Rpb258fGEucmVhZGluZXNzIT09ImF3YWl0aW5nX2h1bWFuX2NvbmZpcm1hdGlvbiJ8fCFBcnJheS5pc0FycmF5KGEuYmxvY2tlcl9jb2Rlcyl8fGEuYmxvY2tlcl9jb2Rlcy5sZW5ndGh8fCEvXlthLWYwLTldezY0fSQvLnRlc3QoU3RyaW5nKGEuY2FuZGlkYXRlX3NoYTI1Nnx8IiIpKXx8YS5kdWFsX3Jldmlldz8uZXZpZGVuY2VfYmluZGluZ19zaGEyNTYhPT1hLmNhbmRpZGF0ZV9zaGEyNTY/bnVsbDp7ZGVjaXNpb246bixyZWNvdmVyeV9pZDphLnJlY292ZXJ5X2lkLGNhbmRpZGF0ZV9zaGEyNTY6YS5jYW5kaWRhdGVfc2hhMjU2LGR1YWxfcmV2aWV3X2JpbmRpbmdfc2hhMjU2OmEuZHVhbF9yZXZpZXcuZXZpZGVuY2VfYmluZGluZ19zaGEyNTZ9fWZ1bmN0aW9uIGlpKCl7Y29uc3QgZT1uZXcgU2V0O3JldHVybnthY3F1aXJlKG4pe3JldHVybiBlLmhhcyhuKT8hMTooZS5hZGQobiksITApfSxyZWxlYXNlKG4pe2UuZGVsZXRlKG4pfSxpc0xvY2tlZChuKXtyZXR1cm4gZS5oYXMobil9LGhhc0FueShuKXtyZXR1cm4gbi5zb21lKGE9PmUuaGFzKGEpKX0saGFzQW55V2l0aFByZWZpeGVzKG4pe3JldHVyblsuLi5lXS5zb21lKGE9Pm4uc29tZShzPT5hLnN0YXJ0c1dpdGgocykpKX0sY2xlYXIoKXtlLmNsZWFyKCl9fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZT9lLnN0YXR1cz09PSJyZWplY3RlZCI6ITB9Y29uc3QgdGU9L15bMC05YS1mXXs2NH0kLyxNPWU9PiEhKGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoZSkpO2Z1bmN0aW9uIEwoZSl7aWYoZT09PW51bGx8fHR5cGVvZiBlPT0ic3RyaW5nInx8dHlwZW9mIGU9PSJib29sZWFuInx8dHlwZW9mIGU9PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUoZSkpcmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuYFske2UubWFwKEwpLmpvaW4oIiwiKX1dYDtpZighTShlKSl0aHJvdyBuZXcgRXJyb3IoImh1bWFuX2RlY2lzaW9uX21hdGVyaWFsX2ludmFsaWQiKTtyZXR1cm5geyR7T2JqZWN0LmtleXMoZSkuc29ydCgpLm1hcChuPT5gJHtKU09OLnN0cmluZ2lmeShuKX06JHtMKGVbbl0pfWApLmpvaW4oIiwiKX19YH1hc3luYyBmdW5jdGlvbiBwZShlKXtjb25zdCBuPWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoTChlKSkpO3JldHVyblsuLi5uZXcgVWludDhBcnJheShuKV0ubWFwKGE9PmEudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIil9ZnVuY3Rpb24gYWkoZSl7Y29uc3Qgbj1lPy5kZWNpc2lvbl9iaW5kaW5nO3JldHVybiBuPy5raW5kPT09InByb21vdGlvbiImJm4uc3ViamVjdF9pZD09PWUudGlja2V0X2lkJiZ0eXBlb2Ygbi5tYXRlcmlhbF9zaGEyNTY9PSJzdHJpbmciJiZ0ZS50ZXN0KG4ubWF0ZXJpYWxfc2hhMjU2KSYmKG4ucmV2aWV3X2JpbmRpbmc9PW51bGx8fG4ucmV2aWV3X2JpbmRpbmcuc2NoZW1hX3ZlcnNpb249PT0icXNsX3Byb21vdGlvbl9yZXZpZXdfYmluZGluZy52MiImJnR5cGVvZiBuLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTY9PSJzdHJpbmciJiZ0ZS50ZXN0KG4ucmV2aWV3X2JpbmRpbmcucmV2aWV3X3NoYTI1NikpfWZ1bmN0aW9uIHRpKGUsbil7aWYoIU0oZSl8fGUua2luZCE9PW4ua2luZHx8ZS5zdWJqZWN0X2lkIT09bi5zdWJqZWN0X2lkfHxlLm1hdGVyaWFsX3NoYTI1NiE9PW4ubWF0ZXJpYWxfc2hhMjU2KXJldHVybiExO2NvbnN0IGE9ZS5yZXZpZXdfYmluZGluZztyZXR1cm4gbi5yZXZpZXdfc2hhMjU2PT09bnVsbD9hPT1udWxsOk0oYSkmJmEuc2NoZW1hX3ZlcnNpb249PT0icXNsX3Byb21vdGlvbl9yZXZpZXdfYmluZGluZy52MiImJmEucmV2aWV3X3NoYTI1Nj09PW4ucmV2aWV3X3NoYTI1Nn1hc3luYyBmdW5jdGlvbiBvaShlLG4sYSl7dHJ5e2NvbnN0IHM9bj8uZGVjaXNpb25fYmluZGluZztsZXQgbyxfLHAscj1udWxsO2lmKGU9PT0ib3duZXIiKXtpZihvPWEuY2FuZGlkYXRlX2lkLF89bnVsbCxwPXtkZWNpc2lvbjphLmRlY2lzaW9ufSwhWyJhcHByb3ZlX2xpbWl0ZWRfbGl2ZV9jYW5hcnkiLCJrZWVwX3BhcmtlZCJdLmluY2x1ZGVzKGEuZGVjaXNpb24pfHxuLmNhbmRpZGF0ZT8uY2FuZGlkYXRlX2lkIT09b3x8bi5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2IT09YS5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2KXJldHVybiBudWxsfWVsc2UgaWYoZT09PSJyZWNvdmVyeSIpe2lmKG89YS5yZWNvdmVyeV9pZCwhWyJhcHByb3ZlIiwicmVqZWN0Il0uaW5jbHVkZXMoYS5kZWNpc2lvbil8fG4ucmVjb3Zlcnk/LnJlY292ZXJ5X2lkIT09b3x8bi5yZWNvdmVyeS5jYW5kaWRhdGVfc2hhMjU2IT09YS5jYW5kaWRhdGVfc2hhMjU2fHxuLnJlY292ZXJ5LmR1YWxfcmV2aWV3Py5ldmlkZW5jZV9iaW5kaW5nX3NoYTI1NiE9PWEuZHVhbF9yZXZpZXdfYmluZGluZ19zaGEyNTYpcmV0dXJuIG51bGw7Xz17cmVjb3ZlcnlfaWQ6byxjYW5kaWRhdGVfc2hhMjU2OmEuY2FuZGlkYXRlX3NoYTI1NixkdWFsX3Jldmlld19iaW5kaW5nX3NoYTI1NjphLmR1YWxfcmV2aWV3X2JpbmRpbmdfc2hhMjU2fSxwPXtkZWNpc2lvbjphLmRlY2lzaW9ufX1lbHNle2lmKG89YS50aWNrZXRfaWQsIWFpKG4pfHxuLnRpY2tldF9pZCE9PW98fCFbImFjY2VwdCIsInJlamVjdCJdLmluY2x1ZGVzKGEuZGVjaXNpb24pKXJldHVybiBudWxsO2lmKF89T2JqZWN0LmZyb21FbnRyaWVzKFsidGlja2V0X2lkIiwic3RyYXRlZ3lfcHJvZmlsZSIsImRvbWFpbiIsInByb3Bvc2VkX3BhcmFtcyIsInNoYWRvd19wYXNzZWQiLCJzaGFkb3dfZXZpZGVuY2Vfa2luZCJdLm1hcCh3PT5bdyxuW3ddXSkpLHMucmV2aWV3X2JpbmRpbmchPW51bGwpe2NvbnN0IHc9e3NjaGVtYV92ZXJzaW9uOiJxc2xfcHJvbW90aW9uX3Jldmlld19tYXRlcmlhbC52MiIsLi4uXywuLi5PYmplY3QuZnJvbUVudHJpZXMoWyJkcmlmdF9zdGF0dXMiLCJkcmlmdF9zY29yZSIsImJ1ZGdldCIsInNlYXJjaF9pdGVyYXRpb25zIiwic3VnZ2VzdGVkX3Jpc2tfcHJvZmlsZSIsIm5vdGlmaWNhdGlvbl9zdWJqZWN0Iiwibm90aWZpY2F0aW9uX2JvZHkiLCJub3RlcyJdLm1hcChDPT5bQyxuW0NdXSkpLHJlc2VhcmNoX3N1bW1hcnk6bi5yZXNlYXJjaF9zdW1tYXJ5fHxudWxsfTtpZihyPWF3YWl0IHBlKHcpLHIhPT1zLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTYpcmV0dXJuIG51bGx9Y29uc3QgeD1hLnNlbGVjdGVkX2FjY291bnQ/P251bGwseT1hLmNvbmZpcm1hdGlvbj8/bnVsbDtpZihhLmRlY2lzaW9uPT09ImFjY2VwdCImJighTSh4KXx8IU0oeSl8fHgucGxhdGZvcm0hPT15LnRhcmdldF9wbGF0Zm9ybSkpcmV0dXJuIG51bGw7cD17c2VsZWN0ZWRfYWNjb3VudDp4LGNvbmZpcm1hdGlvbjp5fX1jb25zdCBjPWU9PT0ib3duZXIiP2EuY2FuZGlkYXRlX2V2aWRlbmNlX3NoYTI1Njphd2FpdCBwZShfKTtyZXR1cm4gdHlwZW9mIG8hPSJzdHJpbmcifHwhb3x8dHlwZW9mIGMhPSJzdHJpbmcifHwhdGUudGVzdChjKXx8cz8ua2luZCE9PWV8fHMuc3ViamVjdF9pZCE9PW98fHMubWF0ZXJpYWxfc2hhMjU2IT09Yz9udWxsOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoe2tpbmQ6ZSxzdWJqZWN0X2lkOm8sbWF0ZXJpYWxfc2hhMjU2OmMscmV2aWV3X3NoYTI1NjpyLGFjdGlvbjphLmRlY2lzaW9uLHRhcmdldDpwfSkpfWNhdGNoe3JldHVybiBudWxsfX1hc3luYyBmdW5jdGlvbiBrZShlLG4pe3RyeXtpZighTShuKXx8IVsicXNsX2h1bWFuX2RlY2lzaW9uX3JlY2VpcHQudjEiLCJxc2xfaHVtYW5fZGVjaXNpb25fcmVjZWlwdC52MiJdLmluY2x1ZGVzKG4uc2NoZW1hX3ZlcnNpb24pfHxuLmtpbmQhPT1lLmtpbmR8fG4uc3ViamVjdF9pZCE9PWUuc3ViamVjdF9pZHx8bi5tYXRlcmlhbF9zaGEyNTYhPT1lLm1hdGVyaWFsX3NoYTI1Nnx8bi5hY3Rpb24hPT1lLmFjdGlvbnx8TChuLnRhcmdldCkhPT1MKGUudGFyZ2V0KXx8bi5ub19vcmRlciE9PSEwfHxuLmV4ZWN1dGlvbl9hdXRob3JpdHlfZ3JhbnRlZCE9PSExfHx0eXBlb2Ygbi5kZWNpZGVkX2J5IT0ic3RyaW5nInx8IW4uZGVjaWRlZF9ieXx8bi5kZWNpZGVkX2J5Lmxlbmd0aD4xMDB8fC9bXHUwMDAwLVx1MDAxZlx1MDA3Zl0vLnRlc3Qobi5kZWNpZGVkX2J5KXx8dHlwZW9mIG4uZGVjaWRlZF9hdCE9InN0cmluZyJ8fG4uZGVjaWRlZF9hdC5sZW5ndGg+NDB8fCFOdW1iZXIuaXNGaW5pdGUoRGF0ZS5wYXJzZShuLmRlY2lkZWRfYXQpKXx8L1tcdTAwMDAtXHUwMDFmXHUwMDdmXS8udGVzdChuLmRlY2lkZWRfYXQpfHx0eXBlb2Ygbi5yZWNlaXB0X3NoYTI1NiE9InN0cmluZyJ8fCF0ZS50ZXN0KG4ucmVjZWlwdF9zaGEyNTYpKXJldHVybiExO2NvbnN0IGE9bi5zY2hlbWFfdmVyc2lvbj09PSJxc2xfaHVtYW5fZGVjaXNpb25fcmVjZWlwdC52MiI7aWYoYSE9PSEhZS5yZXZpZXdfc2hhMjU2fHxhJiYoZS5raW5kIT09InByb21vdGlvbiJ8fG4ucmV2aWV3X2JpbmRpbmc/LnNjaGVtYV92ZXJzaW9uIT09InFzbF9wcm9tb3Rpb25fcmV2aWV3X2JpbmRpbmcudjIifHxuLnJldmlld19iaW5kaW5nLnJldmlld19zaGEyNTYhPT1lLnJldmlld19zaGEyNTYpKXJldHVybiExO2NvbnN0IHM9e3NjaGVtYV92ZXJzaW9uOm4uc2NoZW1hX3ZlcnNpb24sLi4uYT97cmV2aWV3X2JpbmRpbmc6e3NjaGVtYV92ZXJzaW9uOiJxc2xfcHJvbW90aW9uX3Jldmlld19iaW5kaW5nLnYyIixyZXZpZXdfc2hhMjU2OmUucmV2aWV3X3NoYTI1Nn19Ont9LGtpbmQ6ZS5raW5kLHN1YmplY3RfaWQ6ZS5zdWJqZWN0X2lkLG1hdGVyaWFsX3NoYTI1NjplLm1hdGVyaWFsX3NoYTI1NixhY3Rpb246ZS5hY3Rpb24sdGFyZ2V0OmUudGFyZ2V0LGRlY2lkZWRfYXQ6bi5kZWNpZGVkX2F0LGRlY2lkZWRfYnk6bi5kZWNpZGVkX2J5LG5vX29yZGVyOiEwLGV4ZWN1dGlvbl9hdXRob3JpdHlfZ3JhbnRlZDohMX07cmV0dXJuIEwobik9PT1MKHsuLi5zLHJlY2VpcHRfc2hhMjU2OmF3YWl0IHBlKHMpfSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHNpKCl7Y29uc3QgZT1uZXcgTWFwLG49bmV3IE1hcCxhPW89PmAke28ua2luZH06JHtvLnN1YmplY3RfaWR9OiR7by5tYXRlcmlhbF9zaGEyNTZ9YDtsZXQgcz0wO3JldHVybntlcG9jaCgpe3JldHVybiBzfSxjbGVhcigpe3MrKyxlLmNsZWFyKCksbi5jbGVhcigpfSxlbnRyaWVzKCl7cmV0dXJuWy4uLmUudmFsdWVzKCldLm1hcChvPT5KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG8pKSl9LHN0YXJ0KG8pe2NvbnN0IF89YShvKTtyZXR1cm4gZS5oYXMoXyk/bnVsbDooZS5zZXQoXyx7ZXhwZWN0ZWQ6SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvKSksc3RhdHVzOiJ1bnJlc29sdmVkIixyZWNlaXB0Om51bGwscXVldWVDb25maXJtZWQ6ITF9KSx7aWQ6XyxnZW5lcmF0aW9uOnN9KX0sY3VycmVudChvKXtyZXR1cm4gby5nZW5lcmF0aW9uPT09cyYmZS5oYXMoby5pZCkmJihvLnNlcXVlbmNlPT09dm9pZCAwfHxuLmdldChvLmlkKT09PW8uc2VxdWVuY2UpfSxhc3luYyByZWNlaXZlKG8sXyxwKXtjb25zdCByPWUuZ2V0KG8uaWQpO2lmKCFyfHwhdGhpcy5jdXJyZW50KG8pKXJldHVybiExO2NvbnN0IGM9YXdhaXQga2Uoci5leHBlY3RlZCxfKTtyZXR1cm4gdGhpcy5jdXJyZW50KG8pPyFjfHxyLnJlY2VpcHQmJnIucmVjZWlwdC5yZWNlaXB0X3NoYTI1NiE9PV8ucmVjZWlwdF9zaGEyNTY/KHIuc3RhdHVzPSJ1bnJlc29sdmVkIixyLnF1ZXVlQ29uZmlybWVkPSExLCExKTooci5yZWNlaXB0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoXykpLHIucXVldWVDb25maXJtZWQ9cD8/ci5xdWV1ZUNvbmZpcm1lZCxyLnN0YXR1cz1yLnF1ZXVlQ29uZmlybWVkPyJyZWNvcmRlZCI6InVucmVzb2x2ZWQiLCEwKTohMX0sYmVnaW5SZWFkKG8pe2NvbnN0IF89YShvKSxwPShuLmdldChfKXx8MCkrMTtyZXR1cm4gbi5zZXQoXyxwKSx7aWQ6XyxnZW5lcmF0aW9uOnMsc2VxdWVuY2U6cH19LGFzeW5jIHJlYWRiYWNrKG8sXyxwKXtjb25zdCByPWUuZ2V0KG8uaWQpLGM9Xz8uZGVjaXNpb25fcmVhZGJhY2sseD0oKT0+dGhpcy5jdXJyZW50KG8pJiZuLmdldChvLmlkKT09PW8uc2VxdWVuY2U7aWYoIXJ8fCF4KCkpcmV0dXJuITE7aWYoXz8ub2shPT0hMHx8Yz8uc2NoZW1hX3ZlcnNpb24hPT0icXNsX2h1bWFuX2RlY2lzaW9uX3JlYWRiYWNrLnYxInx8Yy5zb3VyY2UhPT0iZHVyYWJsZV9odW1hbl9kZWNpc2lvbl9yZWNvcmQifHxjLmtpbmQhPT1yLmV4cGVjdGVkLmtpbmR8fGMuc3ViamVjdF9pZCE9PXIuZXhwZWN0ZWQuc3ViamVjdF9pZHx8Yy5yZXF1ZXN0ZWRfbWF0ZXJpYWxfc2hhMjU2IT09ci5leHBlY3RlZC5tYXRlcmlhbF9zaGEyNTZ8fHR5cGVvZiBjLm9ic2VydmVkX2F0IT0ic3RyaW5nInx8IU51bWJlci5pc0Zpbml0ZShEYXRlLnBhcnNlKGMub2JzZXJ2ZWRfYXQpKXx8Yy5sb29rdXBfc3RhdHVzIT09ImZvdW5kIilyZXR1cm4gci5zdGF0dXM9InVucmVzb2x2ZWQiLHIucXVldWVDb25maXJtZWQ9ITEsITE7Y29uc3QgeT1hd2FpdCBrZShyLmV4cGVjdGVkLGMucmVjZWlwdCk7cmV0dXJuIHgoKT90aGlzLnJlY2VpdmUobyx5P2MucmVjZWlwdDpudWxsLHApOiExfSxyZWFkRmFpbGVkKG8pe2lmKCF0aGlzLmN1cnJlbnQobyl8fG4uZ2V0KG8uaWQpIT09by5zZXF1ZW5jZSlyZXR1cm4hMTtjb25zdCBfPWUuZ2V0KG8uaWQpO3JldHVybiBfLnN0YXR1cz0idW5yZXNvbHZlZCIsXy5xdWV1ZUNvbmZpcm1lZD0hMSwhMH19fWNvbnN0IE9lPU9iamVjdC5mcmVlemUoW09iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToicGFwZXIiLHBheWxvYWRfc2NvcGU6IlBBUEVSIn0pLE9iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToiSEsiLHBheWxvYWRfc2NvcGU6IkhLIn0pLE9iamVjdC5mcmVlemUoe29wdGlvbl9zY29wZToic2ciLHBheWxvYWRfc2NvcGU6IlNHIn0pXSk7T2JqZWN0LmZyZWV6ZShPZS5tYXAoZT0+ZS5vcHRpb25fc2NvcGUpKTtPYmplY3QuZnJlZXplKE9lLm1hcChlPT5lLnBheWxvYWRfc2NvcGUpKTtjb25zdCByaT1PYmplY3QuZnJlZXplKFsibWF4X2ZpbmFuY2VfYW1vdW50IiwicmVtYWluaW5nX2ZpbmFuY2VfYW1vdW50IiwiaW5pdF9tYXJnaW4iLCJtYWludGVuYW5jZV9tYXJnaW4iLCJtYXJnaW5fY2FsbCIsImJ1eV9wb3dlciJdKTtPYmplY3QuZnJlZXplKFsiY3VycmVuY3kiLC4uLnJpLCJyaXNrX2xldmVsIl0pO2NvbnN0IERlPVt7cHJvZmlsZToidHFxcV9ncm93dGhfaW5jb21lIixsYWJlbDoi57qz5pav6L6+5YWL5aKe6ZW/5pS255uKIixsYWJlbF9lbjoiTkFTREFRIEdyb3d0aCBJbmNvbWUiLGxhYmVsX3poOiLnurPmlq/ovr7lhYvlop7plb/mlLbnm4oiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITAsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITAsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMCxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicnVudGltZV9lbmFibGVkIixjYW5fc3dpdGNoX2xpdmU6ITAsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iLCJsaXZlIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoiIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiEwLGFsbG93ZWRfcGxhdGZvcm1zOlsiaWJrciJdfSxpbmNvbWVfbGF5ZXJfc3RhcnRfdXNkOiIyNTAwMDAiLGluY29tZV9sYXllcl9tYXhfcmF0aW86IjAuNTUiLGluY29tZV9sYXllcl9hbGxvY2F0aW9uczp7U0NIRDouMyxER1JPOi4yLFNHT1Y6LjQsU1BZSTouMDgsUVFRSTouMDJ9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToidHFxcV9sZWFwc19ncm93dGhfdjEiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9zdGFydF91c2Q6IjI1MDAwMCIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X25hdl9idWRnZXRfcmF0aW86IjAuMDMifSx7cHJvZmlsZToic294bF9zb3h4X3RyZW5kX2luY29tZSIsbGFiZWw6IuWNiuWvvOS9k+i2i+WKv+aUtuebiiIsbGFiZWxfZW46IlNlbWljb25kdWN0b3IgVHJlbmQgSW5jb21lIixsYWJlbF96aDoi5Y2K5a+85L2T6LaL5Yq/5pS255uKIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImxvbmdicmlkZ2UiLCJpYmtyIiwic2Nod2FiIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjE1MDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC45NSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi4xNSxER1JPOi4xLFNHT1Y6LjcsU1BZSTouMDQsUVFRSTouMDF9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2luY29tZV9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2luY29tZV9vdmVybGF5X3JlY2lwZToic294eF9wdXRfY3JlZGl0X3NwcmVhZF9pbmNvbWVfdjEiLG9wdGlvbl9pbmNvbWVfb3ZlcmxheV9zdGFydF91c2Q6IjE1MDAwMCIsb3B0aW9uX2luY29tZV9vdmVybGF5X25hdl9yaXNrX3JhdGlvOiIwLjAxIn0se3Byb2ZpbGU6InNveGxfc294eF9jb3JlX29ubHlfcDJfdjdfbG9uZ3Rlcm1fY29tcG91bmRpbmdfY2FzaF9yZXNlcnZlIixsYWJlbDoiU09YTC9TT1hYIOaguOW/g+WkjeWIqe+8iOeOsOmHkeS/neeVme+8iSIsbGFiZWxfZW46IlNPWEwvU09YWCBDb3JlIENvbXBvdW5kaW5nIChDYXNoIFJlc2VydmUpIixsYWJlbF96aDoiU09YTC9TT1hYIOaguOW/g+WkjeWIqe+8iOeOsOmHkeS/neeVme+8iSIsZG9tYWluOiJ1c19lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX29ubHlfbmFtZWRfcHJvZmlsZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0scmVzZWFyY2hfY2FuZGlkYXRlX2lkZW50aXR5OntjYW5kaWRhdGVfaWQ6InNveGxfc294eF9jb3JlX29ubHlfcDJfdjdfbG9uZ3Rlcm1fY29tcG91bmRpbmdfY2FzaF9yZXNlcnZlIixjb25maWdfc2hhMjU2OiI4NDNhYjRlOTNlODE5ODVjMmIzYmVjYzYxYTJmMGI5NzE1MDhjY2YyNWFmYTU5YWNmNDAyZTc1ZjU3NDUxNGQxIn19LHtwcm9maWxlOiJuYXNkYXFfc3A1MDBfc21hcnRfZGNhIixsYWJlbDoi57qz5oyH5qCH5pmu5a6a5oqVIixsYWJlbF9lbjoiTkFTREFRL1MmUCA1MDAgRENBIixsYWJlbF96aDoi57qz5oyH5qCH5pmu5a6a5oqVIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoibWlzc2luZ19jdXJyZW50X3Byb21vdGlvbl9ldmlkZW5jZV9hbmRfcHJlYXV0aG9yaXplZF9hdXRvbm9teV9wb2xpY3kiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119LGRjYV9lbmFibGVkOiEwLGRjYV9kZWZhdWx0X21vZGU6ImZpeGVkIixkY2FfZGVmYXVsdF9iYXNlX2ludmVzdG1lbnRfdXNkOiIxMDAwIn0se3Byb2ZpbGU6ImliaXRfc21hcnRfZGNhIixsYWJlbDoiSUJJVOavlOeJueW4geWumuaKlSIsbGFiZWxfZW46IklCSVQgQml0Y29pbiBEQ0EiLGxhYmVsX3poOiJJQklU5q+U54m55biB5a6a5oqVIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImZpcnN0cmFkZSJdfSxkY2FfZW5hYmxlZDohMCxkY2FfZGVmYXVsdF9tb2RlOiJmaXhlZCIsZGNhX2RlZmF1bHRfYmFzZV9pbnZlc3RtZW50X3VzZDoiMTAwMCJ9LHtwcm9maWxlOiJnbG9iYWxfZXRmX3JvdGF0aW9uIixsYWJlbDoi5YWo55CDRVRG6L2u5YqoIixsYWJlbF9lbjoiR2xvYmFsIEVURiBSb3RhdGlvbiIsbGFiZWxfemg6IuWFqOeQg0VURui9ruWKqCIsZG9tYWluOiJ1c19lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMCxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiEwLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITAsYWxsb3dlZF9wbGF0Zm9ybXM6WyJpYmtyIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjUwMDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC4xNSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi40LERHUk86LjI1LFNHT1Y6LjMsU1BZSTouMDV9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToic3B5X2xlYXBzX2dyb3d0aF92MSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3N0YXJ0X3VzZDoiNTAwMDAwIixvcHRpb25fZ3Jvd3RoX292ZXJsYXlfbmF2X2J1ZGdldF9yYXRpbzoiMC4wMTUifSx7cHJvZmlsZToicnVzc2VsbF90b3A1MF9sZWFkZXJfcm90YXRpb24iLGxhYmVsOiLnvZfntKBUb3A1MOmihua2qCIsbGFiZWxfZW46IlJ1c3NlbGwgVG9wNTAgTGVhZGVycyIsbGFiZWxfemg6Iue9l+e0oFRvcDUw6aKG5raoIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiEwLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJ1bnRpbWVfZW5hYmxlZCIsY2FuX3N3aXRjaF9saXZlOiEwLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIiwibGl2ZSJdLGJsb2NrZWRfbGl2ZV9yZWFzb246IiIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImlia3IiLCJsb25nYnJpZGdlIl19LGluY29tZV9sYXllcl9zdGFydF91c2Q6IjMwMDAwMCIsaW5jb21lX2xheWVyX21heF9yYXRpbzoiMC4yNSIsaW5jb21lX2xheWVyX2FsbG9jYXRpb25zOntTQ0hEOi40NSxER1JPOi4zLFNHT1Y6LjI1fSxvcHRpb25fb3ZlcmxheV9saXZlX2dhdGU6InByb21vdGlvbl9yZXF1aXJlZCIsb3B0aW9uX292ZXJsYXlfbGl2ZV9zdGF0dXM6InJlc2VhcmNoX29ubHkiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9lbmFibGVkOiEwLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9yZWNpcGU6InNweV9sZWFwc19ncm93dGhfdjEiLG9wdGlvbl9ncm93dGhfb3ZlcmxheV9zdGFydF91c2Q6IjMwMDAwMCIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X25hdl9idWRnZXRfcmF0aW86IjAuMDE1In0se3Byb2ZpbGU6InRlY2xfeGxrX3RyZW5kX2luY29tZSIsbGFiZWw6IlRFQ0wvWExL6LaL5Yq/5pS255uKIixsYWJlbF9lbjoiVEVDTC9YTEsgVHJlbmQgSW5jb21lIixsYWJlbF96aDoiVEVDTC9YTEvotovlir/mlLbnm4oiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoiZmFpbGVkX3Byb21vdGlvbl92c19saXZlX3Byb2ZpbGVzIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6InVzX2VxdWl0eV9jb21ibyIsbGFiZWw6Iue+juiCoeaguOW/g+aUtuebiue7hOWQiCIsbGFiZWxfZW46IlVTIENvcmUgSW5jb21lIENvbWJvIixsYWJlbF96aDoi576O6IKh5qC45b+D5pS255uK57uE5ZCIIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiEwLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITAsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InNoYWRvd19hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InNoYWRvd19jYW5kaWRhdGVfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyIsaW5jb21lX2xheWVyX3N0YXJ0X3VzZDoiMzAwMDAwIixpbmNvbWVfbGF5ZXJfbWF4X3JhdGlvOiIwLjI1IixpbmNvbWVfbGF5ZXJfYWxsb2NhdGlvbnM6e1NDSEQ6LjI1LERHUk86LjI1LFNHT1Y6LjIsU1BZSTouMTUsUVFRSTouMTV9LG9wdGlvbl9vdmVybGF5X2xpdmVfZ2F0ZToicHJvbW90aW9uX3JlcXVpcmVkIixvcHRpb25fb3ZlcmxheV9saXZlX3N0YXR1czoicmVzZWFyY2hfb25seSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X2VuYWJsZWQ6ITAsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3JlY2lwZToic3B5X2xlYXBzX2dyb3d0aF92MSIsb3B0aW9uX2dyb3d0aF9vdmVybGF5X3N0YXJ0X3VzZDoiMzAwMDAwIixvcHRpb25fZ3Jvd3RoX292ZXJsYXlfbmF2X2J1ZGdldF9yYXRpbzoiMC4wMTUifSx7cHJvZmlsZToidXNfZXF1aXR5X2NvbWJvX2NvcmUiLGxhYmVsOiLnvo7ogqHmoLjlv4Pnu4TlkIgiLGxhYmVsX2VuOiJVUyBDb3JlIENvbWJvIixsYWJlbF96aDoi576O6IKh5qC45b+D57uE5ZCIIixkb21haW46InVzX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InNoYWRvd19hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InNoYWRvd19jYW5kaWRhdGVfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJ1c19lcXVpdHlfY29tYm9fbGV2ZXJhZ2VkIixsYWJlbDoi576O6IKh5Yqg6YCf57uE5ZCIIixsYWJlbF9lbjoiVVMgQWxwaGEgQ29tYm8iLGxhYmVsX3poOiLnvo7ogqHliqDpgJ/nu4TlkIgiLGRvbWFpbjoidXNfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiEwLGxpZmVjeWNsZV9zdGFnZToic2hhZG93X2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoic2hhZG93X2NhbmRpZGF0ZV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfSxjb21ib19tb2RlOiJkeW5hbWljIn0se3Byb2ZpbGU6ImhrX2dsb2JhbF9ldGZfdGFjdGljYWxfcm90YXRpb24iLGxhYmVsOiLmuK/ogqFFVEbmiJjmnK/ova7liqgiLGxhYmVsX2VuOiJISyBFVEYgVGFjdGljYWwgUm90YXRpb24iLGxhYmVsX3poOiLmuK/ogqFFVEbmiJjmnK/ova7liqgiLGRvbWFpbjoiaGtfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImhrX2xvd192b2xfZGl2aWRlbmRfcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6Iua4r+iCoee6ouWIqei0qOmHjyIsbGFiZWxfZW46IkhLIERpdmlkZW5kIFF1YWxpdHkiLGxhYmVsX3poOiLmuK/ogqHnuqLliKnotKjph48iLGRvbWFpbjoiaGtfZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJtaXNzaW5nX2N1cnJlbnRfcHJvbW90aW9uX2V2aWRlbmNlX2FuZF9wcmVhdXRob3JpemVkX2F1dG9ub215X3BvbGljeSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJoa19lcXVpdHlfY29tYm8iLGxhYmVsOiLmuK/ogqHmgZLnlJ/nu4TlkIgiLGxhYmVsX2VuOiJISyBDb3JlIENvbWJvIixsYWJlbF96aDoi5riv6IKh5oGS55Sf57uE5ZCIIixkb21haW46ImhrX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJjbl9pbmR1c3RyeV9ldGZfcm90YXRpb24iLGxhYmVsOiJB6IKh6KGM5LiaRVRG6L2u5YqoIixsYWJlbF9lbjoiQ04gSW5kdXN0cnkgRVRGIFJvdGF0aW9uIixsYWJlbF96aDoiQeiCoeihjOS4mkVURui9ruWKqCIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246Im1pc3NpbmdfY3VycmVudF9wcm9tb3Rpb25fZXZpZGVuY2VfYW5kX3ByZWF1dGhvcml6ZWRfYXV0b25vbXlfcG9saWN5IixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX2luZHVzdHJ5X2V0Zl9yb3RhdGlvbl9hZ2dyZXNzaXZlIixsYWJlbDoiQeiCoUVURui9ruWKqCIsbGFiZWxfZW46IkNOIEVURiBSb3RhdGlvbiIsbGFiZWxfemg6IkHogqFFVEbova7liqgiLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToibGl2ZV9jYW5kaWRhdGUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbInBhcGVyIiwiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246ImxpdmVfY2FuZGlkYXRlX3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25faW5kZXhfZXRmX3RhY3RpY2FsX3JvdGF0aW9uIixsYWJlbDoiQeiCoeWuveWfukVURuaImOacr+i9ruWKqCIsbGFiZWxfZW46IkNOIEluZGV4IEVURiBUYWN0aWNhbCBSb3RhdGlvbiIsbGFiZWxfemg6IkHogqHlrr3ln7pFVEbmiJjmnK/ova7liqgiLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX2NoaW5leHRfdGFjdGljYWxfcm90YXRpb24iLGxhYmVsOiLliJvkuJrmnb/miJjmnK/ova7liqgiLGxhYmVsX2VuOiJDTiBDaGlOZXh0IFRhY3RpY2FsIFJvdGF0aW9uIixsYWJlbF96aDoi5Yib5Lia5p2/5oiY5pyv6L2u5YqoIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJjbl9jaGluZXh0X2dyb3d0aF9tb21lbnR1bV9xdWFsaXR5IixsYWJlbDoi5Yib5Lia5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIixsYWJlbF9lbjoiQ04gQ2hpTmV4dCBHcm93dGggTW9tZW50dW0gUXVhbGl0eSIsbGFiZWxfemg6IuWIm+S4muadv+aIkOmVv+WKqOmHj+i0qOmHjyIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25fZGl2aWRlbmRfcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6IkHogqHnuqLliKnotKjph48iLGxhYmVsX2VuOiJDTiBEaXZpZGVuZCBRdWFsaXR5IixsYWJlbF96aDoiQeiCoee6ouWIqei0qOmHjyIsZG9tYWluOiJjbl9lcXVpdHkiLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITEsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119fSx7cHJvZmlsZToiY25fY2hpbmV4dF9ncm93dGhfbW9tZW50dW1fcXVhbGl0eV9zbmFwc2hvdCIsbGFiZWw6IuWIm+S4muadv+aIkOmVv+i0qOmHj+W/q+eFpyIsbGFiZWxfZW46IkNOIENoaU5leHQgR3Jvd3RoIFF1YWxpdHkgU25hcHNob3QiLGxhYmVsX3poOiLliJvkuJrmnb/miJDplb/otKjph4/lv6vnhaciLGRvbWFpbjoiY25fZXF1aXR5IixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNuX3N0YXJfZ3Jvd3RoX21vbWVudHVtX3F1YWxpdHkiLGxhYmVsOiLnp5HliJvmnb/miJDplb/liqjph4/otKjph48iLGxhYmVsX2VuOiJDTiBTVEFSIEdyb3d0aCBNb21lbnR1bSBRdWFsaXR5IixsYWJlbF96aDoi56eR5Yib5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMSxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX19LHtwcm9maWxlOiJjbl9lcXVpdHlfY29tYm8iLGxhYmVsOiJB6IKh6L+b5Y+W57uE5ZCIIixsYWJlbF9lbjoiQ04gQWxwaGEgQ29tYm8iLGxhYmVsX3poOiJB6IKh6L+b5Y+W57uE5ZCIIixkb21haW46ImNuX2VxdWl0eSIscnVudGltZV9lbmFibGVkOiExLGluY29tZV9sYXllcl9lbmFibGVkOiExLG9wdGlvbl9vdmVybGF5X2VuYWJsZWQ6ITEsY29tYm9fZW5hYmxlZDohMCxsaWZlY3ljbGVfc3RhZ2U6InJlc2VhcmNoX2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsiZHJ5X3J1biJdLGJsb2NrZWRfbGl2ZV9yZWFzb246InJlc2VhcmNoX2JhY2t0ZXN0X29ubHlfcmVxdWlyZXNfZXZpZGVuY2VfcGFja2FnZSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMSxhbGxvd2VkX3BsYXRmb3JtczpbXX0sY29tYm9fbW9kZToiZHluYW1pYyJ9LHtwcm9maWxlOiJjcnlwdG9fbGl2ZV9wb29sX3JvdGF0aW9uIixsYWJlbDoi5Yqg5a+G5rGg6L2u5YqoIixsYWJlbF9lbjoiQ3J5cHRvIFBvb2wgUm90YXRpb24iLGxhYmVsX3poOiLliqDlr4bmsaDova7liqgiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJwYXBlciIsImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJtaXNzaW5nX2N1cnJlbnRfcHJvbW90aW9uX2V2aWRlbmNlX2FuZF9wcmVhdXRob3JpemVkX2F1dG9ub215X3BvbGljeSIsbGl2ZV9jb250aW51aXR5OntlbGlnaWJsZTohMCxhbGxvd2VkX3BsYXRmb3JtczpbImJpbmFuY2UiXX19LHtwcm9maWxlOiJjcnlwdG9fYnRjX2RjYSIsbGFiZWw6IkJUQ+WumuaKlSIsbGFiZWxfZW46IkJUQyBEQ0EiLGxhYmVsX3poOiJCVEPlrprmipUiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToic2hhZG93X2FjdGl2ZSIsY2FuX3N3aXRjaF9saXZlOiExLGFsbG93ZWRfZXhlY3V0aW9uX21vZGVzOlsicGFwZXIiLCJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoic2hhZG93X2NhbmRpZGF0ZV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNyeXB0b190cmVuZF9yb3RhdGlvbiIsbGFiZWw6IuWxseWvqOi2i+WKv+i9ruWKqCIsbGFiZWxfZW46IkFsdGNvaW4gVHJlbmQiLGxhYmVsX3poOiLlsbHlr6jotovlir/ova7liqgiLGRvbWFpbjoiY3J5cHRvIixydW50aW1lX2VuYWJsZWQ6ITEsaW5jb21lX2xheWVyX2VuYWJsZWQ6ITEsb3B0aW9uX292ZXJsYXlfZW5hYmxlZDohMSxjb21ib19lbmFibGVkOiExLGxpZmVjeWNsZV9zdGFnZToicmVzZWFyY2hfYWN0aXZlIixjYW5fc3dpdGNoX2xpdmU6ITEsYWxsb3dlZF9leGVjdXRpb25fbW9kZXM6WyJkcnlfcnVuIl0sYmxvY2tlZF9saXZlX3JlYXNvbjoicmVzZWFyY2hfYmFja3Rlc3Rfb25seV9yZXF1aXJlc19ldmlkZW5jZV9wYWNrYWdlIixsaXZlX2NvbnRpbnVpdHk6e2VsaWdpYmxlOiExLGFsbG93ZWRfcGxhdGZvcm1zOltdfX0se3Byb2ZpbGU6ImNyeXB0b19lcXVpdHlfY29tYm8iLGxhYmVsOiLliqDlr4bliqjph4/nu4TlkIgiLGxhYmVsX2VuOiJDcnlwdG8gQ29yZSBDb21ibyIsbGFiZWxfemg6IuWKoOWvhuWKqOmHj+e7hOWQiCIsZG9tYWluOiJjcnlwdG8iLHJ1bnRpbWVfZW5hYmxlZDohMSxpbmNvbWVfbGF5ZXJfZW5hYmxlZDohMSxvcHRpb25fb3ZlcmxheV9lbmFibGVkOiExLGNvbWJvX2VuYWJsZWQ6ITAsbGlmZWN5Y2xlX3N0YWdlOiJyZXNlYXJjaF9hY3RpdmUiLGNhbl9zd2l0Y2hfbGl2ZTohMSxhbGxvd2VkX2V4ZWN1dGlvbl9tb2RlczpbImRyeV9ydW4iXSxibG9ja2VkX2xpdmVfcmVhc29uOiJyZXNlYXJjaF9iYWNrdGVzdF9vbmx5X3JlcXVpcmVzX2V2aWRlbmNlX3BhY2thZ2UiLGxpdmVfY29udGludWl0eTp7ZWxpZ2libGU6ITEsYWxsb3dlZF9wbGF0Zm9ybXM6W119LGNvbWJvX21vZGU6ImR5bmFtaWMifV07SmUucGxhdGZvcm07Y29uc3QgbGk9bmV3IFNldChEZS5tYXAoZT0+ZS5wcm9maWxlKSk7bmV3IE1hcChEZS5maWx0ZXIoZT0+bGkuaGFzKGUucHJvZmlsZSkpLm1hcChlPT5bZS5wcm9maWxlLHtsYWJlbF96aDplLmxhYmVsX3poLGxhYmVsX2VuOmUubGFiZWxfZW59XSkpO2Z1bmN0aW9uIGNpKGUpe3JldHVybihlPy5hcHBsaWNhdGlvbl9wcmVwYXJhdGlvbj8uYWNjb3VudF9vcHRpb25zfHxbXSkuZmlsdGVyKG49Pm4/LnBsYXRmb3JtPT09ImxvbmdicmlkZ2UiJiZuPy5icm9rZXJfZW52aXJvbm1lbnQ9PT0icGFwZXIiJiZ0eXBlb2Ygbi5rZXk9PSJzdHJpbmciJiZuLmtleS50cmltKCkpLm1hcChuPT4oe2lkOmAke24ucGxhdGZvcm19OiR7bi5rZXl9YCxsYWJlbDp0eXBlb2Ygbi5sYWJlbD09InN0cmluZyImJm4ubGFiZWwudHJpbSgpP24ubGFiZWw6U3RyaW5nKG4ua2V5KX0pKX1mdW5jdGlvbiBfaShlKXtjb25zdCBuPWU/LmFwcGxpY2F0aW9uX3ByZXBhcmF0aW9uPy5ibG9ja2VyX2NvZGVzO3JldHVybiBBcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aD4wfWZ1bmN0aW9uIE5lKGUsbil7aWYoIWV8fCFuaShlLmFwcGxpY2F0aW9uKSlyZXR1cm4hMTtjb25zdCBhPWUuYXBwbGljYXRpb25fcHJlcGFyYXRpb258fHt9O3JldHVybiBfaShlKXx8YS5wcmVmbGlnaHRfc3RhdHVzIT09InJlYWR5Inx8IWEucHJldmlld19yZXF1ZXN0PyExOmNpKGUpLnNvbWUocz0+cy5pZD09PW4pfWZ1bmN0aW9uIF9lKGUsbil7cmV0dXJuIGUuZmluZChhPT5hLmlkPT09bik/PyhlLmxlbmd0aD09PTE/ZVswXTpudWxsKX1mdW5jdGlvbiBkaSh7ZGF0YTplLGxhbmd1YWdlOm4sdDphfSl7Y29uc3Qgcz1lPy5zb3VyY2VzLmZpbmQocj0+ci5zb3VyY2U9PT0icmVjb3ZlcnkiKSxvPXM/LmN1cnJlbnRfcmVjb25jaWxpYXRpb25fb2JzZXJ2YXRpb24sXz1lPy5pdGVtcy5maWx0ZXIocj0+ci5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpfHxbXSxwPXI9PntpZighcnx8IU51bWJlci5pc0Zpbml0ZShEYXRlLnBhcnNlKHIpKSlyZXR1cm4gYSgiY29tbW9uLnVua25vd24iKTtjb25zdCBjPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KG49PT0iemgiPyJ6aC1DTiI6ImVuLVVTIix7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCIsaG91cjoiMi1kaWdpdCIsbWludXRlOiIyLWRpZ2l0Iixob3VyMTI6ITEsdGltZVpvbmVOYW1lOiJzaG9ydE9mZnNldCJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKHIpKSx4PWMuZmluZCh3PT53LnR5cGU9PT0idGltZVpvbmVOYW1lIik/LnZhbHVlfHwiIix5PWMuZmlsdGVyKHc9PncudHlwZSE9PSJ0aW1lWm9uZU5hbWUiKS5tYXAodz0+dy52YWx1ZSkuam9pbigiIikudHJpbSgpO3JldHVybiBpLmpzeCgidGltZSIse2RhdGVUaW1lOnIsY2hpbGRyZW46eD9gJHt5fSAoJHt4fSlgOnl9KX07cmV0dXJuIGkuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCByZWNvbmNpbGlhdGlvbi1tYXRlcmlhbHMiLCJhcmlhLWxhYmVsIjphKCJyZWNvbmNpbGlhdGlvbi50aXRsZSIpLGNoaWxkcmVuOltpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmN1cnJlbnQiKX0pLGkuanN4KCJwIix7cm9sZToic3RhdHVzIixjaGlsZHJlbjpvPy5zdGF0dXNfbGFiZWxbbl18fGEoInJlY29uY2lsaWF0aW9uLm5vdF9jb25uZWN0ZWQiKX0pLG8/Lmxhc3Rfb2JzZXJ2ZWRfYXQmJmkuanN4cygicCIse2NoaWxkcmVuOlthKCJyZWNvbmNpbGlhdGlvbi5vYnNlcnZlZF9hdCIpLCLvvJoiLHAoby5sYXN0X29ic2VydmVkX2F0KV19KSxpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24uaGlzdG9yeV9ub3RpY2UiKX0pLGkuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24ubWF0ZXJpYWxzIil9KSxzPy5zdGF0dXMhPT0ib2siJiZpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46YShzPy5zdGF0dXM9PT0ic3RhbGUiPyJyZWNvbmNpbGlhdGlvbi5zdGFsZSI6InJlY29uY2lsaWF0aW9uLnJlYWRfdW5rbm93biIpfSksIV8ubGVuZ3RoJiZpLmpzeCgicCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmVtcHR5Iil9KSxfLm1hcChyPT57Y29uc3QgYz1yLnByZXNlbnRhdGlvbix4PWdlKCJzdHJhdGVnaWVzIixjPy5zdHJhdGVneV9wcm9maWxlfHwiIixuLGEoInJlY29uY2lsaWF0aW9uLnVubmFtZWRfc3RyYXRlZ3kiKSkseT1nZSgiYWNjb3VudHMiLHIuYWNjb3VudF9hbGlhc3x8IiIsbixhKCJjb21tb24uYWNjb3VudCIpLHIucGxhdGZvcm18fCIiKTtyZXR1cm4gaS5qc3hzKCJhcnRpY2xlIix7Y2xhc3NOYW1lOiJyZWNvbmNpbGlhdGlvbi1tYXRlcmlhbCIsY2hpbGRyZW46W2kuanN4KCJoMyIse2NoaWxkcmVuOmM/LmxhYmVsW25dfHxhKCJyZWNvbmNpbGlhdGlvbi5tYXRlcmlhbHMiKX0pLGkuanN4cygicCIse2NoaWxkcmVuOlt4LCIgwrcgIix5LCIgwrcgIixpLmpzeCgic3BhbiIse2NsYXNzTmFtZToicmVjb25jaWxpYXRpb24tcmVmIixjaGlsZHJlbjphKCJkZWNpc2lvbnMucmVmIix7aWQ6ci5zaG9ydF9pZH0pfSldfSksaS5qc3hzKCJkbCIse2NoaWxkcmVuOltpLmpzeHMoImRpdiIse2NoaWxkcmVuOltpLmpzeCgiZHQiLHtjaGlsZHJlbjphKCJyZWNvbmNpbGlhdGlvbi5kZWNpc2lvbl9zdGF0dXMiKX0pLGkuanN4KCJkZCIse2NoaWxkcmVuOmM/LmRlY2lzaW9uX3N0YXR1c19sYWJlbFtuXXx8YSgicmVjb25jaWxpYXRpb24uZGVjaXNpb25fdW5rbm93biIpfSldfSksaS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbaS5qc3goImR0Iix7Y2hpbGRyZW46YSgicmVjb25jaWxpYXRpb24uZnJlc2huZXNzIil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjphKHIuZXZpZGVuY2VfZnJlc2huZXNzLnN0YXR1cz09PSJzdGFsZSI/InN0YXRlLnN0YWxlIjpyLmV2aWRlbmNlX2ZyZXNobmVzcy5zdGF0dXM9PT0icmVhZHkiPyJkZWNpc2lvbnMuZnJlc2huZXNzLnJlYWR5IjoiY29tbW9uLnVua25vd24iKX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLm9ic2VydmVkX2F0Iil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjpwKGM/Lmxhc3Rfb2JzZXJ2ZWRfYXR8fHIuZXZpZGVuY2VfZnJlc2huZXNzLmFzX29mKX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmdlbmVyYXRlZF9hdCIpfSksaS5qc3goImRkIix7Y2hpbGRyZW46cChjPy5zb3VyY2VfZ2VuZXJhdGVkX2F0KX0pXX0pLGkuanN4cygiZGl2Iix7Y2hpbGRyZW46W2kuanN4KCJkdCIse2NoaWxkcmVuOmEoInJlY29uY2lsaWF0aW9uLmNvbXB1dGVkX2F0Iil9KSxpLmpzeCgiZGQiLHtjaGlsZHJlbjpwKGM/LnNvdXJjZV9jb21wdXRlZF9hdCl9KV19KV19KV19LHIuaWQpfSldfSl9Y29uc3QgdWk9WyJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIsInN0cmF0ZWd5X3Byb21vdGlvbiIsIm93bmVyX2RlY2lzaW9uIiwicGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiIsImNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiXSxxZT17aGlnaDowLG1lZGl1bToxLG5vcm1hbDoyfSxwaT0zMCo4NjRlNTtmdW5jdGlvbiBDZShlKXtpZihlLmV2aWRlbmNlX2ZyZXNobmVzcz8uc3RhdHVzPT09InN0YWxlIilyZXR1cm4hMDtjb25zdCBuPWUuY3JlYXRlZF9hdD9EYXRlLnBhcnNlKGUuY3JlYXRlZF9hdCk6TmFOO3JldHVybiBOdW1iZXIuaXNGaW5pdGUobikmJkRhdGUubm93KCktbj5waX1mdW5jdGlvbiBWKGUpe2NvbnN0IG49ZS5kZWNpc2lvbl9iaW5kaW5nO2lmKG4mJnR5cGVvZiBuLnN1YmplY3RfaWQ9PSJzdHJpbmciJiZuLnN1YmplY3RfaWQpcmV0dXJuIG4uc3ViamVjdF9pZDtjb25zdCBhPWUuaWQuaW5kZXhPZigiOiIpO3JldHVybiBhPj0wP2UuaWQuc2xpY2UoYSsxKTplLmlkfWZ1bmN0aW9uIFooZSl7aWYoZS5zdGF0dXM9PT0iZXhwaXJlZCIpcmV0dXJuITA7Y29uc3Qgbj1lLmV4cGlyZXNfYXQ/RGF0ZS5wYXJzZShlLmV4cGlyZXNfYXQpOk5hTjtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKG4pJiZuPERhdGUubm93KCl9ZnVuY3Rpb24gZmkoZSl7cmV0dXJuWy4uLmVdLnNvcnQoKG4sYSk9Pntjb25zdCBzPSsoYS5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpLSsobi5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpO2lmKHMhPT0wKXJldHVybiBzO2NvbnN0IG89KHFlW24ucHJpb3JpdHldPz8zKS0ocWVbYS5wcmlvcml0eV0/PzMpO3JldHVybiBvIT09MD9vOihhLmNyZWF0ZWRfYXR8fCIiKS5sb2NhbGVDb21wYXJlKG4uY3JlYXRlZF9hdHx8IiIpfSl9ZnVuY3Rpb24gVyhlLG4pe2NvbnN0IGE9ZT8uYXBwbGljYXRpb25fcHJlcGFyYXRpb24/LmFjY291bnRfb3B0aW9ucztyZXR1cm4gQXJyYXkuaXNBcnJheShhKT9hLmZpbHRlcihzPT57aWYoIXN8fHR5cGVvZiBzLnBsYXRmb3JtIT0ic3RyaW5nInx8dHlwZW9mIHMua2V5IT0ic3RyaW5nInx8IXMua2V5LnRyaW0oKSlyZXR1cm4hMTtjb25zdCBvPXMuYnJva2VyX2Vudmlyb25tZW50O3JldHVybiBuP3MucGxhdGZvcm09PT0ibG9uZ2JyaWRnZSImJm89PT0icGFwZXIiOm89PT0ibGl2ZSJ8fG89PT0icGFwZXIiJiZzLnBsYXRmb3JtPT09ImxvbmdicmlkZ2UifSkubWFwKHM9Pih7aWQ6YCR7cy5wbGF0Zm9ybX06JHtzLmtleX1gLHBsYXRmb3JtOlN0cmluZyhzLnBsYXRmb3JtKSxrZXk6U3RyaW5nKHMua2V5KSxsYWJlbDp0eXBlb2Ygcy5sYWJlbD09InN0cmluZyImJnMubGFiZWwudHJpbSgpP3MubGFiZWw6U3RyaW5nKHMua2V5KSxtb2RlOlN0cmluZyhzLmJyb2tlcl9lbnZpcm9ubWVudHx8IiIpfSkpOltdfWZ1bmN0aW9uIG1pKGUpe3JldHVybiBlPT09ImZyZXNoIj8ic3RhdGUuZnJlc2giOmU9PT0ic3RhbGUiPyJzdGF0ZS5zdGFsZSI6ZT09PSJyZWFkeSI/ImRlY2lzaW9ucy5mcmVzaG5lc3MucmVhZHkiOmU9PT0idW5hdmFpbGFibGUiPyJzdGF0ZS51bmF2YWlsYWJsZSI6InN0YXRlLnVua25vd24ifWZ1bmN0aW9uIGJpKHtlcG9jaDplLGNhdGVnb3J5Om59KXtjb25zdCBhPVNlKCkscz1BZSgpLFtvLF9dPWIudXNlU3RhdGUobnVsbCksW3Ascl09Yi51c2VTdGF0ZShudWxsKSxbYyx4XT1iLnVzZVN0YXRlKCExKSxbeSx3XT1iLnVzZVN0YXRlKCExKSxDPWIudXNlUmVmKFhlKCkpLFE9Yi51c2VDYWxsYmFjaygoKT0+e2NvbnN0IHY9Qy5jdXJyZW50LmJlZ2luKCk7XyhudWxsKSx4KCExKSxyKG51bGwpLHhlKDI1KS50aGVuKEU9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiYoXyhFLml0ZW1zKSxyKEUubmV4dF9jdXJzb3IpKX0pLmNhdGNoKCgpPT57Qy5jdXJyZW50LmlzQ3VycmVudCh2KSYmeCghMCl9KX0sW10pO2IudXNlRWZmZWN0KCgpPT5RKCksW1EsZV0pO2NvbnN0IEc9KCk9PntpZighcHx8eSlyZXR1cm47Y29uc3Qgdj1DLmN1cnJlbnQuYmVnaW4oKTt3KCEwKSx4ZSgyNSxwKS50aGVuKEU9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiYoXyhLPT5bLi4uS3x8W10sLi4uRS5pdGVtc10pLHIoRS5uZXh0X2N1cnNvcikpfSkuY2F0Y2goKCk9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiZ4KCEwKX0pLmZpbmFsbHkoKCk9PntDLmN1cnJlbnQuaXNDdXJyZW50KHYpJiZ3KCExKX0pfTtpZihjJiYhbz8ubGVuZ3RoKXJldHVybiBpLmpzeChUZSx7b25SZXRyeTpRfSk7aWYoIW8pcmV0dXJuIGkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbaS5qc3goSCx7aGVpZ2h0OjU2fSksaS5qc3goImRpdiIse3N0eWxlOntoZWlnaHQ6OH19KSxpLmpzeChILHtoZWlnaHQ6NTZ9KV19KTtjb25zdCBQPW49PT0iYWxsIj9vOm8uZmlsdGVyKHY9PnYuY2F0ZWdvcnk9PT1uKTtyZXR1cm4gUC5sZW5ndGg9PT0wP2kuanN4KGRlLHt0aXRsZTphKCJkZWNpc2lvbnMuaGlzdG9yeS5lbXB0eSIpfSk6aS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoImRlY2lzaW9ucy5oaXN0b3J5X3RpdGxlIil9KSxpLmpzeChaZSx7aXRlbXM6UC5tYXAodj0+KHtpZDp2LmlkLHRpbWU6di50aW1lLHRpdGxlOmkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbdi5hY3Rvcl9hbGlhc3x8YSgiY29tbW9uLnVua25vd24iKSwiIMK3ICIsYShgZGVjaXNpb25zLmFjdGlvbi4ke3YuYWN0aW9ufWApXX0pLGRldGFpbDppLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2EoYGNhdGVnb3J5LiR7di5jYXRlZ29yeX1gKSwiIMK3ICIsYSgiZGVjaXNpb25zLnJlZiIse2lkOnYuaXRlbV9zaG9ydF9pZH0pLCIgwrcgIix1ZSh2LnRpbWUscykudGV4dF19KX0pKX0pLHAmJmkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWhpc3RvcnktbW9yZSIsY2hpbGRyZW46aS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsZGlzYWJsZWQ6eSxvbkNsaWNrOkcsY2hpbGRyZW46YSh5PyJjb21tb24ubG9hZGluZyI6ImNvbW1vbi5sb2FkX21vcmUiKX0pfSksYyYmaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmEoImVycm9yLmdlbmVyaWMiKX0pXX0pfWZ1bmN0aW9uIGtpKCl7Y29uc3QgZT1TZSgpLG49RmUoKSxhPUFlKCkscz1MZSgpLG89R2UoKSx7Y29uZmlybVJlcXVlc3Q6Xyxjb25maXJtOnAscmVzb2x2ZUNvbmZpcm06cn09VWUoKSxbYyx4XT1iLnVzZVN0YXRlKCJhbGwiKSxbeSx3XT1iLnVzZVN0YXRlKCJwZW5kaW5nIiksW0MsUV09Yi51c2VTdGF0ZSgwKSxbRyxQXT1iLnVzZVN0YXRlKG51bGwpLFt2LEVdPWIudXNlU3RhdGUoe30pLFtLLGZlXT1iLnVzZVN0YXRlKHt9KSxqPWNlKCgpPT5QZShDPjApLFtDXSksbWU9Y2UoKCk9PkJlKCksW10pLGJlPW1lLnBoYXNlPT09InJlYWR5IiYmbWUuZGF0YS5hZG1pbj09PSEwLEY9Yi51c2VSZWYoc2koKSksSj1iLnVzZVJlZihpaSgpKSxJPWIudXNlQ2FsbGJhY2soKCk9PlEodD0+dCsxKSxbXSksZWU9Yi51c2VNZW1vKCgpPT5qLnBoYXNlPT09InJlYWR5IiYmai5kYXRhLnN0YXR1cyE9PSJyZWFkX2ZhaWxlZCI/ai5kYXRhLml0ZW1zOltdLFtqXSksb2U9Yi51c2VNZW1vKCgpPT5maShlZS5maWx0ZXIodD0+dC5zdGF0dXM9PT0icGVuZGluZyJ8fHQuc3RhdHVzPT09ImV4cGlyZWQiKSksW2VlXSkseWU9Yi51c2VNZW1vKCgpPT5lZS5maWx0ZXIodD0+dC5zdGF0dXM9PT0icGVuZGluZyIpLmxlbmd0aCxbZWVdKSxYPWIudXNlTWVtbygoKT0+Yz09PSJhbGwiP29lOm9lLmZpbHRlcih0PT50LmNhdGVnb3J5PT09YyksW29lLGNdKSxBPVguZmluZCh0PT50LmlkPT09Ryl8fG51bGw7Yi51c2VFZmZlY3QoKCk9PntqLnBoYXNlPT09InJlYWR5IiYmRyYmIVguc29tZSh0PT50LmlkPT09RykmJlAobnVsbCl9LFtqLnBoYXNlLEcsWF0pO2NvbnN0IGhlPSEhKEEmJkEuc3RhdHVzPT09InBlbmRpbmciJiYhWihBKSYmKEEuY2F0ZWdvcnk9PT0ic3RyYXRlZ3lfcHJvbW90aW9uInx8QS5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIikpLGllPWNlKCgpPT5oZT9CKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi10aWNrZXRzIik6UHJvbWlzZS5yZXNvbHZlKG51bGwpLFtoZSxBPy5pZCxDXSksWT1iLnVzZU1lbW8oKCk9PntpZighQXx8aWUucGhhc2UhPT0icmVhZHkifHwhaWUuZGF0YSlyZXR1cm4gbnVsbDtjb25zdCB0PWllLmRhdGEuYXBwbGljYXRpb25zO3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0LmZpbmQobD0+bD8udGlja2V0X2lkPT09VihBKSl8fG51bGx9LFtBLGllXSksVD0odCxsKT0+byh7a2luZDp0LHRleHQ6ZShsKX0pLHNlPXQ9Pnt0IGluc3RhbmNlb2YgUWV8fChUKCJlcnJvciIsdCBpbnN0YW5jZW9mIEtlJiZ0LnN0YXR1cz09PTQwOT8iZXJyb3IuY29uZmxpY3QiOiJlcnJvci5nZW5lcmljIiksSSgpKX0sRWU9YXN5bmModCxsLGcpPT57Y29uc3QgdT1WKHQpLGQ9dC5jYXRlZ29yeT09PSJvd25lcl9kZWNpc2lvbiI/Im93bmVyIjp0LmNhdGVnb3J5PT09InJlY29uY2lsaWF0aW9uX3JlY292ZXJ5Ij8icmVjb3ZlcnkiOiJwcm9tb3Rpb24iO2xldCBrLGgsTyxmPW51bGw7dHJ5e2lmKGQ9PT0ib3duZXIiKXtjb25zdCBtPSgoYXdhaXQgQigiL2FwaS9vd25lci1kZWNpc2lvbnMiKSkuY2FuZGlkYXRlc3x8W10pLmZpbmQoUj0+Uj8uY2FuZGlkYXRlPy5jYW5kaWRhdGVfaWQ9PT11KTtpZighbSl7VCgiaW5mbyIsImRlY2lzaW9ucy5pbnRlbnRfbm90X3BlbmRpbmciKSxJKCk7cmV0dXJufWNvbnN0IEQ9V2Uoey4uLm0uY2FuZGlkYXRlLGNhbmRpZGF0ZV9ldmlkZW5jZV9zaGEyNTY6bS5jYW5kaWRhdGVfZXZpZGVuY2Vfc2hhMjU2fSxsPT09ImFkb3B0Ij8iYXBwcm92ZV9saW1pdGVkX2xpdmVfY2FuYXJ5Ijoia2VlcF9wYXJrZWQiKTtpZighRCl7VChtLmludGVudD8iaW5mbyI6ImVycm9yIixtLmludGVudD8iZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyI6ImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKSxJKCk7cmV0dXJufWs9bSxoPUQsTz0iL2FwaS9vd25lci1kZWNpc2lvbnMifWVsc2UgaWYoZD09PSJyZWNvdmVyeSIpe2NvbnN0IG09KChhd2FpdCBCKCIvYXBpL3JlY29uY2lsaWF0aW9uLXJlY292ZXJ5IikpLnJlY292ZXJpZXN8fFtdKS5maW5kKFI9PlI/LnJlY292ZXJ5Py5yZWNvdmVyeV9pZD09PXUpO2lmKCFtKXtUKCJpbmZvIiwiZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyIpLEkoKTtyZXR1cm59Y29uc3QgRD1laShtLGw9PT0iYWRvcHQiPyJhcHByb3ZlIjoicmVqZWN0Iik7aWYoIUQpe2NvbnN0IFI9ISEobS5jb25maXJtYXRpb258fG0ucmVqZWN0aW9uKTtUKFI/ImluZm8iOiJlcnJvciIsUj8iZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyI6ImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKSxJKCk7cmV0dXJufWs9bSxoPUQsTz0iL2FwaS9yZWNvbmNpbGlhdGlvbi1yZWNvdmVyeS1jb25maXJtYXRpb25zIn1lbHNle2NvbnN0IHE9YXdhaXQgQigiL2FwaS9yZXNlYXJjaC1wcm9tb3Rpb24tdGlja2V0cyIpLG09KHEudGlja2V0c3x8W10pLmZpbmQoUj0+Uj8udGlja2V0X2lkPT09dSk7aWYoIW0pe1QoImluZm8iLCJkZWNpc2lvbnMuaW50ZW50X25vdF9wZW5kaW5nIiksSSgpO3JldHVybn1sZXQgRD1udWxsO2lmKGw9PT0iYWRvcHQiKXtjb25zdCBSPShxLmFwcGxpY2F0aW9uc3x8W10pLmZpbmQobGU9PmxlPy50aWNrZXRfaWQ9PT11KSxyZT1XKFIsITEpLmZpbmQobGU9PmxlLmlkPT09Zyk7aWYoIXJlKXtUKCJlcnJvciIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKTtyZXR1cm59RD1yZSxmPXJlfWs9bSxoPXt0aWNrZXRfaWQ6bS50aWNrZXRfaWQsZGVjaXNpb246bD09PSJhZG9wdCI/ImFjY2VwdCI6InJlamVjdCIsY29uZmlybWF0aW9uOkQ/e3RhcmdldF9wbGF0Zm9ybTpELnBsYXRmb3JtLGV4ZWN1dGlvbl9tb2RlOkQubW9kZSxyaXNrX3Byb2ZpbGU6IkNBUElUQUxfUFJFU0VSVkFUSU9OIn06bnVsbCwuLi5EP3tzZWxlY3RlZF9hY2NvdW50OntwbGF0Zm9ybTpELnBsYXRmb3JtLGtleTpELmtleX19Ont9LGV4cGVjdGVkX3Byb3Bvc2VkX3BhcmFtczptLnByb3Bvc2VkX3BhcmFtc3x8e30sZXhwZWN0ZWRfc3RyYXRlZ3lfcHJvZmlsZTptLnN0cmF0ZWd5X3Byb2ZpbGUsZXhwZWN0ZWRfZG9tYWluOm0uZG9tYWlufSxPPSIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi1kZWNpc2lvbnMifX1jYXRjaChxKXtzZShxKTtyZXR1cm59Y29uc3QgTj1GLmN1cnJlbnQuZXBvY2goKSxTPWF3YWl0IG9pKGQsayxoKTtpZihOIT09Ri5jdXJyZW50LmVwb2NoKCkpcmV0dXJuO2lmKCFTKXtUKCJlcnJvciIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiKTtyZXR1cm59aWYoIXRpKHQuZGVjaXNpb25fYmluZGluZyxTKSl7VCgiaW5mbyIsImRlY2lzaW9ucy5tYXRlcmlhbF9jaGFuZ2VkIiksSSgpO3JldHVybn1pZighYXdhaXQgdmUodCxsLCExLGYpfHxOIT09Ri5jdXJyZW50LmVwb2NoKCl8fFoodCkpcmV0dXJuO2NvbnN0IHo9Ri5jdXJyZW50LnN0YXJ0KFMpO2lmKCF6KXJldHVybjtjb25zdCAkPWBpbnRlbnQ6JHt0LmlkfWA7RShxPT4oey4uLnEsWyRdOiEwfSkpO3RyeXtjb25zdCBxPWF3YWl0IHdlKE8sey4uLmgsZXhwZWN0ZWRfbWF0ZXJpYWxfc2hhMjU2OlMubWF0ZXJpYWxfc2hhMjU2LC4uLlMucmV2aWV3X3NoYTI1Nj97ZXhwZWN0ZWRfcmV2aWV3X3NoYTI1NjpTLnJldmlld19zaGEyNTZ9Ont9fSk7aWYoIUYuY3VycmVudC5jdXJyZW50KHopKXJldHVybjtjb25zdCBtPWF3YWl0IEYuY3VycmVudC5yZWNlaXZlKHoscT8uZGVjaXNpb25fcmVjZWlwdCk7VChtPyJzdWNjZXNzIjoiZXJyb3IiLG0/ImRlY2lzaW9ucy5pbnRlbnRfcmVjb3JkZWQiOiJlcnJvci5nZW5lcmljIiksSSgpfWNhdGNoKHEpe3NlKHEpfWZpbmFsbHl7Ri5jdXJyZW50LmN1cnJlbnQoeikmJkUocT0+KHsuLi5xLFskXTohMX0pKX19LEllPWFzeW5jKHQsbCk9Pntjb25zdCBnPVYodCksdT1gYXBwbHk6JHtnfWA7aWYoIUouY3VycmVudC5hY3F1aXJlKHUpKXJldHVybjtFKGs9Pih7Li4uayxbdV06ITB9KSk7bGV0IGQ9ITE7dHJ5e2NvbnN0IGg9KChhd2FpdCBCKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi10aWNrZXRzIikpLmFwcGxpY2F0aW9uc3x8W10pLmZpbmQoTj0+Tj8udGlja2V0X2lkPT09ZyksTz1XKGgsITApLmZpbmQoTj0+Ti5pZD09PWwpO2lmKCFofHwhT3x8IU5lKGgsbCkpe1QoImVycm9yIiwiZGVjaXNpb25zLmludGVudF91bmF2YWlsYWJsZSIpO3JldHVybn1jb25zdCBmPWF3YWl0IEIoIi9hcGkvYWRtaW4vcnVudGltZS1pbnN0YW5jZXMiKTtkPSEwLGF3YWl0IHdlKCIvYXBpL3Jlc2VhcmNoLXByb21vdGlvbi1hcHBsaWNhdGlvbnMiLHt0aWNrZXRfaWQ6ZyxzZWxlY3RlZF9hY2NvdW50OntwbGF0Zm9ybTpPLnBsYXRmb3JtLGtleTpPLmtleX0sZXhwZWN0ZWRfcmV2aXNpb246TnVtYmVyKGYucmV2aXNpb24pfSksVCgic3VjY2VzcyIsImRlY2lzaW9ucy5hcHBsaWNhdGlvbl9zdWJtaXR0ZWQiKSxJKCl9Y2F0Y2goayl7c2Uoayl9ZmluYWxseXtFKGs9Pih7Li4uayxbdV06ITF9KSksZHx8Si5jdXJyZW50LnJlbGVhc2UodSl9fSx2ZT0odCxsLGcsdSk9PnAoe3RpdGxlOmUobD09PSJhZG9wdCI/ImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X3RpdGxlIjoiZGVjaXNpb25zLmNvbmZpcm1fZGVjbGluZV90aXRsZSIpLHRhcmdldDp1P2Ake2FlKHQsZSl9IMK3ICR7dS5sYWJlbH0gKCR7dS5wbGF0Zm9ybX0gLyAke3Uua2V5fSAvICR7dS5tb2RlfSlgOmFlKHQsZSksc3VtbWFyeTplKGc/ImRlY2lzaW9ucy5hcHBseV9ub3RlIjoiZGVjaXNpb25zLmNvbmZpcm1fYm9keSIpLGJvZHk6aS5qc3goamUse3Jvd3M6dC5kaWZmLm1hcChkPT4oey4uLmQsbGFiZWw6ZShkLmxhYmVsX2tleSk9PT1kLmxhYmVsX2tleT9kLmZpZWxkOmUoZC5sYWJlbF9rZXkpLGFmZmVjdHNMaXZlOmQuYWZmZWN0c19saXZlfSkpfSksY29uc2VxdWVuY2U6ZSgiZGVjaXNpb25zLmludGVudF9ub3RlIiksdG9uZTpsPT09ImFkb3B0Ij8ibm9ybWFsIjoiZGFuZ2VyIixjb25maXJtTGFiZWw6ZShsPT09ImFkb3B0Ij8iZGVjaXNpb25zLmNvbmZpcm1fYWRvcHRfbGFiZWwiOiJkZWNpc2lvbnMuY29uZmlybV9kZWNsaW5lX2xhYmVsIil9KSxuZT1hc3luYyh0LGwpPT57aWYoIWJlfHx0LnN0YXR1cyE9PSJwZW5kaW5nInx8Wih0KSlyZXR1cm47Y29uc3QgZz1gY29uZmlybToke3QuaWR9YDtpZighSi5jdXJyZW50LmFjcXVpcmUoZykpcmV0dXJuO2NvbnN0IHU9YGludGVudDoke3QuaWR9YDtFKGQ9Pih7Li4uZCxbdV06ITB9KSk7dHJ5e2NvbnN0IGQ9dC5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIiYmbD09PSJhZG9wdCIsaz1XKFksdC5jYXRlZ29yeT09PSJwYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIiksaD1fZShrLEtbdC5pZF0pO2lmKGw9PT0iYWRvcHQiJiYoZHx8dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iKSYmIWgpe1QoImVycm9yIiwiZGVjaXNpb25zLmludGVudF91bmF2YWlsYWJsZSIpO3JldHVybn1kJiZoP2F3YWl0IHZlKHQsbCwhMCxoKSYmYXdhaXQgSWUodCxoLmlkKTphd2FpdCBFZSh0LGwsaD8uaWQ/P251bGwpfWZpbmFsbHl7Si5jdXJyZW50LnJlbGVhc2UoZyksRShkPT4oey4uLmQsW3VdOiExfSkpfX07ZnVuY3Rpb24gYWUodCxsKXtjb25zdCBnPWwodC50aXRsZV9rZXkpO3JldHVybiBnPT09dC50aXRsZV9rZXk/dC5zaG9ydF9pZDpnfWNvbnN0IFJlPVt7aWQ6ImFsbCIsbGFiZWw6ZSgiZGVjaXNpb25zLmZpbHRlci5hbGwiKX0sLi4udWkubWFwKHQ9Pih7aWQ6dCxsYWJlbDplKGBjYXRlZ29yeS4ke3R9YCl9KSldLHplPSgpPT57aWYoIUEpcmV0dXJuIG51bGw7Y29uc3QgdD1BLGw9Wih0KSxnPXQuc3RhdHVzPT09InBlbmRpbmciJiYhbCx1PXQuZGlmZi5tYXAoZj0+e2NvbnN0IE49ZShmLmxhYmVsX2tleSk7cmV0dXJue2ZpZWxkOmYuZmllbGQsbGFiZWw6Tj09PWYubGFiZWxfa2V5P2YuZmllbGQ6TixiZWZvcmU6Zi5iZWZvcmUsYWZ0ZXI6Zi5hZnRlcixhZmZlY3RzTGl2ZTpmLmFmZmVjdHNfbGl2ZX19KSxkPSEhdltgaW50ZW50OiR7dC5pZH1gXSxrPSEhdltgYXBwbHk6JHtWKHQpfWBdLGg9ZHx8aztsZXQgTz1udWxsO2lmKGcmJmJlKWlmKHQuY2F0ZWdvcnk9PT0iY3JlZGVudGlhbF9tYWludGVuYW5jZSIpTz1pLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixvbkNsaWNrOigpPT5zKHtwYWdlOiJoZWFsdGgifSksY2hpbGRyZW46ZSgiZGVjaXNpb25zLm9wZW5faGVhbHRoIil9KTtlbHNlIGlmKHQuY2F0ZWdvcnk9PT0icGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiIpe2NvbnN0IGY9VyhZLCEwKSxOPV9lKGYsS1t0LmlkXSk/LmlkPz8iIixTPXQuYXBwbGljYXRpb25fc3RhdHVzPT09InVuY2VydGFpbiIsej0hIShOJiZZJiZOZShZLE4pKTtPPWkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbZi5sZW5ndGg+MSYmaS5qc3hzKCJsYWJlbCIse2NsYXNzTmFtZToiZGVjaXNpb24tYWNjb3VudC1waWNrZXIiLGNoaWxkcmVuOltpLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImRlY2lzaW9ucy5zZWxlY3RfYWNjb3VudCIpfSksaS5qc3hzKCJzZWxlY3QiLHt2YWx1ZTpOLG9uQ2hhbmdlOiQ9PmZlKHE9Pih7Li4ucSxbdC5pZF06JC50YXJnZXQudmFsdWV9KSksY2hpbGRyZW46W2kuanN4cygib3B0aW9uIix7dmFsdWU6IiIsY2hpbGRyZW46W2UoImRlY2lzaW9ucy5zZWxlY3RfYWNjb3VudCIpLCLigKYiXX0pLGYubWFwKCQ9PmkuanN4KCJvcHRpb24iLHt2YWx1ZTokLmlkLGNoaWxkcmVuOiQubGFiZWx9LCQuaWQpKV19KV19KSxpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3gtYWN0aW9ucyIsY2hpbGRyZW46W1M/aS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5hcHBsaWNhdGlvbl91bmNlcnRhaW4iKX0pOmkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbZi5sZW5ndGg9PT0wP2kuanN4KCJwIix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1ub3RlIixjaGlsZHJlbjplKCJkZWNpc2lvbnMubm9fYWNjb3VudF9vcHRpb25zIil9KTppLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6aHx8IXp8fEouY3VycmVudC5pc0xvY2tlZChgYXBwbHk6JHtWKHQpfWApLG9uQ2xpY2s6KCk9PntuZSh0LCJhZG9wdCIpfSxjaGlsZHJlbjplKGs/ImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoiZGVjaXNpb25zLmFkb3B0X2ludGVudCIpfSksaS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsZGlzYWJsZWQ6aCxvbkNsaWNrOigpPT57bmUodCwiZGVjbGluZSIpfSxjaGlsZHJlbjplKGQ/ImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoiZGVjaXNpb25zLmRlY2xpbmVfaW50ZW50Iil9KV19KSxpLmpzeCgicCIse2NsYXNzTmFtZToiZGVjaXNpb24tbm90ZSIsY2hpbGRyZW46ZShmLmxlbmd0aD09PTB8fFM/ImRlY2lzaW9ucy5pbnRlbnRfbm90ZSI6ImRlY2lzaW9ucy5hcHBseV9ub3RlIil9KV19KV19KX1lbHNle2NvbnN0IGY9dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iP1coWSwhMSk6W10sTj1fZShmLEtbdC5pZF0pPy5pZD8/IiI7Tz1pLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2YubGVuZ3RoPjEmJmkuanN4cygibGFiZWwiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWFjY291bnQtcGlja2VyIixjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiKX0pLGkuanN4cygic2VsZWN0Iix7dmFsdWU6TixvbkNoYW5nZTpTPT5mZSh6PT4oey4uLnosW3QuaWRdOlMudGFyZ2V0LnZhbHVlfSkpLGNoaWxkcmVuOltpLmpzeHMoIm9wdGlvbiIse3ZhbHVlOiIiLGNoaWxkcmVuOltlKCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiKSwi4oCmIl19KSxmLm1hcChTPT5pLmpzeCgib3B0aW9uIix7dmFsdWU6Uy5pZCxjaGlsZHJlbjpTLmxhYmVsfSxTLmlkKSldfSldfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImluYm94LWFjdGlvbnMiLGNoaWxkcmVuOltpLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsZGlzYWJsZWQ6aHx8dC5jYXRlZ29yeT09PSJzdHJhdGVneV9wcm9tb3Rpb24iJiYhTixvbkNsaWNrOigpPT57bmUodCwiYWRvcHQiKX0sY2hpbGRyZW46ZShkPyJkZWNpc2lvbnMuc3VibWl0dGluZyI6ImRlY2lzaW9ucy5hZG9wdF9pbnRlbnQiKX0pLGkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLGRpc2FibGVkOmgsb25DbGljazooKT0+e25lKHQsImRlY2xpbmUiKX0sY2hpbGRyZW46ZShkPyJkZWNpc2lvbnMuc3VibWl0dGluZyI6ImRlY2lzaW9ucy5kZWNsaW5lX2ludGVudCIpfSksaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5pbnRlbnRfbm90ZSIpfSldfSldfSl9cmV0dXJuIGkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIGluYm94LWRldGFpbCIsY2hpbGRyZW46W2kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1kZXRhaWwtaGVhZCIsY2hpbGRyZW46W2kuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgaW5ib3gtYmFjayIsb25DbGljazooKT0+UChudWxsKSxjaGlsZHJlbjplKCJjb21tb24uYmFjayIpfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLWJhZGdlcyIsY2hpbGRyZW46W2kuanN4KFUse3RvbmU6dC5jYXRlZ29yeT09PSJyZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI/Indhcm4iOiJhY2NlbnQiLGNoaWxkcmVuOmUoYGNhdGVnb3J5LiR7dC5jYXRlZ29yeX1gKX0pLGkuanN4KFUse3RvbmU6dC5zdGF0dXM9PT0iZGVjaWRlZCI/Im9rIjpsPyJ1bmtub3duIjoid2FybiIsY2hpbGRyZW46ZShgZGVjaXNpb25zLnN0YXR1cy4ke2w/ImV4cGlyZWQiOnQuc3RhdHVzfWApfSksdC5hZmZlY3RzX2xpdmUmJmkuanN4KFUse3RvbmU6Indhcm4iLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5jb2wuYWZmZWN0c19saXZlIil9KV19KSxpLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLHN0eWxlOnttYXJnaW46MH0sY2hpbGRyZW46YWUodCxlKX0pLGkuanN4KCJwIix7Y2xhc3NOYW1lOiJkZWNpc2lvbi1wcm9tcHQiLGNoaWxkcmVuOmUoYGRlY2lzaW9ucy5wcm9tcHQuJHt0LmNhdGVnb3J5fWApfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW1ldGEiLGNoaWxkcmVuOltpLmpzeCgic3BhbiIse2NoaWxkcmVuOnQuYWNjb3VudF9hbGlhcz9uLmFjY291bnQodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pOmUoImRlY2lzaW9ucy5hY2NvdW50X2dsb2JhbCIpfSksdC5wbGF0Zm9ybSYmaS5qc3goInNwYW4iLHtjaGlsZHJlbjp0LnBsYXRmb3JtfSksdC5jcmVhdGVkX2F0JiZpLmpzeCgic3BhbiIse2NoaWxkcmVuOmUoImRlY2lzaW9ucy5jcmVhdGVkX2F0Iix7dmFsdWU6dWUodC5jcmVhdGVkX2F0LGEpLnRleHR9KX0pLHQuZXhwaXJlc19hdCYmaS5qc3goInNwYW4iLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMuZXhwaXJlc19hdCIse3ZhbHVlOnVlKHQuZXhwaXJlc19hdCxhKS50ZXh0fSl9KSxDZSh0KSYmaS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImRlY2lzaW9uLXN0YWxlLWhpbnQiLGNoaWxkcmVuOmUoImRlY2lzaW9ucy5zdGFsZV9oaW50Iil9KV19KV19KSx1Lmxlbmd0aD4wJiZpLmpzeHMoaS5GcmFnbWVudCx7Y2hpbGRyZW46W2kuanN4KCJoMyIse2NsYXNzTmFtZToiZGVjaXNpb24tc2VjdGlvbi10aXRsZSIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLmRpZmZfdGl0bGUiKX0pLGkuanN4KGplLHtyb3dzOnV9KV19KSxpLmpzeHMoImRldGFpbHMiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW1hdGVyaWFscyIsY2hpbGRyZW46W2kuanN4KCJzdW1tYXJ5Iix7Y2hpbGRyZW46ZSgiZGVjaXNpb25zLm1hdGVyaWFscyIpfSksaS5qc3goInAiLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMucmVmIix7aWQ6dC5zaG9ydF9pZH0pfSksaS5qc3goInAiLHtjaGlsZHJlbjplKCJkZWNpc2lvbnMubWF0ZXJpYWxfZnJlc2huZXNzIix7dmFsdWU6ZShtaSh0LmV2aWRlbmNlX2ZyZXNobmVzcz8uc3RhdHVzKSl9KX0pLHQuZXZpZGVuY2VfZnJlc2huZXNzPy5hc19vZiYmaS5qc3goTWUse3ZhbHVlOnQuZXZpZGVuY2VfZnJlc2huZXNzLmFzX29mfSldfSksT119KX0sJGU9KCk9PntpZihqLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3giLGNoaWxkcmVuOltpLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaW5ib3gtbGlzdCIsY2hpbGRyZW46W2kuanN4KEgse2hlaWdodDo2NH0pLGkuanN4KEgse2hlaWdodDo2NH0pLGkuanN4KEgse2hlaWdodDo2NH0pXX0pLGkuanN4KEgse2hlaWdodDoyODB9KV19KTtpZihqLnBoYXNlPT09ImVycm9yInx8ai5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpcmV0dXJuIGkuanN4KFRlLHtkYXRhOmouZGF0YSxlcnJvcjpqLmVycm9yLG9uUmV0cnk6ai5waGFzZT09PSJlcnJvciI/ai5yZWxvYWQ6SX0pO2NvbnN0IHQ9ai5kYXRhLnNvdXJjZXMuZmlsdGVyKGw9Pmwuc3RhdHVzIT09Im9rIik7cmV0dXJuIGkuanN4cyhpLkZyYWdtZW50LHtjaGlsZHJlbjpbdC5sZW5ndGg+MCYmaS5qc3goInAiLHtjbGFzc05hbWU6ImRlY2lzaW9uLW5vdGUiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnBhcnRpYWxfc291cmNlcyIse3ZhbHVlOnQubWFwKGw9PmUoYGRlY2lzaW9ucy5zb3VyY2UuJHtsLnNvdXJjZX1gKSkuam9pbihhPT09InpoIj8i44CBIjoiLCAiKX0pfSksWC5sZW5ndGg9PT0wP2kuanN4KGRlLHt0aXRsZTplKCJkZWNpc2lvbnMuZW1wdHlfcGVuZGluZyIpfSk6aS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YGluYm94JHtBPyIgZGV0YWlsLW9wZW4iOiIifWAsY2hpbGRyZW46W2kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImluYm94LWxpc3QiLHJvbGU6Imxpc3QiLGNoaWxkcmVuOlgubWFwKGw9Pntjb25zdCBnPVoobCksdT1IZShsLmNyZWF0ZWRfYXQsYSk7cmV0dXJuIGkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixyb2xlOiJsaXN0aXRlbSIsY2xhc3NOYW1lOmBpbmJveC1pdGVtJHtBPy5pZD09PWwuaWQ/IiBhY3RpdmUiOiIifSR7Zz8iIGlzLWV4cGlyZWQiOiIifWAsb25DbGljazooKT0+UChsLmlkKSxjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHByaW9yaXR5LWRvdCBwcmlvcml0eS0ke2wucHJpb3JpdHl9YCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGkuanN4cygic3BhbiIse2NsYXNzTmFtZToiaXRlbS1tYWluIixjaGlsZHJlbjpbaS5qc3goInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tdGl0bGUiLGNoaWxkcmVuOmFlKGwsZSl9KSxpLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tbWV0YSIsY2hpbGRyZW46W2wuY2F0ZWdvcnk9PT0icmVjb25jaWxpYXRpb25fcmVjb3ZlcnkiJiZpLmpzeChVLHt0b25lOiJ3YXJuIixjaGlsZHJlbjplKCJjYXRlZ29yeS5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSIpfSksaS5qc3goInNwYW4iLHtjaGlsZHJlbjpsLmFjY291bnRfYWxpYXM/bi5hY2NvdW50KGwuYWNjb3VudF9hbGlhcyxsLnBsYXRmb3JtKTplKCJkZWNpc2lvbnMuYWNjb3VudF9nbG9iYWwiKX0pLHUmJmkuanN4KCJzcGFuIix7Y2hpbGRyZW46dX0pLENlKGwpJiZpLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZGVjaXNpb24tc3RhbGUtaGludCIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnN0YWxlX2hpbnQiKX0pXX0pXX0pLGkuanN4KFUse3RvbmU6Zz8idW5rbm93biI6Indhcm4iLGNoaWxkcmVuOmUoYGRlY2lzaW9ucy5zdGF0dXMuJHtnPyJleHBpcmVkIjpsLnN0YXR1c31gKX0pXX0sbC5pZCl9KX0pLHplKCl8fGkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImNhcmQgaW5ib3gtZGV0YWlsIixjaGlsZHJlbjppLmpzeChkZSx7dGl0bGU6ZSgiZGVjaXNpb25zLnNlbGVjdF9wcm9tcHQiKX0pfSldfSldfSl9O3JldHVybiBpLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2kuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46ZSgiZGVjaXNpb25zLnRpdGxlIil9KSxpLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGRlY2lzaW9uLXJlZnJlc2giLG9uQ2xpY2s6SSxjaGlsZHJlbjplKCJjb21tb24ucmVmcmVzaCIpfSldfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRlY2lzaW9ucy1maWx0ZXJzIixjaGlsZHJlbjpbaS5qc3goWWUse2lkOiJkZWNpc2lvbnMiLGl0ZW1zOlJlLGFjdGl2ZTpjLG9uQ2hhbmdlOnQ9PngodCksYXJpYUxhYmVsOmUoImRlY2lzaW9ucy50aXRsZSIpfSksaS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjplKCJkZWNpc2lvbnMudGl0bGUiKSxjaGlsZHJlbjpbaS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLXByZXNzZWQiOnk9PT0icGVuZGluZyIsY2xhc3NOYW1lOmBzZWdtZW50JHt5PT09InBlbmRpbmciPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PncoInBlbmRpbmciKSxjaGlsZHJlbjpbZSgiZGVjaXNpb25zLnRhYi5wZW5kaW5nIikseWU+MCYmaS5qc3goInNwYW4iLHtjbGFzc05hbWU6InNlZ21lbnQtc3ViIixjaGlsZHJlbjp5ZX0pXX0pLGkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLCJhcmlhLXByZXNzZWQiOnk9PT0iZGVjaWRlZCIsY2xhc3NOYW1lOmBzZWdtZW50JHt5PT09ImRlY2lkZWQiPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PncoImRlY2lkZWQiKSxjaGlsZHJlbjplKCJkZWNpc2lvbnMudGFiLmRlY2lkZWQiKX0pXX0pXX0pLGkuanN4KGRpLHtkYXRhOmoucGhhc2U9PT0icmVhZHkiP2ouZGF0YTpudWxsLGxhbmd1YWdlOmEsdDplfSksaS5qc3goImRpdiIse2lkOiJkZWNpc2lvbnMtcGFuZWwiLHJvbGU6InRhYnBhbmVsIiwiYXJpYS1sYWJlbGxlZGJ5IjpgZGVjaXNpb25zLXRhYi0ke2N9YCx0YWJJbmRleDowLGNoaWxkcmVuOnk9PT0icGVuZGluZyI/JGUoKTppLmpzeChiaSx7ZXBvY2g6QyxjYXRlZ29yeTpjfSl9KSxfJiZpLmpzeChWZSx7cmVxdWVzdDpfLG9uUmVzb2x2ZTpyfSldfSl9ZXhwb3J0e2tpIGFzIGRlZmF1bHR9Owo=" }, + "/v2/assets/Dialog-CvNBZH1R.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgaixqIGFzIGUsRCBhcyB2LHIgYXMgbH1mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2Z1bmN0aW9uIHgoe3ZhbHVlOm59KXtyZXR1cm4gbj09bnVsbD9lLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KTp0eXBlb2Ygbj09ImJvb2xlYW4iP2UuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOm4/IuKckyI6IuKclSJ9KTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpTdHJpbmcobil9KX1mdW5jdGlvbiBrKHtyb3dzOm59KXtjb25zdCB0PWooKTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToidGFibGUtd3JhcCIsY2hpbGRyZW46ZS5qc3hzKCJ0YWJsZSIse2NsYXNzTmFtZToiZGF0YS10YWJsZSIsY2hpbGRyZW46W2UuanN4KCJ0aGVhZCIse2NoaWxkcmVuOmUuanN4cygidHIiLHtjaGlsZHJlbjpbZS5qc3goInRoIix7Y2hpbGRyZW46dCgiZGVjaXNpb25zLmNvbC5maWVsZCIpfSksZS5qc3goInRoIix7Y2hpbGRyZW46dCgiZGVjaXNpb25zLmNvbC5jdXJyZW50Iil9KSxlLmpzeCgidGgiLHtjaGlsZHJlbjp0KCJkZWNpc2lvbnMuY29sLnByb3Bvc2VkIil9KSxlLmpzeCgidGgiLHtjaGlsZHJlbjp0KCJkZWNpc2lvbnMuY29sLmFmZmVjdHNfbGl2ZSIpfSldfSl9KSxlLmpzeCgidGJvZHkiLHtjaGlsZHJlbjpuLm1hcChzPT5lLmpzeHMoInRyIix7Y2hpbGRyZW46W2UuanN4KCJ0ZCIse2NoaWxkcmVuOnMubGFiZWx9KSxlLmpzeCgidGQiLHtjaGlsZHJlbjplLmpzeCh4LHt2YWx1ZTpzLmJlZm9yZX0pfSksZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goeCx7dmFsdWU6cy5hZnRlcn0pfSksZS5qc3goInRkIix7Y2xhc3NOYW1lOnMuYWZmZWN0c0xpdmU/ImRpZmYtYWZmZWN0cy1saXZlIjoiIixjaGlsZHJlbjpzLmFmZmVjdHNMaXZlP3QoImRlY2lzaW9ucy5hZmZlY3RzX2xpdmVfeWVzIik6dCgiZGVjaXNpb25zLmFmZmVjdHNfbGl2ZV9ubyIpfSldfSxzLmZpZWxkKSl9KV19KX0pfWZ1bmN0aW9uIEMoe2l0ZW1zOm59KXtyZXR1cm4gZS5qc3goInVsIix7Y2xhc3NOYW1lOiJ0aW1lbGluZSIsY2hpbGRyZW46bi5tYXAodD0+ZS5qc3hzKCJsaSIse2NoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2hpbGRyZW46dC50aXRsZX0pLHQuZGV0YWlsJiZlLmpzeCgiZGl2Iix7c3R5bGU6e2NvbG9yOiJ2YXIoLS1tdXRlZCkiLGZvbnRTaXplOjEzfSxjaGlsZHJlbjp0LmRldGFpbH0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6InRpbWVsaW5lLXRpbWUiLGNoaWxkcmVuOmUuanN4KHYse3ZhbHVlOnQudGltZX0pfSldfSx0LmlkKSl9KX1mdW5jdGlvbiBUKHtyZXF1ZXN0Om4sb25SZXNvbHZlOnR9KXtjb25zdCBzPWooKSxyPWwudXNlUmVmKG51bGwpLGQ9bC51c2VSZWYobnVsbCksW2MsZl09bC51c2VTdGF0ZSghMSksW2kscF09bC51c2VTdGF0ZSgiIik7bC51c2VFZmZlY3QoKCk9PntkLmN1cnJlbnQ/LmZvY3VzKCl9LFtdKTtjb25zdCBtPSFuLnR5cGVUb0NvbmZpcm18fGkudHJpbSgpPT09bi50eXBlVG9Db25maXJtLmV4cGVjdGVkLGI9IW4uYWNrTGFiZWx8fGMsZz1tJiZiLHk9YT0+e2lmKGEua2V5PT09IkVzY2FwZSIpe2EucHJldmVudERlZmF1bHQoKSx0KCExKTtyZXR1cm59aWYoYS5rZXkhPT0iVGFiIilyZXR1cm47Y29uc3Qgbz1yLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKSwgW2hyZWZdLCBpbnB1dDpub3QoOmRpc2FibGVkKSwgc2VsZWN0Om5vdCg6ZGlzYWJsZWQpLCB0ZXh0YXJlYTpub3QoOmRpc2FibGVkKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2lmKCFvPy5sZW5ndGgpcmV0dXJuO2NvbnN0IHU9b1swXSxoPW9bby5sZW5ndGgtMV07YS5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXU/KGEucHJldmVudERlZmF1bHQoKSxoLmZvY3VzKCkpOiFhLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aCYmKGEucHJldmVudERlZmF1bHQoKSx1LmZvY3VzKCkpfTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLWJhY2tkcm9wIixvbk1vdXNlRG93bjphPT57YS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJnQoITEpfSxjaGlsZHJlbjplLmpzeHMoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nIixyb2xlOiJkaWFsb2ciLCJhcmlhLW1vZGFsIjoidHJ1ZSIsImFyaWEtbGFiZWxsZWRieSI6ImNvbmZpcm0tdGl0bGUiLHJlZjpyLG9uS2V5RG93bjp5LGNoaWxkcmVuOltlLmpzeCgiaDIiLHtpZDoiY29uZmlybS10aXRsZSIsY2hpbGRyZW46bi50aXRsZX0pLG4udGFyZ2V0JiZlLmpzeCgicCIse2NsYXNzTmFtZToiZGlhbG9nLXRhcmdldCIsY2hpbGRyZW46bi50YXJnZXR9KSxuLnN1bW1hcnkmJmUuanN4KCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZy1zdW1tYXJ5IixjaGlsZHJlbjpuLnN1bW1hcnl9KSxuLmJvZHksbi5jb25zZXF1ZW5jZSYmZS5qc3goInAiLHtjbGFzc05hbWU6YGRpYWxvZy1jb25zZXF1ZW5jZSAke24udG9uZT09PSJkYW5nZXIiPyJkYW5nZXIiOiIifWAsY2hpbGRyZW46bi5jb25zZXF1ZW5jZX0pLG4uYWNrTGFiZWwmJmUuanN4cygibGFiZWwiLHtjbGFzc05hbWU6ImNoZWNrYm94LXJvdyIsY2hpbGRyZW46W2UuanN4KCJpbnB1dCIse3R5cGU6ImNoZWNrYm94IixjaGVja2VkOmMsb25DaGFuZ2U6YT0+ZihhLnRhcmdldC5jaGVja2VkKX0pLGUuanN4KCJzcGFuIix7Y2hpbGRyZW46bi5hY2tMYWJlbH0pXX0pLG4udHlwZVRvQ29uZmlybSYmZS5qc3hzKCJsYWJlbCIse2NsYXNzTmFtZToiZmllbGQiLHN0eWxlOnttYXJnaW5Ub3A6MTJ9LGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NoaWxkcmVuOm4udHlwZVRvQ29uZmlybS5sYWJlbH0pLGUuanN4KCJpbnB1dCIse2NsYXNzTmFtZToiaW5wdXQiLHZhbHVlOmksb25DaGFuZ2U6YT0+cChhLnRhcmdldC52YWx1ZSksYXV0b0NvbXBsZXRlOiJvZmYiLCJhcmlhLWludmFsaWQiOiFtJiZpLmxlbmd0aD4wfSksIW0mJmkubGVuZ3RoPjAmJmUuanN4KCJzcGFuIix7c3R5bGU6e2NvbG9yOiJ2YXIoLS1kYW5nZXIpIixmb250U2l6ZToxMn0sY2hpbGRyZW46bi50eXBlVG9Db25maXJtLm1pc21hdGNofSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZy1hY3Rpb25zIixjaGlsZHJlbjpbZS5qc3goImJ1dHRvbiIse3JlZjpkLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLHR5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+dCghMSksY2hpbGRyZW46cygiY29tbW9uLmNhbmNlbCIpfSksZS5qc3goImJ1dHRvbiIse2NsYXNzTmFtZTpgYnV0dG9uICR7bi50b25lPT09ImRhbmdlciI/ImJ1dHRvbi1kYW5nZXIiOiJidXR0b24tcHJpbWFyeSJ9YCx0eXBlOiJidXR0b24iLGRpc2FibGVkOiFnLG9uQ2xpY2s6KCk9PnQoITApLGNoaWxkcmVuOm4uY29uZmlybUxhYmVsfHxzKCJjb21tb24uY29uZmlybSIpfSldfSldfSl9KX1mdW5jdGlvbiBEKCl7Y29uc3Rbbix0XT1sLnVzZVN0YXRlKG51bGwpLHM9bC51c2VSZWYobnVsbCk7cmV0dXJue2NvbmZpcm1SZXF1ZXN0Om4sY29uZmlybTpjPT5uZXcgUHJvbWlzZShmPT57cy5jdXJyZW50Py4oITEpLHMuY3VycmVudD1mLHQoYyl9KSxyZXNvbHZlQ29uZmlybTpjPT57cy5jdXJyZW50Py4oYykscy5jdXJyZW50PW51bGwsdChudWxsKX19fWV4cG9ydHtUIGFzIEMsayBhcyBELEMgYXMgVCxEIGFzIHV9Owo=" }, + "/v2/assets/HealthPage-Cf2I56Xk.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgbSx3IGFzIEYsciBhcyBqLGEyIGFzIFAsaiBhcyBlLGkgYXMgQyxmIGFzIGcsayBhcyBLLHAgYXMgVSxCIGFzIFQsUyBhcyBMLEsgYXMgdyxFIGFzIGIsaCBhcyB6LGEzIGFzIEcsbyBhcyBZLGE0IGFzIFosQSBhcyBJLF8gYXMgcSxhNSBhcyBKfWZyb20iLi9pbmRleC1DWTZpR1BPWC5qcyI7aW1wb3J0e3UgYXMgJH1mcm9tIi4vaG9va3MtQ1JOa1loeDcuanMiO2ltcG9ydHtLIGFzIFN9ZnJvbSIuL0twaUNhcmQtQ1JTamRfM2suanMiO2ltcG9ydHtEIGFzIE99ZnJvbSIuL0RhdGFUYWJsZS1Ddk1VLXFHYy5qcyI7aW1wb3J0e3IgYXMgeSxhIGFzIFF9ZnJvbSIuL3J1bnRpbWVfZGFpbHlfY29udHJhY3QtQ2Y4TnUxVGUuanMiO2Z1bmN0aW9uIEgocyl7Y29uc3QgdD1zLnJlY29yZDtpZighdHx8cy5kYXRhX3N0YXR1cz09PSJ1bmF2YWlsYWJsZSIpcmV0dXJuIm5vLXJlY29yZCI7Y29uc3QgYT10LnJ1bnM/P1tdO3JldHVybiB0LnN0YXR1cz09PSJibG9ja2VkIj8iYmxvY2tlZCI6WyJmYWlsZWQiLCJlcnJvciJdLmluY2x1ZGVzKHQuc3RhdHVzKXx8YS5zb21lKGw9PmwuYWN0aXZpdHkhPT0iYmxvY2tlZCImJnkobCk9PT0iZmFpbHVyZSIpPyJmYWlsZWQiOmEuc29tZShsPT5sLmFjdGl2aXR5PT09ImJsb2NrZWQiKT8iYmxvY2tlZCI6dC5zdGF0dXM9PT0icmVhZF9pbmNvbXBsZXRlIj8icmVhZC1mYWlsZWQiOnMuZGF0YV9zdGF0dXM9PT0ic3RhbGUiPyJzdGFsZSI6IVsiZnJlc2giLCJoaXN0b3JpY2FsIl0uaW5jbHVkZXMocy5kYXRhX3N0YXR1cyl8fHQuc3RhdHVzPT09InVua25vd24iPyJ1bmtub3duIjp0LmNvbXBsZXRlbmVzcyE9PSJjb21wbGV0ZSJ8fHQua2luZD09PSJpbmNvbXBsZXRlInx8dC5zdGF0dXM9PT0ibWlzc2luZ19yZXBvcnQiPyJpbmNvbXBsZXRlIjp0LmtpbmQ9PT0ic2NoZWR1bGUiJiYhYS5sZW5ndGgmJlsibm90X2R1ZSIsIm1hcmtldF9jbG9zZWQiLCJvdXRzaWRlX3dpbmRvdyIsIndpdGhpbl9ncmFjZSJdLmluY2x1ZGVzKHQuc3RhdHVzKT8ibm90LXJ1biI6dC5raW5kPT09InJ1biImJlsibm9fc3VibWlzc2lvbiIsIm5vX3NpZ25hbCIsIm5vX3JlYmFsYW5jZSIsImZpbGxlZCJdLmluY2x1ZGVzKHQuc3RhdHVzKSYmYS5sZW5ndGg+MCYmYS5ldmVyeShsPT55KGwpPT09bnVsbCk/Im9rIjoidW5rbm93biJ9ZnVuY3Rpb24gVyhzKXtjb25zdCB0PVsiZmFpbGVkIiwiZXJyb3IiXSxhPVsiYmxvY2tlZCIsIm5vX3N1Ym1pc3Npb24iLCJub19zaWduYWwiLCJub19yZWJhbGFuY2UiLCJmaWxsZWQiXTtyZXR1cm57Y291bnQ6cy5hY2NvdW50cy5maWx0ZXIobD0+bC5hY3Rpdml0eSE9PSJibG9ja2VkIiYmKHQuaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpfHxsLnJ1bnMuc29tZShpPT5pLmFjdGl2aXR5IT09ImJsb2NrZWQiJiZ5KGkpPT09ImZhaWx1cmUiKSkpLmxlbmd0aCxjb21wbGV0ZTpzLnN0YXR1cz09PSJvayImJnMuY291bnRzLnJ1bnMhPT1udWxsJiZzLmNvdW50cy5jb25maWd1cmVkPjAmJnMuY291bnRzLm9ic2VydmVkPT09cy5jb3VudHMuY29uZmlndXJlZCYmcy5hY2NvdW50cy5sZW5ndGg9PT1zLmNvdW50cy5jb25maWd1cmVkJiZzLmFjY291bnRzLmV2ZXJ5KGw9Pmwuc3RhdHVzPT09Im9rIiYmbC5jb21wbGV0ZW5lc3M9PT0iY29tcGxldGUiJiZsLnJ1bl9jb3VudCE9PW51bGwmJmwucnVuX2NvdW50PT09bC5ydW5zLmxlbmd0aCYmKHQuaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpfHxhLmluY2x1ZGVzKGwuYWN0aXZpdHl8fCIiKXx8WyJub3RfZHVlIiwibWFya2V0X2Nsb3NlZCIsIm91dHNpZGVfd2luZG93Iiwid2l0aGluX2dyYWNlIl0uaW5jbHVkZXMobC5hY3Rpdml0eXx8IiIpKSYmbC5ydW5zLmV2ZXJ5KGk9PnkoaSkhPT0idW5jb25maXJtZWQiKSl9fWNvbnN0IEE9e29rOiJoZWFsdGguZ3JpZC5vayIsZmFpbGVkOiJoZWFsdGguZ3JpZC5mYWlsZWQiLGJsb2NrZWQ6ImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCIsIm5vdC1ydW4iOiJoZWFsdGguZ3JpZC5ub3RfcnVuIiwibm8tcmVjb3JkIjoiaGVhbHRoLmdyaWQubm9fcmVjb3JkIix1bmtub3duOiJzdGF0ZS51bmtub3duIixpbmNvbXBsZXRlOiJoZWFsdGguZ3JpZC5pbmNvbXBsZXRlIixzdGFsZToic3RhdGUuc3RhbGUiLCJyZWFkLWZhaWxlZCI6InN0YXRlLnJlYWRfZmFpbGVkIn0sQj17b2s6IuKckyIsZmFpbGVkOiLinJciLGJsb2NrZWQ6IuKKmCIsIm5vdC1ydW4iOiLigJMiLCJuby1yZWNvcmQiOiIiLHVua25vd246Ij8iLGluY29tcGxldGU6IuKApiIsc3RhbGU6In4iLCJyZWFkLWZhaWxlZCI6IiEifTtmdW5jdGlvbiBFKHMsdCl7cmV0dXJuYCR7cy5wbGF0Zm9ybX0vJHtzLmFjY291bnRfYWxpYXN9LyR7dH1gfWZ1bmN0aW9uIFgocyx0KXtjb25zdCBhPVtdO2xldCBsPURhdGUucGFyc2UoYCR7c31UMDA6MDA6MDBaYCk7Zm9yKDthLmxlbmd0aDx0Oyl7Y29uc3QgaT1uZXcgRGF0ZShsKS5nZXRVVENEYXkoKTtpIT09MCYmaSE9PTYmJmEudW5zaGlmdChuZXcgRGF0ZShsKS50b0lTT1N0cmluZygpLnNsaWNlKDAsMTApKSxsLT04NjRlNX1yZXR1cm4gYX1mdW5jdGlvbiBlZSh7c2VsZWN0aW9uOnMsY2VsbDp0fSl7Y29uc3QgYT1tKCksbD1GKCksaT1LKCksbj1VKHMuZGF0ZSxpKTtsZXQgcjtpZighdHx8dC5waGFzZT09PSJsb2FkaW5nIilyPWUuanN4KGcse2hlaWdodDoxNix3aWR0aDoyNDB9KTtlbHNlIGlmKHQucGhhc2U9PT0iZXJyb3IiKXI9ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImhlYWx0aC1ncmlkLW5vdGUiLGNoaWxkcmVuOmEoInN0YXRlLnJlYWRfZmFpbGVkIil9KTtlbHNlIGlmKCF0LnNuYXBzaG90LnJlY29yZClyPWUuanN4KCJzcGFuIix7Y2hpbGRyZW46YSgiaGVhbHRoLmdyaWQubm9fcmVjb3JkIil9KTtlbHNle2NvbnN0IGQ9dC5zbmFwc2hvdC5yZWNvcmQsaD1kLnJ1bnM/P1tdO3I9ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwtbWV0YSIsY2hpbGRyZW46W2Quc3RhdHVzPT09ImJsb2NrZWQiP2UuanN4KFQse3RvbmU6Indhcm4iLGNoaWxkcmVuOmEoImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCIpfSk6ZS5qc3goTCx7c3RhdHVzOmQuc3RhdHVzfSksSCh0LnNuYXBzaG90KT09PSJibG9ja2VkIiYmZS5qc3goInNwYW4iLHtjaGlsZHJlbjphKGQuYmxvY2tfcmVhc29uX2NvZGU/YHJlYXNvbi4ke2QuYmxvY2tfcmVhc29uX2NvZGV9YDoicmVhc29uLnVua25vd24iKX0pLGUuanN4cygic3BhbiIse2NoaWxkcmVuOlthKCJoZWFsdGgucnVuX2NvdW50IiksIjogIixkLnJ1bnM/aC5sZW5ndGg6IuKAlCJdfSldfSksaC5sZW5ndGg+MCYmZS5qc3goInVsIix7Y2xhc3NOYW1lOiJoZWFsdGgtZGF5LXJ1bnMiLGNoaWxkcmVuOmgubWFwKChjLGYpPT57Y29uc3QgTj13KGMuc3RhcnRlZF9hdCxpKS50ZXh0LG89dyhjLmZpbmlzaGVkX2F0LGkpLnRleHQ7cmV0dXJuIGUuanN4cygibGkiLHtjaGlsZHJlbjpbZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOlthKCJoZWFsdGguZGV0YWlsLnN0YXJ0ZWQiKSwiICIsTl19KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Im51bSIsY2hpbGRyZW46W2EoImhlYWx0aC5kZXRhaWwuZmluaXNoZWQiKSwiICIsb119KSxlLmpzeCgic3BhbiIse2NoaWxkcmVuOmEoYy5hY3Rpdml0eT09PSJibG9ja2VkIj8iaGVhbHRoLnJ1bl9zdGF0ZS5ibG9ja2VkIjpgc3RhdGUuJHtjLmFjdGl2aXR5fHwidW5rbm93biJ9YCl9KSxjLmVycm9yc19wcmVzZW50PT09ITAmJmMuYWN0aXZpdHkhPT0iYmxvY2tlZCImJmUuanN4KFQse3RvbmU6ImVycm9yIixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZC5mYWlsZWQiKX0pXX0sZil9KX0pXX0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWRheS1kZXRhaWwtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJzdHJvbmciLHtjaGlsZHJlbjphKCJoZWFsdGguZGF5X2RldGFpbCIpfSksZS5qc3goInNwYW4iLHtjaGlsZHJlbjpsLmFjY291bnQocy5hY2NvdW50LmFjY291bnRfYWxpYXMscy5hY2NvdW50LnBsYXRmb3JtKX0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOm59KV19KSxyXX0pfWZ1bmN0aW9uIHRlKHthY2NvdW50czpzLGVwb2NoOnR9KXtjb25zdCBhPW0oKSxsPUYoKSxpPWoudXNlTWVtbygoKT0+WChRKCksMTQpLFt0XSksW24scl09ai51c2VTdGF0ZSh7fSksW2QsaF09ai51c2VTdGF0ZSghMSksW2MsZl09ai51c2VTdGF0ZShudWxsKTtpZihqLnVzZUVmZmVjdCgoKT0+e2lmKCFzLmxlbmd0aClyZXR1cm47bGV0IG89ITE7Y29uc3QgdT17fTtmb3IoY29uc3QgayBvZiBzKWZvcihjb25zdCBwIG9mIGkpdVtFKGsscCldPXtwaGFzZToibG9hZGluZyJ9O3JldHVybiByKHUpLGgoITEpLGYobnVsbCksKGFzeW5jKCk9PntsZXQgaz0hMTtmb3IoY29uc3QgcCBvZiBpKXtjb25zdCB2PWF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChzLm1hcChfPT5QKHAsXy5wbGF0Zm9ybSxfLmFjY291bnRfYWxpYXMsITEpKSk7aWYobylyZXR1cm47Y29uc3QgeD17fTt2LmZvckVhY2goKF8sTSk9Pntjb25zdCBWPUUoc1tNXSxwKTtfLnN0YXR1cz09PSJmdWxmaWxsZWQiP3hbVl09e3BoYXNlOiJyZWFkeSIsc25hcHNob3Q6Xy52YWx1ZX06KHhbVl09e3BoYXNlOiJlcnJvciJ9LGs9ITApfSkscihfPT4oey4uLl8sLi4ueH0pKX0hbyYmayYmaCghMCl9KSgpLmNhdGNoKCgpPT57b3x8aCghMCl9KSwoKT0+e289ITB9fSxbcyxpLHRdKSwhcy5sZW5ndGgpcmV0dXJuIGUuanN4KEMse3RpdGxlOmEoInN0YXRlLm5vX2RhdGEiKX0pO2NvbnN0IE49T2JqZWN0LmtleXMoQSk7cmV0dXJuIGUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3goInAiLHtjbGFzc05hbWU6InNjcm9sbC1oaW50IixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZF9zY3JvbGxfaGludCIpfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWdyaWQiLHRhYkluZGV4OjAscm9sZToicmVnaW9uIiwiYXJpYS1sYWJlbCI6YSgiaGVhbHRoLmdyaWRfdGl0bGUiKSxjaGlsZHJlbjplLmpzeHMoInRhYmxlIix7Y2hpbGRyZW46W2UuanN4KCJjYXB0aW9uIix7Y2xhc3NOYW1lOiJzci1vbmx5IixjaGlsZHJlbjphKCJoZWFsdGguZ3JpZF90aXRsZSIpfSksZS5qc3goInRoZWFkIix7Y2hpbGRyZW46ZS5qc3hzKCJ0ciIse2NoaWxkcmVuOltlLmpzeCgidGgiLHtzY29wZToiY29sIixjaGlsZHJlbjphKCJoZWFsdGguY29sLmFjY291bnQiKX0pLGkubWFwKG89PmUuanN4KCJ0aCIse3Njb3BlOiJjb2wiLGNsYXNzTmFtZToibnVtIixjaGlsZHJlbjpvLnNsaWNlKDUpfSxvKSldfSl9KSxlLmpzeCgidGJvZHkiLHtjaGlsZHJlbjpzLm1hcChvPT5lLmpzeHMoInRyIix7Y2hpbGRyZW46W2UuanN4cygidGgiLHtzY29wZToicm93IixjaGlsZHJlbjpbbC5hY2NvdW50KG8uYWNjb3VudF9hbGlhcyxvLnBsYXRmb3JtKSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46WyIgwrcgIixsLnBsYXRmb3JtKG8ucGxhdGZvcm0pXX0pXX0pLGkubWFwKHU9Pntjb25zdCBrPUUobyx1KSxwPW5ba10sdj1jPy5hY2NvdW50LnBsYXRmb3JtPT09by5wbGF0Zm9ybSYmYy5hY2NvdW50LmFjY291bnRfYWxpYXM9PT1vLmFjY291bnRfYWxpYXMmJmMuZGF0ZT09PXU7aWYoIXB8fHAucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KCJ0ZCIse2NoaWxkcmVuOmUuanN4KGcse2hlaWdodDoyNix3aWR0aDoyNn0pfSx1KTtpZihwLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBoZWFsdGgtY2VsbCByZWFkLWZhaWxlZCR7dj8iIHNlbGVjdGVkIjoiIn1gLHRpdGxlOmEoInN0YXRlLnJlYWRfZmFpbGVkIiksImFyaWEtbGFiZWwiOmAke2wuYWNjb3VudChvLmFjY291bnRfYWxpYXMsby5wbGF0Zm9ybSl9ICR7dX06ICR7YSgic3RhdGUucmVhZF9mYWlsZWQiKX1gLG9uQ2xpY2s6KCk9PmYoe2FjY291bnQ6byxkYXRlOnV9KSxjaGlsZHJlbjoiISJ9KX0sdSk7Y29uc3QgeD1IKHAuc25hcHNob3QpLF89YShBW3hdKTtyZXR1cm4gZS5qc3goInRkIix7Y2hpbGRyZW46ZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBoZWFsdGgtY2VsbCAke3h9JHt2PyIgc2VsZWN0ZWQiOiIifWAsdGl0bGU6XywiYXJpYS1sYWJlbCI6YCR7bC5hY2NvdW50KG8uYWNjb3VudF9hbGlhcyxvLnBsYXRmb3JtKX0gJHt1fTogJHtffWAsImFyaWEtcHJlc3NlZCI6dixvbkNsaWNrOigpPT5mKHthY2NvdW50Om8sZGF0ZTp1fSksY2hpbGRyZW46Qlt4XX0pfSx1KX0pXX0sYCR7by5wbGF0Zm9ybX0vJHtvLmFjY291bnRfYWxpYXN9YCkpfSldfSl9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtbGVnZW5kIixjaGlsZHJlbjpOLm1hcChvPT5lLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YGhlYWx0aC1jZWxsICR7b31gLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOkJbb119KSxhKEFbb10pXX0sbykpfSksZCYmZS5qc3goInAiLHtjbGFzc05hbWU6ImhlYWx0aC1ncmlkLW5vdGUiLGNoaWxkcmVuOmEoImhlYWx0aC5ncmlkX3JlYWRfZmFpbGVkX25vdGUiKX0pLGMmJmUuanN4KGVlLHtzZWxlY3Rpb246YyxjZWxsOm5bRShjLmFjY291bnQsYy5kYXRlKV19KV19KX1jb25zdCBhZT1bInN1Y2NlZWRlZCIsImZhaWxlZCIsImJsb2NrZWQiLCJub19kYXRhIiwibm90X2Nvbm5lY3RlZCIsIm5vdF9ydW4iLCJ1bmtub3duIiwicmVhZF9mYWlsZWQiXTtmdW5jdGlvbiBSKHMpe2lmKFsibm90X2Nvbm5lY3RlZCIsIm5vX2RhdGEiLCJyZWFkX2ZhaWxlZCJdLmluY2x1ZGVzKHMuc3RhdHVzKSlyZXR1cm4gcy5zdGF0dXM7Y29uc3QgdD1zLmFjdGl2aXR5LGE9cy5ydW5zfHxbXTtyZXR1cm4gdD09PSJibG9ja2VkIj8iYmxvY2tlZCI6WyJmYWlsZWQiLCJlcnJvciJdLmluY2x1ZGVzKHQpfHxhLnNvbWUobD0+bC5hY3Rpdml0eSE9PSJibG9ja2VkIiYmeShsKT09PSJmYWlsdXJlIik/ImZhaWxlZCI6YS5zb21lKGw9PmwuYWN0aXZpdHk9PT0iYmxvY2tlZCIpPyJibG9ja2VkIjp0PT09InJlYWRfaW5jb21wbGV0ZSI/InJlYWRfZmFpbGVkIjpbIm5vdF9kdWUiLCJtYXJrZXRfY2xvc2VkIiwib3V0c2lkZV93aW5kb3ciLCJ3aXRoaW5fZ3JhY2UiXS5pbmNsdWRlcyh0KSYmIWEubGVuZ3RoPyJub3RfcnVuIjpzLmNvbXBsZXRlbmVzcz09PSJjb21wbGV0ZSImJlsibm9fc3VibWlzc2lvbiIsIm5vX3NpZ25hbCIsIm5vX3JlYmFsYW5jZSIsImZpbGxlZCJdLmluY2x1ZGVzKHQpJiZhLmxlbmd0aCYmYS5ldmVyeShsPT55KGwpPT09bnVsbCk/InN1Y2NlZWRlZCI6InVua25vd24ifWZ1bmN0aW9uIHNlKHMpe2NvbnN0IHQ9T2JqZWN0LmZyb21FbnRyaWVzKGFlLm1hcChhPT5bYSwwXSkpO2Zvcihjb25zdCBhIG9mIHMpdFtSKGEpXSsrO3JldHVybiB0fWZ1bmN0aW9uIG5lKHMsdCl7cmV0dXJuIHMuZmlsdGVyKGE9Pntjb25zdCBsPXQuZmlsdGVyKGk9PmkucGxhdGZvcm09PT1hLnBsYXRmb3JtJiZpLmFjY291bnRfa2V5PT09YS5hY2NvdW50X2FsaWFzKTtyZXR1cm4gbC5sZW5ndGg9PT0xJiZsWzBdLnN0YXR1cz09PSJib3VuZCImJiEhbFswXS50YXJnZXRfa2V5fSl9Y29uc3QgbGU9WyIzMCIsIjciLCIxIiwiZXhwaXJlZCJdLHJlPXtleHBpcmVkOiJlcnJvciIsMToiZXJyb3IiLDc6Indhcm4iLDMwOiJ3YXJuIixub3RfZHVlOiJvayIsdW5rbm93bjoidW5rbm93biJ9O2Z1bmN0aW9uIEQoe3N0YXRlOnMscmVuZGVyOnR9KXtjb25zdCBhPW0oKTtyZXR1cm4gcy5waGFzZT09PSJsb2FkaW5nIj9lLmpzeChnLHtoZWlnaHQ6MjQsd2lkdGg6OTB9KTpzLnBoYXNlPT09ImVycm9yInx8cy5waGFzZT09PSJyZWFkeSImJnMuZGF0YSE9PW51bGwmJnR5cGVvZiBzLmRhdGE9PSJvYmplY3QiJiYic3RhdHVzImluIHMuZGF0YSYmcy5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCI/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdGF0ZSIsY2hpbGRyZW46YSgic3RhdGUucmVhZF9mYWlsZWQiKX0pOmUuanN4KGUuRnJhZ21lbnQse2NoaWxkcmVuOnQoKX0pfWZ1bmN0aW9uIGllKHtzdW1tYXJ5OnMsY3JlZGVudGlhbDp0fSl7Y29uc3QgYT1tKCksbD1zLnBoYXNlPT09InJlYWR5Ij9zLmRhdGE6bnVsbCxpPWw/bC5hY2NvdW50cy5maWx0ZXIoZj0+Zi5zdGF0dXM9PT0ib2siKS5sZW5ndGg6MCxuPWw/VyhsKTp7Y291bnQ6MCxjb21wbGV0ZTohMX0scj1sP3NlKGwuYWNjb3VudHMpOm51bGwsZD1yJiYoci5ub3RfY29ubmVjdGVkPjB8fHIubm9fZGF0YT4wKT9hKCJoZWFsdGgua3BpLnRvZGF5X3J1bnNfbm90ZSIse25vdF9jb25uZWN0ZWQ6ci5ub3RfY29ubmVjdGVkLG5vX2RhdGE6ci5ub19kYXRhfSk6dm9pZCAwLGg9dC5waGFzZT09PSJyZWFkeSI/dC5kYXRhOm51bGwsYz1oJiZsZS5pbmNsdWRlcyhoLnBoYXNlKT8xOjA7cmV0dXJuIGUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0YXQtc3RyaXAiLGNoaWxkcmVuOltlLmpzeChTLHt0aXRsZTphKCJoZWFsdGgua3BpLnRvZGF5X3J1bnMiKSx2YWx1ZTplLmpzeChELHtzdGF0ZTpzLHJlbmRlcjooKT0+YSgiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iLHtjb3VudDppLHRvdGFsOmw/LmNvdW50cy5jb25maWd1cmVkPz8wfSl9KSxzdWI6ZCxmb290ZXI6bD8uYXNfb2Y/ZS5qc3goSSx7dmFsdWU6bC5hc19vZn0pOnZvaWQgMH0pLGUuanN4KFMse3RpdGxlOmEoImhlYWx0aC5rcGkub2JzZXJ2ZWQiKSx2YWx1ZTplLmpzeChELHtzdGF0ZTpzLHJlbmRlcjooKT0+YSgiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iLHtjb3VudDpsPy5jb3VudHMub2JzZXJ2ZWQ/PzAsdG90YWw6bD8uY291bnRzLmNvbmZpZ3VyZWQ/PzB9KX0pfSksZS5qc3goUyx7dGl0bGU6YSgiaGVhbHRoLmtwaS5jcmVkZW50aWFscyIpLHZhbHVlOmUuanN4KEQse3N0YXRlOnQscmVuZGVyOigpPT5hKCJoZWFsdGguc3RhdC5jcmVkZW50aWFscyIse2NvdW50OmN9KX0pfSksZS5qc3goUyx7dGl0bGU6YSgiaGVhbHRoLmtwaS5yZWNlbnRfZmFpbHVyZSIpLHZhbHVlOmUuanN4KEQse3N0YXRlOnMscmVuZGVyOigpPT5uLmNvbXBsZXRlP1N0cmluZyhuLmNvdW50KTpuLmNvdW50PjA/YSgiaGVhbHRoLmZhaWx1cmVfYXRfbGVhc3QiLHtjb3VudDpuLmNvdW50fSk6YSgic3RhdGUudW5rbm93biIpfSl9KV19KSxyJiZlLmpzeCgidWwiLHtjbGFzc05hbWU6ImhlYWx0aC1zdGF0ZS1jb3VudHMiLCJhcmlhLWxhYmVsIjphKCJoZWFsdGguc3RhdGVfY291bnRzIiksY2hpbGRyZW46T2JqZWN0LmVudHJpZXMocikubWFwKChbZixOXSk9PmUuanN4cygibGkiLHtjaGlsZHJlbjpbYShgaGVhbHRoLnJ1bl9zdGF0ZS4ke2Z9YCksIjogIixlLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpOfSldfSxmKSl9KSxlLmpzeHMoInAiLHtjbGFzc05hbWU6Im1ldHJpYy1ub3RlIixjaGlsZHJlbjpbYSgiaGVhbHRoLmZhaWx1cmVfd2luZG93Iix7ZGF0ZTpsPy5kYXRlPz8i4oCUIn0pLCFuLmNvbXBsZXRlJiZgIMK3ICR7YSgiaGVhbHRoLmZhaWx1cmVfaW5jb21wbGV0ZSIpfWBdfSldfSl9ZnVuY3Rpb24gb2Uoe3N1bW1hcnk6c30pe2NvbnN0IHQ9bSgpLGE9RigpO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KGcse2hlaWdodDoxMjB9KTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpzLnJlbG9hZH0pO2NvbnN0IGw9W3tpZDoiYWNjb3VudCIsaGVhZGVyOnQoImhlYWx0aC5jb2wuYWNjb3VudCIpLGNlbGw6bj0+ZS5qc3goZS5GcmFnbWVudCx7Y2hpbGRyZW46YS5hY2NvdW50KG4uYWNjb3VudF9hbGlhcyxuLnBsYXRmb3JtKX0pLHNvcnRWYWx1ZTpuPT5gJHthLmFjY291bnQobi5hY2NvdW50X2FsaWFzLG4ucGxhdGZvcm0pfToke24uYWNjb3VudF9hbGlhc31gfSx7aWQ6InN0YXR1cyIsaGVhZGVyOnQoImhlYWx0aC5jb2wuc3RhdHVzIiksY2VsbDpuPT5lLmpzeChMLHtzdGF0dXM6bi5mcmVzaG5lc3M/PyhuLnN0YWxlPT09ITA/InN0YWxlIjpuLmZyZXNoPT09ITA/ImZyZXNoIjpuLnN0YXR1cykscmVhc29uOm4udW5hdmFpbGFibGVfcmVhc29ufSksc29ydFZhbHVlOm49Pm4uc3RhdHVzfSx7aWQ6ImFjdGl2aXR5IixoZWFkZXI6dCgiaGVhbHRoLmFjdGl2aXR5IiksY2VsbDpuPT5lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3QoYGhlYWx0aC5ydW5fc3RhdGUuJHtuLnJ1bl9zdGF0dXN8fFIobil9YCksKG4ucnVuX3N0YXR1c3x8UihuKSk9PT0iYmxvY2tlZCImJmUuanN4cygic3BhbiIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjpbIiDCtyAiLHQobi5ydW5fc3RhdHVzX3JlYXNvbj9gcmVhc29uLiR7bi5ydW5fc3RhdHVzX3JlYXNvbn1gOiJyZWFzb24udW5rbm93biIpXX0pXX0pfSx7aWQ6InJ1bl9jb3VudCIsaGVhZGVyOnQoImhlYWx0aC5ydW5fY291bnQiKSxudW1lcmljOiEwLGNlbGw6bj0+bi5ydW5fY291bnQ9PT1udWxsPyLigJQiOm4ucnVuX2NvdW50LHNvcnRWYWx1ZTpuPT5uLnJ1bl9jb3VudH0se2lkOiJhc19vZiIsaGVhZGVyOnQoImhlYWx0aC5jb2wuYXNfb2YiKSxjZWxsOm49PmUuanN4KEkse3ZhbHVlOm4uYXNfb2YscHJlZml4OiJjb21tb24uYXNfb2YifSksc29ydFZhbHVlOm49Pm4uYXNfb2Z9XSxpPXEocy5kYXRhLmFjY291bnRzLGEuY29uZmlnKS5zb3J0KChuLHIpPT5hLnBsYXRmb3JtKG4ucGxhdGZvcm0pLmxvY2FsZUNvbXBhcmUoYS5wbGF0Zm9ybShyLnBsYXRmb3JtKSkpO3JldHVybiBlLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3MuZGF0YS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiJiZlLmpzeCgicCIse3JvbGU6ImFsZXJ0IixjaGlsZHJlbjp0KCJzdGF0ZS5yZWFkX2ZhaWxlZCIpfSksaS5tYXAobj0+ZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJoZWFsdGgtcGxhdGZvcm0tZ3JvdXAiLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjaGlsZHJlbjphLnBsYXRmb3JtKG4ucGxhdGZvcm0pfSksZS5qc3goTyx7Y29sdW1uczpsLHJvd3M6bi5hY2NvdW50cy5mbGF0TWFwKHI9PnIucm93cykscm93S2V5OnI9PmAke3IucGxhdGZvcm19LyR7ci5hY2NvdW50X2FsaWFzfWAsZGVmYXVsdFNvcnQ6e2NvbHVtbjoiYWNjb3VudCIsZGlyZWN0aW9uOiJhc2MifSxjYXB0aW9uOmAke3QoImhlYWx0aC5mcmVzaG5lc3NfdGl0bGUiKX0gwrcgJHthLnBsYXRmb3JtKG4ucGxhdGZvcm0pfWB9KV19LG4ucGxhdGZvcm0pKSwhaS5sZW5ndGgmJmUuanN4KEMse3RpdGxlOnQoInN0YXRlLm5vX2RhdGEiKX0pXX0pfWZ1bmN0aW9uIGNlKHtjcmVkZW50aWFsOnN9KXtjb25zdCB0PW0oKSxhPUsoKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChnLHtoZWlnaHQ6NzJ9KTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpzLnJlbG9hZH0pO2NvbnN0IGw9cy5kYXRhLGk9W3tpZDoiaWQiLGhlYWRlcjp0KCJoZWFsdGguY29sLmNyZWRlbnRpYWwiKSxjZWxsOm49PnQobi5pZD09PSJpYmtyX2ZsZXgiPyJoZWFsdGguY3JlZGVudGlhbF9pYmtyX3JlcG9ydCI6ImhlYWx0aC5jcmVkZW50aWFsX290aGVyIil9LHtpZDoicGhhc2UiLGhlYWRlcjp0KCJoZWFsdGguY29sLnBoYXNlIiksY2VsbDpuPT5lLmpzeChULHt0b25lOnJlW24ucGhhc2VdLGNoaWxkcmVuOnQoYGhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLiR7bi5waGFzZX1gKX0pfSx7aWQ6ImV4cGlyZXMiLGhlYWRlcjp0KCJoZWFsdGguY29sLmV4cGlyZXMiKSxjZWxsOm49PntpZighbi5leHBpcmVzX2F0KXJldHVybiLigJQiO2NvbnN0e3RleHQ6cix6b25lOmR9PXcobi5leHBpcmVzX2F0LGEsITApO3JldHVybiB0KCJoZWFsdGguY3JlZGVudGlhbF9leHBpcmVzIix7dmFsdWU6ZD9gJHtyfSAoJHtkfSlgOnJ9KX0sc29ydFZhbHVlOm49Pm4uZXhwaXJlc19hdH1dO3JldHVybiBlLmpzeChPLHtjb2x1bW5zOmkscm93czpbbF0scm93S2V5Om49Pm4uaWQsY2FwdGlvbjp0KCJoZWFsdGguY3JlZGVudGlhbHNfdGl0bGUiKX0pfWZ1bmN0aW9uIGRlKHtlcG9jaDpzfSl7Y29uc3QgdD1tKCksYT1LKCksbD0kKCgpPT5KKCksW3NdKTtpZihsLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChnLHtoZWlnaHQ6NzJ9KTtpZihsLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpsLnJlbG9hZH0pO2NvbnN0IGk9bC5kYXRhO2lmKGkuc3RhdHVzPT09Im5vdF9jb25uZWN0ZWQiKXJldHVybiBlLmpzeChDLHt0aXRsZTp0KCJoZWFsdGgubm90aWZpY2F0aW9uc19ub3RfY29ubmVjdGVkIiksYWN0aW9uOmUuanN4KEwse3N0YXR1czoibm90X2Nvbm5lY3RlZCJ9KX0pO2lmKGkuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYix7b25SZXRyeTpsLnJlbG9hZH0pO2lmKCFpLml0ZW1zLmxlbmd0aClyZXR1cm4gZS5qc3goQyx7dGl0bGU6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbnNfZW1wdHkiKSxib2R5OnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3Njb3BlIil9KTtjb25zdCBuPVt7aWQ6ImRhdGUiLGhlYWRlcjp0KCJoZWFsdGgubm90aWZpY2F0aW9uX2J1c2luZXNzX2RheSIpLGNlbGw6cj0+ci5idXNpbmVzc19kYXl8fCLigJQiLHNvcnRWYWx1ZTpyPT5yLmJ1c2luZXNzX2RheX0se2lkOiJzdGF0dXMiLGhlYWRlcjp0KCJjb21tb24uc3RhdHVzIiksY2VsbDpyPT5lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W3QoYGhlYWx0aC5ub3RpZmljYXRpb24uJHtyLnN0YXR1c31gKSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46WyIgwrcgIix0KCJoZWFsdGgubm90aWZpY2F0aW9uX2RlbGl2ZXJlZCIpLCI6ICIsdChyLmRlbGl2ZXJlZD09PW51bGw/InN0YXRlLnVua25vd24iOnIuZGVsaXZlcmVkPyJoZWFsdGgubm90aWZpY2F0aW9uX3llcyI6ImhlYWx0aC5ub3RpZmljYXRpb25fbm8iKV19KSxyLmRyeV9ydW49PT0hMCYmZS5qc3hzKCJzcGFuIix7Y2hpbGRyZW46WyIgwrcgIix0KCJoZWFsdGgubm90aWZpY2F0aW9uLmRyeV9ydW4iKV19KSxyLnRlc3RfbWVzc2FnZT09PSEwJiZlLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbIiDCtyAiLHQoImhlYWx0aC5ub3RpZmljYXRpb24udGVzdF9tZXNzYWdlIildfSksci5yZWFzb25fY29kZSYmZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46dChgaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uJHtyLnJlYXNvbl9jb2RlfWApfSldfSl9LHtpZDoic2VudCIsaGVhZGVyOnQoImhlYWx0aC5ub3RpZmljYXRpb25fc2VudF9hdCIpLGNlbGw6cj0+dyhyLnNlbnRfYXQsYSkudGV4dH0se2lkOiJ3b3JrZmxvd190aW1lIixoZWFkZXI6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl93b3JrZmxvd190aW1lIiksY2VsbDpyPT53KHIud29ya2Zsb3dfdXBkYXRlZF9hdCxhKS50ZXh0LHNvcnRWYWx1ZTpyPT5yLndvcmtmbG93X3VwZGF0ZWRfYXR9LHtpZDoic291cmNlIixoZWFkZXI6dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl9zb3VyY2UiKSxjZWxsOnI9PmUuanN4KCJhIix7aHJlZjpyLnNvdXJjZV91cmwsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9yZWZlcnJlciIsY2hpbGRyZW46dCgiaGVhbHRoLm5vdGlmaWNhdGlvbl9ydW4iLHtpZDpyLnNvdXJjZV9ydW5faWQsYXR0ZW1wdDpyLnNvdXJjZV9ydW5fYXR0ZW1wdH0pfSl9XTtyZXR1cm4gZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjp0KCJoZWFsdGgubm90aWZpY2F0aW9uc19zY29wZSIpfSksaS5zdGF0dXM9PT0icGFydGlhbCImJmUuanN4KCJwIix7cm9sZToiYWxlcnQiLGNoaWxkcmVuOnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3BhcnRpYWwiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzY3JvbGwtaGludCIsY2hpbGRyZW46dCgiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Iil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtbm90aWZpY2F0aW9ucyIsY2hpbGRyZW46ZS5qc3goTyx7Y29sdW1uczpuLHJvd3M6aS5pdGVtcyxyb3dLZXk6cj0+ci5pZCxjYXB0aW9uOnQoImhlYWx0aC5ub3RpZmljYXRpb25zX3RpdGxlIil9KX0pXX0pfWZ1bmN0aW9uIG1lKCl7Y29uc3Qgcz1tKCksW3QsYV09ai51c2VTdGF0ZSgwKSxsPSQoKCk9PnooKSxbdF0pLGk9JCgoKT0+RygpLFt0XSksbj0kKCgpPT5ZKCksW3RdKSxyPSQoKCk9PlooKSxbdF0pLGQ9ai51c2VNZW1vKCgpPT5uLnBoYXNlPT09InJlYWR5IiYmci5waGFzZT09PSJyZWFkeSI/bmUobi5kYXRhLmFjY291bnRzLHIuZGF0YSk6W10sW24ucGhhc2Usbi5kYXRhLHIucGhhc2Usci5kYXRhXSk7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlIixjaGlsZHJlbjpbZS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyIixjaGlsZHJlbjpbZS5qc3goImgxIix7Y2xhc3NOYW1lOiJwYWdlLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGgudGl0bGUiKX0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgaGVhbHRoLXJlZnJlc2giLG9uQ2xpY2s6KCk9PmEoaD0+aCsxKSxjaGlsZHJlbjpzKCJjb21tb24ucmVmcmVzaCIpfSldfSksZS5qc3goaWUse3N1bW1hcnk6bCxjcmVkZW50aWFsOml9KSxlLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOnMoImhlYWx0aC5ncmlkX3RpdGxlIil9KSwobi5waGFzZT09PSJsb2FkaW5nInx8ci5waGFzZT09PSJsb2FkaW5nIikmJmUuanN4KGcse2hlaWdodDoxNjB9KSxuLnBoYXNlPT09ImVycm9yIiYmZS5qc3goYix7b25SZXRyeTpuLnJlbG9hZH0pLHIucGhhc2U9PT0iZXJyb3IiJiZlLmpzeChiLHtvblJldHJ5OnIucmVsb2FkfSksbi5waGFzZT09PSJyZWFkeSImJnIucGhhc2U9PT0icmVhZHkiJiZlLmpzeCh0ZSx7YWNjb3VudHM6ZCxlcG9jaDp0fSldfSksZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGguZnJlc2huZXNzX3RpdGxlIil9KSxlLmpzeCgicCIse2NsYXNzTmFtZToic2Nyb2xsLWhpbnQiLGNoaWxkcmVuOnMoImhlYWx0aC50YWJsZV9zY3JvbGxfaGludCIpfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiaGVhbHRoLWZyZXNobmVzcyIsY2hpbGRyZW46ZS5qc3gob2Use3N1bW1hcnk6bH0pfSldfSksZS5qc3hzKCJzZWN0aW9uIix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpzKCJoZWFsdGguY3JlZGVudGlhbHNfdGl0bGUiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzY3JvbGwtaGludCIsY2hpbGRyZW46cygiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Iil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJoZWFsdGgtY3JlZGVudGlhbHMiLGNoaWxkcmVuOmUuanN4KGNlLHtjcmVkZW50aWFsOml9KX0pXX0pLGUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46cygiaGVhbHRoLm5vdGlmaWNhdGlvbnNfdGl0bGUiKX0pLGUuanN4KGRlLHtlcG9jaDp0fSldfSldfSl9ZXhwb3J0e21lIGFzIGRlZmF1bHR9Owo=" }, "/v2/assets/HealthPage-zYBCJV4Y.css": { contentType: "text/css; charset=utf-8", base64: "LmhlYWx0aC1yZWZyZXNoe21hcmdpbi1sZWZ0OmF1dG99LmhlYWx0aC1ncmlkIC5za2VsZXRvbnttYXJnaW46MCBhdXRvfS5oZWFsdGgtZ3JpZCBidXR0b24uaGVhbHRoLWNlbGx7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO2ZvbnQ6aW5oZXJpdH0uaGVhbHRoLWNlbGwuc2VsZWN0ZWR7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoxcHh9LmhlYWx0aC1ncmlkLW5vdGV7bWFyZ2luOjEwcHggMCAwO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXN0YXR1cy1lcnJvcil9LmhlYWx0aC1kYXktZGV0YWlse21hcmdpbi10b3A6MTJweDtwYWRkaW5nOjEycHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tKTtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtmb250LXNpemU6MTNweH0uaGVhbHRoLWRheS1kZXRhaWwtaGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5oZWFsdGgtZGF5LWRldGFpbC1tZXRhe2Rpc3BsYXk6ZmxleDtnYXA6MTZweDtmbGV4LXdyYXA6d3JhcDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHh9LmhlYWx0aC1kYXktcnVuc3ttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweH0uaGVhbHRoLWRheS1ydW5zIGxpe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXB9LmhlYWx0aC1kYXktcnVucyAubnVte2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uaGVhbHRoLWNlbGwudW5rbm93biwuaGVhbHRoLWNlbGwuaW5jb21wbGV0ZSwuaGVhbHRoLWNlbGwuc3RhbGV7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLTIpO2NvbG9yOnZhcigtLW11dGVkKX0uaGVhbHRoLWNlbGwucmVhZC1mYWlsZWR7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLTIpO2NvbG9yOnZhcigtLXN0YXR1cy1lcnJvcil9LmhlYWx0aC1mcmVzaG5lc3MgLmRhdGEtdGFibGV7bWluLXdpZHRoOjY4MHB4fS5oZWFsdGgtY3JlZGVudGlhbHMgLmRhdGEtdGFibGV7bWluLXdpZHRoOjU4MHB4fS5oZWFsdGgtZnJlc2huZXNzIC5kYXRhLXRhYmxlIHRoLC5oZWFsdGgtZnJlc2huZXNzIC5kYXRhLXRhYmxlIHRkLC5oZWFsdGgtY3JlZGVudGlhbHMgLmRhdGEtdGFibGUgdGgsLmhlYWx0aC1jcmVkZW50aWFscyAuZGF0YS10YWJsZSB0ZHt3aGl0ZS1zcGFjZTpub3dyYXB9LmhlYWx0aC1ncmlkIHRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXItc3BhY2luZzowfS5oZWFsdGgtZ3JpZCB0cj50aDpmaXJzdC1jaGlsZHtwb3NpdGlvbjpzdGlja3k7bGVmdDowO3otaW5kZXg6MjtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO21pbi13aWR0aDoxNDBweDttYXgtd2lkdGg6MTgwcHg7d2hpdGUtc3BhY2U6bm9ybWFsO3RleHQtYWxpZ246bGVmdDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWxpbmUpfS5oZWFsdGgtZ3JpZCB0Ym9keSB0aCwuaGVhbHRoLWdyaWQgdGJvZHkgdGR7dmVydGljYWwtYWxpZ246bWlkZGxlfS5oZWFsdGgtZ3JpZCBidXR0b24uaGVhbHRoLWNlbGx7d2lkdGg6MzJweDtoZWlnaHQ6MzJweH0uc2Nyb2xsLWhpbnR7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zY3JvbGwtaGludHtkaXNwbGF5OmJsb2NrO21hcmdpbjo4cHggMDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHh9fS5oZWFsdGgtY2VsbC5ibG9ja2Vke2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tc3RhdHVzLXdhcm4pIDIwJSx0cmFuc3BhcmVudCk7Y29sb3I6dmFyKC0tc3RhdHVzLXdhcm4pfS5oZWFsdGgtc3RhdGUtY291bnRze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtnYXA6OHB4IDIwcHg7cGFkZGluZzowO2xpc3Qtc3R5bGU6bm9uZTtmb250LXNpemU6MTNweH0uaGVhbHRoLXBsYXRmb3JtLWdyb3VwKy5oZWFsdGgtcGxhdGZvcm0tZ3JvdXB7bWFyZ2luLXRvcDoyMHB4fS5oZWFsdGgtcGxhdGZvcm0tZ3JvdXAgaDN7bWFyZ2luOjAgMCA4cHg7Zm9udC1zaXplOjE0cHh9LmhlYWx0aC1ub3RpZmljYXRpb25zIC5kYXRhLXRhYmxle21pbi13aWR0aDo3NjBweH0uaGVhbHRoLW5vdGlmaWNhdGlvbnMgdGgsLmhlYWx0aC1ub3RpZmljYXRpb25zIHRke3doaXRlLXNwYWNlOm5vd3JhcH0K" }, - "/v2/assets/InboxReadFailed-Be05A5m5.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e04gYXMgeCxPIGFzIGQsdSBhcyBoLGsgYXMgYixqIGFzIGUsSyBhcyBmfWZyb20iLi9pbmRleC1KNWZxejVodi5qcyI7Y29uc3QgbD1uZXcgU2V0KFsicXVvdGFfZXhoYXVzdGVkIiwidW5hdXRob3JpemVkIiwiaW5kZXhfbWlzc2luZyIsImluZGV4X2luY29tcGxldGUiLCJpbmRleF91bmF2YWlsYWJsZSIsInVua25vd24iXSk7ZnVuY3Rpb24gXyh0LGkpe2lmKGkgaW5zdGFuY2VvZiB4KXJldHVybiJ1bmF1dGhvcml6ZWQiO2lmKGkgaW5zdGFuY2VvZiBkKXtjb25zdCByPWkucGF5bG9hZD8uZXJyb3Jfc3RhdGU7aWYociYmbC5oYXMocikpcmV0dXJuIHJ9cmV0dXJuIHQ/LmVycm9yX3N0YXRlJiZsLmhhcyh0LmVycm9yX3N0YXRlKT90LmVycm9yX3N0YXRlOiJ1bmtub3duIn1mdW5jdGlvbiBwKHtkYXRhOnQsZXJyb3I6aSxvblJldHJ5OnJ9KXtjb25zdCBuPWgoKSxjPWIoKSxvPV8odCxpKSx1PXQ/LnNvdXJjZXMuZmlsdGVyKHM9PnMuc3RhdHVzPT09InJlYWRfZmFpbGVkIil8fFtdLGE9dD8uZGlyZWN0b3J5Py5jb21wbGV0ZT09PSExP3QuZGlyZWN0b3J5LnJldHJ5X2F0Om51bGw7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1zdGF0ZSIscm9sZToiYWxlcnQiLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci10aXRsZSIsY2hpbGRyZW46bihgaW5ib3guZXJyb3IuJHtvfS50aXRsZWApfSksZS5qc3goInAiLHtjaGlsZHJlbjpuKGBpbmJveC5lcnJvci4ke299LmRldGFpbGApfSksdS5sZW5ndGg+MCYmZS5qc3goInVsIix7c3R5bGU6e3RleHRBbGlnbjoibGVmdCJ9LGNoaWxkcmVuOnUubWFwKHM9PmUuanN4cygibGkiLHtjaGlsZHJlbjpbbihgZGVjaXNpb25zLnNvdXJjZS4ke3Muc291cmNlfWApLCI6ICIsbihgaW5ib3guZXJyb3IuJHtzLmVycm9yX3N0YXRlfHwidW5rbm93biJ9LnRpdGxlYCldfSxzLnNvdXJjZSkpfSksYSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGEpJiZhPjAmJmUuanN4KCJwIix7Y2hpbGRyZW46bigiaW5ib3gucmV0cnlfYXQiLHt2YWx1ZTpmKG5ldyBEYXRlKGEpLnRvSVNPU3RyaW5nKCksYykudGV4dH0pfSksZS5qc3goInAiLHtjaGlsZHJlbjpuKCJpbmJveC5jb3VudF91bmtub3duIil9KSxlLmpzeCgicCIse2NoaWxkcmVuOm4obz09PSJ1bmF1dGhvcml6ZWQiPyJpbmJveC5hdXRoX2hpbnQiOiJpbmJveC5yZXRyeV9oaW50Iil9KSxyJiZvIT09InVuYXV0aG9yaXplZCImJmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLG9uQ2xpY2s6cixjaGlsZHJlbjpuKCJpbmJveC5yZXRyeSIpfSldfSl9ZXhwb3J0e3AgYXMgSSxfIGFzIGl9Owo=" }, - "/v2/assets/KpiCard-0WUNuXgv.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgc31mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2Z1bmN0aW9uIHAoe3RpdGxlOnIsdmFsdWU6YyxzdWI6YSxmb290ZXI6bixvbkNsaWNrOmV9KXtjb25zdCBpPXMuanN4cyhzLkZyYWdtZW50LHtjaGlsZHJlbjpbcy5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS10aXRsZSIsY2hpbGRyZW46cn0pLHMuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktdmFsdWUgbnVtIixjaGlsZHJlbjpjfSksYSYmcy5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOmF9KSxuJiZzLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLWZvb3QiLGNoaWxkcmVuOm59KV19KTtyZXR1cm4gZT9zLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImtwaS1jYXJkIixvbkNsaWNrOmUsY2hpbGRyZW46aX0pOnMuanN4KCJkaXYiLHtjbGFzc05hbWU6ImtwaS1jYXJkIixjaGlsZHJlbjppfSl9ZXhwb3J0e3AgYXMgS307Cg==" }, - "/v2/assets/LineChart-7Sj_w0kD.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgTCxqIGFzIHQsTSBhcyBXLFMgYXMgSCxBIGFzIEUsayBhcyBJLHIgYXMgaCx4IGFzIEF9ZnJvbSIuL2luZGV4LUo1ZnF6NWh2LmpzIjtmdW5jdGlvbiBLKHtjb3VudHM6YX0pe2NvbnN0IHI9TCgpO3JldHVybiBhP3QuanN4KCJzcGFuIix7dGl0bGU6cigicGVyZi5mcmVzaG5lc3NfdGhyZXNob2xkIix7aG91cnM6YS50aHJlc2hvbGRfaG91cnN9KSxjaGlsZHJlbjpyKCJwZXJmLmZyZXNobmVzc19jb3VudHMiLHtmcmVzaDphLmZyZXNoLHN0YWxlOmEuc3RhbGUsdW5rbm93bjphLnVua25vd259KX0pOm51bGx9ZnVuY3Rpb24gTyh7dG90YWxzOmF9KXtjb25zdCByPUwoKTtyZXR1cm4gdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImN1cnJlbmN5LXRvdGFscyIsY2hpbGRyZW46YS5tYXAobj0+dC5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJjdXJyZW5jeS10b3RhbCIsY2hpbGRyZW46W3QuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjpyKG4uc3RhdHVzPT09InBhcnRpYWwiPyJwZXJmLmN1cnJlbmN5X3N1YnRvdGFsIjoicGVyZi5jdXJyZW5jeV90b3RhbCIse2N1cnJlbmN5Om4uY3VycmVuY3l9KX0pLHQuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOm4udG90YWw9PT1udWxsPyLigJQiOnQuanN4KFcse3ZhbHVlOm4udG90YWwsY3VycmVuY3k6bi5jdXJyZW5jeX0pfSksdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOnIoInBlcmYuY3VycmVuY3lfYWNjb3VudHMiLHtjb3VudDpuLmFjY291bnRfY291bnQsZXhwZWN0ZWQ6bi5leHBlY3RlZF9hY2NvdW50X2NvdW50fSl9KSwhIW4uZXhjbHVkZWRfYWNjb3VudF9jb3VudCYmdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOnIoInBlcmYuY3VycmVuY3lfZXhjbHVkZWRfYWNjb3VudHMiLHtjb3VudDpuLmV4Y2x1ZGVkX2FjY291bnRfY291bnR9KX0pLHQuanN4cygic3BhbiIse2NsYXNzTmFtZToia3BpLWZvb3QiLGNoaWxkcmVuOlt0LmpzeChILHtzdGF0dXM6bi5zdGF0dXN9KSx0LmpzeChFLHt2YWx1ZTpuLmFzX29mfSldfSksbi51bmF2YWlsYWJsZV9yZWFzb24mJnQuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjpyKGByZWFzb24uJHtuLnVuYXZhaWxhYmxlX3JlYXNvbn1gKX0pXX0sbi5jdXJyZW5jeSkpfSl9ZnVuY3Rpb24gWChhKXtyZXR1cm4gYT09PSJvayJ8fGE9PT0icGFydGlhbCJ8fGE9PT0ic3RhbGUifWZ1bmN0aW9uIFAoYSl7Y29uc3Qgcj1bXTtsZXQgbj1udWxsLHg9ITA7Zm9yKGNvbnN0IGYgb2YgYSl7Y29uc3QgZz1OdW1iZXIuaXNGaW5pdGUoZi52YWx1ZSkmJmYudmFsdWU+PS0xMDAsZD1nJiZuIT09bnVsbCYmbj4tMTAwJiYhZi5icmVha0JlZm9yZT8oKDErZi52YWx1ZS8xMDApLygxK24vMTAwKS0xKSoxMDA6TmFOO051bWJlci5pc0Zpbml0ZShkKT8oci5wdXNoKHtkYXRlOmYuZGF0ZSx2YWx1ZTpkLGJyZWFrQmVmb3JlOnh9KSx4PSExKTp4PSEwLG49Zz9mLnZhbHVlOm51bGx9cmV0dXJuIHJ9Y29uc3QgcD04MDAsTj0yODAsYz17dG9wOjEyLHJpZ2h0OjEyLGJvdHRvbToyNCxsZWZ0OjQ4fTtmdW5jdGlvbiB6KGEpe2xldCByPSIiO2Zvcihjb25zdCBuIG9mIGEpcis9YCR7bi5icmVha0JlZm9yZXx8cj09PSIiPyJNIjoiTCJ9JHtuLngudG9GaXhlZCgyKX0sJHtuLnkudG9GaXhlZCgyKX1gO3JldHVybiByfWZ1bmN0aW9uIHEoe3NlcmllczphLG1vZGU6cj0iY3VtdWxhdGl2ZSIsYXJpYUxhYmVsOm59KXtjb25zdCB4PUkoKSxbZixnXT1oLnVzZVN0YXRlKCgpPT5uZXcgU2V0KGEuZmlsdGVyKGU9PiFlLnByaW1hcnkpLm1hcChlPT5lLmlkKSkpLFtkLG1dPWgudXNlU3RhdGUobnVsbCksQj1oLnVzZVJlZihudWxsKSx1PWgudXNlTWVtbygoKT0+e2NvbnN0IGU9Wy4uLm5ldyBTZXQoYS5mbGF0TWFwKGw9PmwucG9pbnRzLm1hcChpPT5pLmRhdGUpKSldLnNvcnQoKSxzPW5ldyBNYXAoZS5tYXAoKGwsaSk9PltsLGldKSksbz1hLm1hcChsPT57bGV0IGk9bnVsbDtjb25zdCB3PWwucG9pbnRzLm1hcChTPT57bGV0IE09Uy52YWx1ZTtyZXR1cm4gcj09PSJjdW11bGF0aXZlIiYmKGk9PT1udWxsJiYoaT1NKSxNPU0taSkse2RhdGU6Uy5kYXRlLHZhbHVlOk0sYnJlYWtCZWZvcmU6Uy5icmVha0JlZm9yZX19KTtyZXR1cm4gcj09PSJkYWlseSI/ey4uLmwscG9pbnRzOlAobC5wb2ludHMpfTp7Li4ubCxwb2ludHM6d319KTtyZXR1cm57ZGF0ZXM6ZSxpbmRleDpzLHNlcmllczpvfX0sW2Escl0pLGs9dS5zZXJpZXMuZmlsdGVyKGU9PiFmLmhhcyhlLmlkKSYmZS5wb2ludHMubGVuZ3RoPjApLHt5TWluOnYseU1heDpffT1oLnVzZU1lbW8oKCk9PntsZXQgZT0wLHM9MDtmb3IoY29uc3QgbCBvZiBrKWZvcihjb25zdCBpIG9mIGwucG9pbnRzKWkudmFsdWU8ZSYmKGU9aS52YWx1ZSksaS52YWx1ZT5zJiYocz1pLnZhbHVlKTtlPT09cyYmKHM9ZSsxKTtjb25zdCBvPShzLWUpKi4wODtyZXR1cm57eU1pbjplLW8seU1heDpzK299fSxba10pLGo9ZT0+Yy5sZWZ0Kyh1LmRhdGVzLmxlbmd0aDw9MT8wOmUvKHUuZGF0ZXMubGVuZ3RoLTEpKihwLWMubGVmdC1jLnJpZ2h0KSkseT1lPT5jLnRvcCsoMS0oZS12KS8oXy12KSkqKE4tYy50b3AtYy5ib3R0b20pLEY9KGUscyk9PmUucG9pbnRzLmZpbmQobz0+by5kYXRlPT09cyk/LnZhbHVlPz9udWxsLEM9ZT0+e2NvbnN0IHM9Qi5jdXJyZW50O2lmKCFzfHx1LmRhdGVzLmxlbmd0aD09PTApcmV0dXJuO2NvbnN0IG89cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPShlLW8ubGVmdCkvby53aWR0aCpwLHc9TWF0aC5yb3VuZCgoaS1jLmxlZnQpLyhwLWMubGVmdC1jLnJpZ2h0KSoodS5kYXRlcy5sZW5ndGgtMSkpO20oTWF0aC5tYXgoMCxNYXRoLm1pbih1LmRhdGVzLmxlbmd0aC0xLHcpKSl9LFI9ZT0+e2lmKHUuZGF0ZXMubGVuZ3RoIT09MCYmKGUua2V5PT09IkFycm93TGVmdCJ8fGUua2V5PT09IkFycm93UmlnaHQiKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9ZS5rZXk9PT0iQXJyb3dSaWdodCI/MTotMTttKG89Pk1hdGgubWF4KDAsTWF0aC5taW4odS5kYXRlcy5sZW5ndGgtMSwobz8/MCkrcykpKX19LCQ9aC51c2VNZW1vKCgpPT57Y29uc3QgZT1bXTtmb3IobGV0IHM9MDtzPD00O3MrKyllLnB1c2godisoXy12KSpzLzQpO3JldHVybiBlfSxbdixfXSksRD1oLnVzZU1lbW8oKCk9Pntjb25zdCBlPXUuZGF0ZXMubGVuZ3RoO2lmKGU9PT0wKXJldHVybltdO2NvbnN0IHM9WzAsTWF0aC5mbG9vcihlKi4yNSksTWF0aC5mbG9vcihlKi41KSxNYXRoLmZsb29yKGUqLjc1KSxlLTFdO3JldHVyblsuLi5uZXcgU2V0KHMpXS5tYXAobz0+KHtpOm8sZGF0ZTp1LmRhdGVzW29dfSkpfSxbdS5kYXRlc10pLGI9ZCE9PW51bGw/dS5kYXRlc1tkXTpudWxsLFQ9ZCE9PW51bGw/aihkKS9wKjEwMDowO3JldHVybiB0LmpzeHMoImRpdiIse2NoaWxkcmVuOlt0LmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2hhcnQtZnJhbWUiLHJlZjpCLGNoaWxkcmVuOlt0LmpzeHMoInN2ZyIse2NsYXNzTmFtZToiY2hhcnQiLHZpZXdCb3g6YDAgMCAke3B9ICR7Tn1gLHJvbGU6ImltZyIsImFyaWEtbGFiZWwiOm4sdGFiSW5kZXg6MCxvbktleURvd246Uixvbk1vdXNlTW92ZTplPT5DKGUuY2xpZW50WCksb25Nb3VzZUxlYXZlOigpPT5tKG51bGwpLG9uRm9jdXM6KCk9Pm0oZT0+ZT8/MCksb25CbHVyOigpPT5tKG51bGwpLGNoaWxkcmVuOlskLm1hcCgoZSxzKT0+dC5qc3hzKCJnIix7Y2hpbGRyZW46W3QuanN4KCJsaW5lIix7eDE6Yy5sZWZ0LHgyOnAtYy5yaWdodCx5MTp5KGUpLHkyOnkoZSksc3Ryb2tlOiJ2YXIoLS1saW5lKSIsc3Ryb2tlV2lkdGg6IjEifSksdC5qc3goInRleHQiLHt4OmMubGVmdC02LHk6eShlKSs0LHRleHRBbmNob3I6ImVuZCIsZm9udFNpemU6IjExIixmaWxsOiJ2YXIoLS1tdXRlZCkiLGNoaWxkcmVuOkEoZSx4LDEpfSldfSxzKSksdC5qc3goImxpbmUiLHt4MTpjLmxlZnQseDI6cC1jLnJpZ2h0LHkxOnkoMCkseTI6eSgwKSxzdHJva2U6InZhcigtLW11dGVkKSIsc3Ryb2tlV2lkdGg6IjEiLHN0cm9rZURhc2hhcnJheToiMyAzIn0pLEQubWFwKGU9PnQuanN4KCJ0ZXh0Iix7eDpqKGUuaSkseTpOLTYsdGV4dEFuY2hvcjoibWlkZGxlIixmb250U2l6ZToiMTEiLGZpbGw6InZhcigtLW11dGVkKSIsY2hpbGRyZW46ZS5kYXRlLnNsaWNlKDUpfSxlLmkpKSxrLm1hcChlPT50LmpzeCgicGF0aCIse2Q6eihlLnBvaW50cy5tYXAocz0+KHt4OmoodS5pbmRleC5nZXQocy5kYXRlKSkseTp5KHMudmFsdWUpLGJyZWFrQmVmb3JlOnMuYnJlYWtCZWZvcmV9KSkpLGZpbGw6Im5vbmUiLHN0cm9rZTplLmNvbG9yLHN0cm9rZVdpZHRoOmUucHJpbWFyeT8yLjU6MS40LHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3Ryb2tlTGluZWNhcDoicm91bmQifSxlLmlkKSksZCE9PW51bGwmJnQuanN4KCJsaW5lIix7eDE6aihkKSx4MjpqKGQpLHkxOmMudG9wLHkyOk4tYy5ib3R0b20sc3Ryb2tlOiJ2YXIoLS1tdXRlZCkiLHN0cm9rZVdpZHRoOiIxIn0pXX0pLGQhPT1udWxsJiZiJiZ0LmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2hhcnQtdG9vbHRpcCIsc3R5bGU6e2xlZnQ6YCR7TWF0aC5taW4oTWF0aC5tYXgoVCw4KSw4OCl9JWAsdG9wOjh9LGNoaWxkcmVuOlt0LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0b29sdGlwLWRhdGUiLGNoaWxkcmVuOmJ9KSxrLm1hcChlPT50LmpzeHMoImRpdiIse2NsYXNzTmFtZToidG9vbHRpcC1yb3ciLGNoaWxkcmVuOlt0LmpzeCgic3BhbiIse2NsYXNzTmFtZToibGVnZW5kLXN3YXRjaCIsc3R5bGU6e2JhY2tncm91bmQ6ZS5jb2xvcn19KSx0LmpzeCgic3BhbiIse2NoaWxkcmVuOmUubGFiZWx9KSx0LmpzeCgic3Ryb25nIix7Y2hpbGRyZW46RihlLGIpPT09bnVsbD8i4oCUIjpBKEYoZSxiKSx4KX0pXX0sZS5pZCkpXX0pXX0pLHQuanN4KCJkaXYiLHtjbGFzc05hbWU6ImNoYXJ0LWxlZ2VuZCIsY2hpbGRyZW46dS5zZXJpZXMubWFwKGU9Pntjb25zdCBzPWYuaGFzKGUuaWQpO3JldHVybiB0LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOnM/Im9mZiI6IiIsImFyaWEtcHJlc3NlZCI6IXMsb25DbGljazooKT0+ZyhvPT57Y29uc3QgbD1uZXcgU2V0KG8pO3JldHVybiBsLmhhcyhlLmlkKT9sLmRlbGV0ZShlLmlkKTpsLmFkZChlLmlkKSxsfSksY2hpbGRyZW46W3QuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJsZWdlbmQtc3dhdGNoIixzdHlsZTp7YmFja2dyb3VuZDplLmNvbG9yfX0pLGUubGFiZWxdfSxlLmlkKX0pfSldfSl9ZXhwb3J0e08gYXMgQyxLIGFzIEYscSBhcyBMLFggYXMgcn07Cg==" }, + "/v2/assets/InboxReadFailed-D2CO_rsS.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e04gYXMgeCxPIGFzIGQsdSBhcyBoLGsgYXMgYixqIGFzIGUsSyBhcyBmfWZyb20iLi9pbmRleC1DWTZpR1BPWC5qcyI7Y29uc3QgbD1uZXcgU2V0KFsicXVvdGFfZXhoYXVzdGVkIiwidW5hdXRob3JpemVkIiwiaW5kZXhfbWlzc2luZyIsImluZGV4X2luY29tcGxldGUiLCJpbmRleF91bmF2YWlsYWJsZSIsInVua25vd24iXSk7ZnVuY3Rpb24gXyh0LGkpe2lmKGkgaW5zdGFuY2VvZiB4KXJldHVybiJ1bmF1dGhvcml6ZWQiO2lmKGkgaW5zdGFuY2VvZiBkKXtjb25zdCByPWkucGF5bG9hZD8uZXJyb3Jfc3RhdGU7aWYociYmbC5oYXMocikpcmV0dXJuIHJ9cmV0dXJuIHQ/LmVycm9yX3N0YXRlJiZsLmhhcyh0LmVycm9yX3N0YXRlKT90LmVycm9yX3N0YXRlOiJ1bmtub3duIn1mdW5jdGlvbiBwKHtkYXRhOnQsZXJyb3I6aSxvblJldHJ5OnJ9KXtjb25zdCBuPWgoKSxjPWIoKSxvPV8odCxpKSx1PXQ/LnNvdXJjZXMuZmlsdGVyKHM9PnMuc3RhdHVzPT09InJlYWRfZmFpbGVkIil8fFtdLGE9dD8uZGlyZWN0b3J5Py5jb21wbGV0ZT09PSExP3QuZGlyZWN0b3J5LnJldHJ5X2F0Om51bGw7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci1zdGF0ZSIscm9sZToiYWxlcnQiLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJlcnJvci10aXRsZSIsY2hpbGRyZW46bihgaW5ib3guZXJyb3IuJHtvfS50aXRsZWApfSksZS5qc3goInAiLHtjaGlsZHJlbjpuKGBpbmJveC5lcnJvci4ke299LmRldGFpbGApfSksdS5sZW5ndGg+MCYmZS5qc3goInVsIix7c3R5bGU6e3RleHRBbGlnbjoibGVmdCJ9LGNoaWxkcmVuOnUubWFwKHM9PmUuanN4cygibGkiLHtjaGlsZHJlbjpbbihgZGVjaXNpb25zLnNvdXJjZS4ke3Muc291cmNlfWApLCI6ICIsbihgaW5ib3guZXJyb3IuJHtzLmVycm9yX3N0YXRlfHwidW5rbm93biJ9LnRpdGxlYCldfSxzLnNvdXJjZSkpfSksYSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGEpJiZhPjAmJmUuanN4KCJwIix7Y2hpbGRyZW46bigiaW5ib3gucmV0cnlfYXQiLHt2YWx1ZTpmKG5ldyBEYXRlKGEpLnRvSVNPU3RyaW5nKCksYykudGV4dH0pfSksZS5qc3goInAiLHtjaGlsZHJlbjpuKCJpbmJveC5jb3VudF91bmtub3duIil9KSxlLmpzeCgicCIse2NoaWxkcmVuOm4obz09PSJ1bmF1dGhvcml6ZWQiPyJpbmJveC5hdXRoX2hpbnQiOiJpbmJveC5yZXRyeV9oaW50Iil9KSxyJiZvIT09InVuYXV0aG9yaXplZCImJmUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLG9uQ2xpY2s6cixjaGlsZHJlbjpuKCJpbmJveC5yZXRyeSIpfSldfSl9ZXhwb3J0e3AgYXMgSSxfIGFzIGl9Owo=" }, + "/v2/assets/KpiCard-CRSjd_3k.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgc31mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2Z1bmN0aW9uIHAoe3RpdGxlOnIsdmFsdWU6YyxzdWI6YSxmb290ZXI6bixvbkNsaWNrOmV9KXtjb25zdCBpPXMuanN4cyhzLkZyYWdtZW50LHtjaGlsZHJlbjpbcy5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS10aXRsZSIsY2hpbGRyZW46cn0pLHMuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktdmFsdWUgbnVtIixjaGlsZHJlbjpjfSksYSYmcy5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOmF9KSxuJiZzLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLWZvb3QiLGNoaWxkcmVuOm59KV19KTtyZXR1cm4gZT9zLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImtwaS1jYXJkIixvbkNsaWNrOmUsY2hpbGRyZW46aX0pOnMuanN4KCJkaXYiLHtjbGFzc05hbWU6ImtwaS1jYXJkIixjaGlsZHJlbjppfSl9ZXhwb3J0e3AgYXMgS307Cg==" }, + "/v2/assets/LineChart--XeG2yg5.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgTCxqIGFzIHQsTSBhcyBXLFMgYXMgSCxBIGFzIEUsayBhcyBJLHIgYXMgaCx4IGFzIEF9ZnJvbSIuL2luZGV4LUNZNmlHUE9YLmpzIjtmdW5jdGlvbiBLKHtjb3VudHM6YX0pe2NvbnN0IHI9TCgpO3JldHVybiBhP3QuanN4KCJzcGFuIix7dGl0bGU6cigicGVyZi5mcmVzaG5lc3NfdGhyZXNob2xkIix7aG91cnM6YS50aHJlc2hvbGRfaG91cnN9KSxjaGlsZHJlbjpyKCJwZXJmLmZyZXNobmVzc19jb3VudHMiLHtmcmVzaDphLmZyZXNoLHN0YWxlOmEuc3RhbGUsdW5rbm93bjphLnVua25vd259KX0pOm51bGx9ZnVuY3Rpb24gTyh7dG90YWxzOmF9KXtjb25zdCByPUwoKTtyZXR1cm4gdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImN1cnJlbmN5LXRvdGFscyIsY2hpbGRyZW46YS5tYXAobj0+dC5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJjdXJyZW5jeS10b3RhbCIsY2hpbGRyZW46W3QuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjpyKG4uc3RhdHVzPT09InBhcnRpYWwiPyJwZXJmLmN1cnJlbmN5X3N1YnRvdGFsIjoicGVyZi5jdXJyZW5jeV90b3RhbCIse2N1cnJlbmN5Om4uY3VycmVuY3l9KX0pLHQuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOm4udG90YWw9PT1udWxsPyLigJQiOnQuanN4KFcse3ZhbHVlOm4udG90YWwsY3VycmVuY3k6bi5jdXJyZW5jeX0pfSksdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOnIoInBlcmYuY3VycmVuY3lfYWNjb3VudHMiLHtjb3VudDpuLmFjY291bnRfY291bnQsZXhwZWN0ZWQ6bi5leHBlY3RlZF9hY2NvdW50X2NvdW50fSl9KSwhIW4uZXhjbHVkZWRfYWNjb3VudF9jb3VudCYmdC5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOnIoInBlcmYuY3VycmVuY3lfZXhjbHVkZWRfYWNjb3VudHMiLHtjb3VudDpuLmV4Y2x1ZGVkX2FjY291bnRfY291bnR9KX0pLHQuanN4cygic3BhbiIse2NsYXNzTmFtZToia3BpLWZvb3QiLGNoaWxkcmVuOlt0LmpzeChILHtzdGF0dXM6bi5zdGF0dXN9KSx0LmpzeChFLHt2YWx1ZTpuLmFzX29mfSldfSksbi51bmF2YWlsYWJsZV9yZWFzb24mJnQuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjpyKGByZWFzb24uJHtuLnVuYXZhaWxhYmxlX3JlYXNvbn1gKX0pXX0sbi5jdXJyZW5jeSkpfSl9ZnVuY3Rpb24gWChhKXtyZXR1cm4gYT09PSJvayJ8fGE9PT0icGFydGlhbCJ8fGE9PT0ic3RhbGUifWZ1bmN0aW9uIFAoYSl7Y29uc3Qgcj1bXTtsZXQgbj1udWxsLHg9ITA7Zm9yKGNvbnN0IGYgb2YgYSl7Y29uc3QgZz1OdW1iZXIuaXNGaW5pdGUoZi52YWx1ZSkmJmYudmFsdWU+PS0xMDAsZD1nJiZuIT09bnVsbCYmbj4tMTAwJiYhZi5icmVha0JlZm9yZT8oKDErZi52YWx1ZS8xMDApLygxK24vMTAwKS0xKSoxMDA6TmFOO051bWJlci5pc0Zpbml0ZShkKT8oci5wdXNoKHtkYXRlOmYuZGF0ZSx2YWx1ZTpkLGJyZWFrQmVmb3JlOnh9KSx4PSExKTp4PSEwLG49Zz9mLnZhbHVlOm51bGx9cmV0dXJuIHJ9Y29uc3QgcD04MDAsTj0yODAsYz17dG9wOjEyLHJpZ2h0OjEyLGJvdHRvbToyNCxsZWZ0OjQ4fTtmdW5jdGlvbiB6KGEpe2xldCByPSIiO2Zvcihjb25zdCBuIG9mIGEpcis9YCR7bi5icmVha0JlZm9yZXx8cj09PSIiPyJNIjoiTCJ9JHtuLngudG9GaXhlZCgyKX0sJHtuLnkudG9GaXhlZCgyKX1gO3JldHVybiByfWZ1bmN0aW9uIHEoe3NlcmllczphLG1vZGU6cj0iY3VtdWxhdGl2ZSIsYXJpYUxhYmVsOm59KXtjb25zdCB4PUkoKSxbZixnXT1oLnVzZVN0YXRlKCgpPT5uZXcgU2V0KGEuZmlsdGVyKGU9PiFlLnByaW1hcnkpLm1hcChlPT5lLmlkKSkpLFtkLG1dPWgudXNlU3RhdGUobnVsbCksQj1oLnVzZVJlZihudWxsKSx1PWgudXNlTWVtbygoKT0+e2NvbnN0IGU9Wy4uLm5ldyBTZXQoYS5mbGF0TWFwKGw9PmwucG9pbnRzLm1hcChpPT5pLmRhdGUpKSldLnNvcnQoKSxzPW5ldyBNYXAoZS5tYXAoKGwsaSk9PltsLGldKSksbz1hLm1hcChsPT57bGV0IGk9bnVsbDtjb25zdCB3PWwucG9pbnRzLm1hcChTPT57bGV0IE09Uy52YWx1ZTtyZXR1cm4gcj09PSJjdW11bGF0aXZlIiYmKGk9PT1udWxsJiYoaT1NKSxNPU0taSkse2RhdGU6Uy5kYXRlLHZhbHVlOk0sYnJlYWtCZWZvcmU6Uy5icmVha0JlZm9yZX19KTtyZXR1cm4gcj09PSJkYWlseSI/ey4uLmwscG9pbnRzOlAobC5wb2ludHMpfTp7Li4ubCxwb2ludHM6d319KTtyZXR1cm57ZGF0ZXM6ZSxpbmRleDpzLHNlcmllczpvfX0sW2Escl0pLGs9dS5zZXJpZXMuZmlsdGVyKGU9PiFmLmhhcyhlLmlkKSYmZS5wb2ludHMubGVuZ3RoPjApLHt5TWluOnYseU1heDpffT1oLnVzZU1lbW8oKCk9PntsZXQgZT0wLHM9MDtmb3IoY29uc3QgbCBvZiBrKWZvcihjb25zdCBpIG9mIGwucG9pbnRzKWkudmFsdWU8ZSYmKGU9aS52YWx1ZSksaS52YWx1ZT5zJiYocz1pLnZhbHVlKTtlPT09cyYmKHM9ZSsxKTtjb25zdCBvPShzLWUpKi4wODtyZXR1cm57eU1pbjplLW8seU1heDpzK299fSxba10pLGo9ZT0+Yy5sZWZ0Kyh1LmRhdGVzLmxlbmd0aDw9MT8wOmUvKHUuZGF0ZXMubGVuZ3RoLTEpKihwLWMubGVmdC1jLnJpZ2h0KSkseT1lPT5jLnRvcCsoMS0oZS12KS8oXy12KSkqKE4tYy50b3AtYy5ib3R0b20pLEY9KGUscyk9PmUucG9pbnRzLmZpbmQobz0+by5kYXRlPT09cyk/LnZhbHVlPz9udWxsLEM9ZT0+e2NvbnN0IHM9Qi5jdXJyZW50O2lmKCFzfHx1LmRhdGVzLmxlbmd0aD09PTApcmV0dXJuO2NvbnN0IG89cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPShlLW8ubGVmdCkvby53aWR0aCpwLHc9TWF0aC5yb3VuZCgoaS1jLmxlZnQpLyhwLWMubGVmdC1jLnJpZ2h0KSoodS5kYXRlcy5sZW5ndGgtMSkpO20oTWF0aC5tYXgoMCxNYXRoLm1pbih1LmRhdGVzLmxlbmd0aC0xLHcpKSl9LFI9ZT0+e2lmKHUuZGF0ZXMubGVuZ3RoIT09MCYmKGUua2V5PT09IkFycm93TGVmdCJ8fGUua2V5PT09IkFycm93UmlnaHQiKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2NvbnN0IHM9ZS5rZXk9PT0iQXJyb3dSaWdodCI/MTotMTttKG89Pk1hdGgubWF4KDAsTWF0aC5taW4odS5kYXRlcy5sZW5ndGgtMSwobz8/MCkrcykpKX19LCQ9aC51c2VNZW1vKCgpPT57Y29uc3QgZT1bXTtmb3IobGV0IHM9MDtzPD00O3MrKyllLnB1c2godisoXy12KSpzLzQpO3JldHVybiBlfSxbdixfXSksRD1oLnVzZU1lbW8oKCk9Pntjb25zdCBlPXUuZGF0ZXMubGVuZ3RoO2lmKGU9PT0wKXJldHVybltdO2NvbnN0IHM9WzAsTWF0aC5mbG9vcihlKi4yNSksTWF0aC5mbG9vcihlKi41KSxNYXRoLmZsb29yKGUqLjc1KSxlLTFdO3JldHVyblsuLi5uZXcgU2V0KHMpXS5tYXAobz0+KHtpOm8sZGF0ZTp1LmRhdGVzW29dfSkpfSxbdS5kYXRlc10pLGI9ZCE9PW51bGw/dS5kYXRlc1tkXTpudWxsLFQ9ZCE9PW51bGw/aihkKS9wKjEwMDowO3JldHVybiB0LmpzeHMoImRpdiIse2NoaWxkcmVuOlt0LmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2hhcnQtZnJhbWUiLHJlZjpCLGNoaWxkcmVuOlt0LmpzeHMoInN2ZyIse2NsYXNzTmFtZToiY2hhcnQiLHZpZXdCb3g6YDAgMCAke3B9ICR7Tn1gLHJvbGU6ImltZyIsImFyaWEtbGFiZWwiOm4sdGFiSW5kZXg6MCxvbktleURvd246Uixvbk1vdXNlTW92ZTplPT5DKGUuY2xpZW50WCksb25Nb3VzZUxlYXZlOigpPT5tKG51bGwpLG9uRm9jdXM6KCk9Pm0oZT0+ZT8/MCksb25CbHVyOigpPT5tKG51bGwpLGNoaWxkcmVuOlskLm1hcCgoZSxzKT0+dC5qc3hzKCJnIix7Y2hpbGRyZW46W3QuanN4KCJsaW5lIix7eDE6Yy5sZWZ0LHgyOnAtYy5yaWdodCx5MTp5KGUpLHkyOnkoZSksc3Ryb2tlOiJ2YXIoLS1saW5lKSIsc3Ryb2tlV2lkdGg6IjEifSksdC5qc3goInRleHQiLHt4OmMubGVmdC02LHk6eShlKSs0LHRleHRBbmNob3I6ImVuZCIsZm9udFNpemU6IjExIixmaWxsOiJ2YXIoLS1tdXRlZCkiLGNoaWxkcmVuOkEoZSx4LDEpfSldfSxzKSksdC5qc3goImxpbmUiLHt4MTpjLmxlZnQseDI6cC1jLnJpZ2h0LHkxOnkoMCkseTI6eSgwKSxzdHJva2U6InZhcigtLW11dGVkKSIsc3Ryb2tlV2lkdGg6IjEiLHN0cm9rZURhc2hhcnJheToiMyAzIn0pLEQubWFwKGU9PnQuanN4KCJ0ZXh0Iix7eDpqKGUuaSkseTpOLTYsdGV4dEFuY2hvcjoibWlkZGxlIixmb250U2l6ZToiMTEiLGZpbGw6InZhcigtLW11dGVkKSIsY2hpbGRyZW46ZS5kYXRlLnNsaWNlKDUpfSxlLmkpKSxrLm1hcChlPT50LmpzeCgicGF0aCIse2Q6eihlLnBvaW50cy5tYXAocz0+KHt4OmoodS5pbmRleC5nZXQocy5kYXRlKSkseTp5KHMudmFsdWUpLGJyZWFrQmVmb3JlOnMuYnJlYWtCZWZvcmV9KSkpLGZpbGw6Im5vbmUiLHN0cm9rZTplLmNvbG9yLHN0cm9rZVdpZHRoOmUucHJpbWFyeT8yLjU6MS40LHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3Ryb2tlTGluZWNhcDoicm91bmQifSxlLmlkKSksZCE9PW51bGwmJnQuanN4KCJsaW5lIix7eDE6aihkKSx4MjpqKGQpLHkxOmMudG9wLHkyOk4tYy5ib3R0b20sc3Ryb2tlOiJ2YXIoLS1tdXRlZCkiLHN0cm9rZVdpZHRoOiIxIn0pXX0pLGQhPT1udWxsJiZiJiZ0LmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2hhcnQtdG9vbHRpcCIsc3R5bGU6e2xlZnQ6YCR7TWF0aC5taW4oTWF0aC5tYXgoVCw4KSw4OCl9JWAsdG9wOjh9LGNoaWxkcmVuOlt0LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0b29sdGlwLWRhdGUiLGNoaWxkcmVuOmJ9KSxrLm1hcChlPT50LmpzeHMoImRpdiIse2NsYXNzTmFtZToidG9vbHRpcC1yb3ciLGNoaWxkcmVuOlt0LmpzeCgic3BhbiIse2NsYXNzTmFtZToibGVnZW5kLXN3YXRjaCIsc3R5bGU6e2JhY2tncm91bmQ6ZS5jb2xvcn19KSx0LmpzeCgic3BhbiIse2NoaWxkcmVuOmUubGFiZWx9KSx0LmpzeCgic3Ryb25nIix7Y2hpbGRyZW46RihlLGIpPT09bnVsbD8i4oCUIjpBKEYoZSxiKSx4KX0pXX0sZS5pZCkpXX0pXX0pLHQuanN4KCJkaXYiLHtjbGFzc05hbWU6ImNoYXJ0LWxlZ2VuZCIsY2hpbGRyZW46dS5zZXJpZXMubWFwKGU9Pntjb25zdCBzPWYuaGFzKGUuaWQpO3JldHVybiB0LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOnM/Im9mZiI6IiIsImFyaWEtcHJlc3NlZCI6IXMsb25DbGljazooKT0+ZyhvPT57Y29uc3QgbD1uZXcgU2V0KG8pO3JldHVybiBsLmhhcyhlLmlkKT9sLmRlbGV0ZShlLmlkKTpsLmFkZChlLmlkKSxsfSksY2hpbGRyZW46W3QuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJsZWdlbmQtc3dhdGNoIixzdHlsZTp7YmFja2dyb3VuZDplLmNvbG9yfX0pLGUubGFiZWxdfSxlLmlkKX0pfSldfSl9ZXhwb3J0e08gYXMgQyxLIGFzIEYscSBhcyBMLFggYXMgcn07Cg==" }, "/v2/assets/LineChart-DaXJ3gYe.css": { contentType: "text/css; charset=utf-8", base64: "LmN1cnJlbmN5LXRvdGFsc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjE2cHh9LmN1cnJlbmN5LXRvdGFse2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweDttaW4td2lkdGg6MH0uY3VycmVuY3ktdG90YWwgLm51bXtvdmVyZmxvdy13cmFwOmFueXdoZXJlfQo=" }, "/v2/assets/OverviewPage-1TXw2Zyf.css": { contentType: "text/css; charset=utf-8", base64: "Lm92ZXJ2aWV3LXJlZnJlc2h7bWFyZ2luLWxlZnQ6YXV0b30ub3ZlcnZpZXctY2FyZC1oZWFke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxMnB4fS5vdmVydmlldy1jYXJkLWhlYWQgLmNhcmQtdGl0bGV7bWFyZ2luOjB9Lm92ZXJ2aWV3LWxpbmstY2FyZHtjdXJzb3I6cG9pbnRlcn0ub3ZlcnZpZXctbGluay1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5vdmVydmlldy1saW5rLWNhcmQ6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH1idXR0b24uYWNjb3VudC1jYXJke2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0fQo=" }, - "/v2/assets/OverviewPage-C7Vi7AmK.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgeCxhIGFzIEQsciBhcyBQLGogYXMgZSxsIGFzIEUsYiBhcyBMLGMgYXMgSSxkIGFzIE0sUyBhcyBtLEEgYXMgdyxNIGFzIFIsUCBhcyBBLGUgYXMgYixmIGFzIGgsZyBhcyBZLEQgYXMgQixoIGFzIE8sRSBhcyBGLGkgYXMgTixrIGFzIHEsbSBhcyBHLG4gYXMgSixvIGFzIHp9ZnJvbSIuL2luZGV4LUo1ZnF6NWh2LmpzIjtpbXBvcnR7aSBhcyBILEkgYXMgUX1mcm9tIi4vSW5ib3hSZWFkRmFpbGVkLUJlMDVBNW01LmpzIjtpbXBvcnR7ciBhcyAkLEYgYXMgVSxDIGFzIFYsTCBhcyBXfWZyb20iLi9MaW5lQ2hhcnQtN1NqX3cwa0QuanMiO2ltcG9ydHtBIGFzIFh9ZnJvbSIuL0FjY291bnRHcm91cHMtQ0NsNFdUNzUuanMiO2ltcG9ydHt1IGFzIHZ9ZnJvbSIuL2hvb2tzLUQwb1M1dWJHLmpzIjtpbXBvcnR7SyBhcyBjfWZyb20iLi9LcGlDYXJkLTBXVU51WGd2LmpzIjtmdW5jdGlvbiBaKHMpe2lmKCEkKHMuc3RhdHVzKXx8cy51bmF2YWlsYWJsZV9yZWFzb249PT0ibWl4ZWRfY3VycmVuY3kifHwhcy5jdXJyZW5jeSlyZXR1cm4gbnVsbDtjb25zdCBhPXMucG9pbnRzLnJlZHVjZSgobix0KT0+IW58fHQuZGF0ZT49bi5kYXRlP3Q6bixudWxsKTtyZXR1cm4gYSYmTnVtYmVyLmlzRmluaXRlKGEudmFsdWUpP2EudmFsdWU6bnVsbH1jb25zdCBnPSJZVEQiO2Z1bmN0aW9uIGVlKCl7Y29uc3Qgcz1uZXcgRGF0ZSxhPVN0cmluZyhzLmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLG49U3RyaW5nKHMuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCIwIik7cmV0dXJuYCR7cy5nZXRGdWxsWWVhcigpfS0ke2F9LSR7bn1gfWNvbnN0IF89JDtmdW5jdGlvbiBmKHtzdGF0dXM6cyxyZWFzb246YX0pe2NvbnN0IG49eCgpO3JldHVybiBlLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXN0YXRlIix0aXRsZTphP24oYHJlYXNvbi4ke2F9YCk6dm9pZCAwLGNoaWxkcmVuOm4oYHN0YXRlLiR7c31gKX0pfWZ1bmN0aW9uIGsocyl7cmV0dXJuIGUuanN4KGMse3RpdGxlOnMsdmFsdWU6ZS5qc3goaCx7aGVpZ2h0OjI4LHdpZHRoOiI3MCUifSl9KX1mdW5jdGlvbiBzZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YSgib3ZlcnZpZXcudG90YWxfYXNzZXRzIik7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGE7aWYodC5wZXJfY3VycmVuY3k/Lmxlbmd0aCYmdC51bmF2YWlsYWJsZV9yZWFzb24hPT0ic3RvcmVkX3JlY29yZHNfdW5yZWFkYWJsZSIpcmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6ZS5qc3goVix7dG90YWxzOnQucGVyX2N1cnJlbmN5fSksc3ViOmEoInBlcmYubmF0aXZlX3RvdGFsc19ub3RlIiksZm9vdGVyOmUuanN4KFUse2NvdW50czp0LmZyZXNobmVzc19zdW1tYXJ5fSl9KTtjb25zdCByPVoodCksbD1yPT09bnVsbCYmXyh0LnN0YXR1cyk/InVuYXZhaWxhYmxlIjp0LnN0YXR1cyxvPWUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3gobSx7c3RhdHVzOmwscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksZS5qc3godyx7dmFsdWU6dC5hc19vZn0pXX0pLGk9ciE9PW51bGw/ZS5qc3goUix7dmFsdWU6cixjdXJyZW5jeTp0LmN1cnJlbmN5fSk6ZS5qc3goZix7c3RhdHVzOmwscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSk7cmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6aSxzdWI6dC51bmF2YWlsYWJsZV9yZWFzb24/YShgcmVhc29uLiR7dC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGZvb3RlcjpvfSl9ZnVuY3Rpb24gYWUoe3N0YXRlOnN9KXtjb25zdCBhPXgoKSxuPWEoIm92ZXJ2aWV3LnJhbmdlX3JldHVybiIse3JhbmdlOmEoYHBlcmYucmFuZ2UuJHtnfWApfSk7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGEscj1lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KG0se3N0YXR1czp0LnN0YXR1cyxyZWFzb246dC51bmF2YWlsYWJsZV9yZWFzb259KSxlLmpzeCh3LHt2YWx1ZTp0LmFzX29mfSldfSk7aWYoIV8odC5zdGF0dXMpKXJldHVybiBlLmpzeChjLHt0aXRsZTpuLHZhbHVlOmUuanN4KGYse3N0YXR1czp0LnN0YXR1cyxyZWFzb246dC51bmF2YWlsYWJsZV9yZWFzb259KSxzdWI6YSgib3ZlcnZpZXcudHdyX3RhZyIpLGZvb3RlcjpyfSk7Y29uc3QgbD10LnR3cl9yZXR1cm5fcGVyY2VudD09PW51bGw/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSk6ZS5qc3goQSx7dmFsdWU6dC50d3JfcmV0dXJuX3BlcmNlbnR9KTtyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTpsLHN1Yjp0LnR3cl9yZXR1cm5fcGVyY2VudD09PW51bGwmJnQubWV0cmljX3JlYXNvbnM/LnR3cj9hKGByZWFzb24uJHt0Lm1ldHJpY19yZWFzb25zLnR3cn1gKTphKCJvdmVydmlldy50d3JfdGFnIiksZm9vdGVyOnJ9KX1mdW5jdGlvbiB0ZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YSgib3ZlcnZpZXcubGFzdF9kYXlfY2hhbmdlIik7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGEscj10LnZhbHVlX2tpbmQ9PT0icG5sIj9hKCJwZXJmLnZhbHVlX2tpbmRfcG5sIik6YSgicGVyZi52YWx1ZV9raW5kX2Fzc2V0X2NoYW5nZSIpLGw9ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeChtLHtzdGF0dXM6dC5zdGF0dXMscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksZS5qc3godyx7dmFsdWU6dC5hc19vZn0pXX0pO2lmKCFfKHQuc3RhdHVzKSlyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6dC5zdGF0dXMscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksc3ViOnIsZm9vdGVyOmx9KTtjb25zdCBvPWVlKCksaT10LmNlbGxzLmZpbHRlcihwPT4hIXAuZGF0ZSYmcC5kYXRlPD1vJiYocC5hbW91bnQhPT1udWxsfHxwLnJldHVybl9wZXJjZW50IT09bnVsbCkpLnNvcnQoKHAseSk9PnAuZGF0ZTx5LmRhdGU/MTotMSlbMF07aWYoIWkpcmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksc3ViOnIsZm9vdGVyOmx9KTtjb25zdCB1PWkuYW1vdW50IT09bnVsbD9lLmpzeChSLHt2YWx1ZTppLmFtb3VudCxjdXJyZW5jeTppLmN1cnJlbmN5LHNpZ25lZDohMH0pOmUuanN4KEEse3ZhbHVlOmkucmV0dXJuX3BlcmNlbnR9KSxkPWkudmFsdWVfa2luZD09PSJwbmwiP2EoInBlcmYudmFsdWVfa2luZF9wbmwiKTphKCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIik7cmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6dSxzdWI6ZCxmb290ZXI6bH0pfWZ1bmN0aW9uIG5lKHtzdGF0ZTpzfSl7Y29uc3QgYT14KCksbj1iKCksdD0oKT0+bih7cGFnZToiZGVjaXNpb25zIn0pLHI9YSgib3ZlcnZpZXcudG9kb3MiKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmUuanN4KGgse2hlaWdodDoyOCx3aWR0aDoiNzAlIn0pLG9uQ2xpY2s6dH0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXN0YXRlIixjaGlsZHJlbjphKGBpbmJveC5lcnJvci4ke0gocy5kYXRhLHMuZXJyb3IpfS50aXRsZWApfSksb25DbGljazp0fSk7Y29uc3QgbD1zLmRhdGEsbz1sLml0ZW1zLmZpbHRlcih1PT51LnN0YXR1cz09PSJwZW5kaW5nIiksaT1vLmZpbHRlcih1PT51LnByaW9yaXR5PT09ImhpZ2giKS5sZW5ndGg7cmV0dXJuIGUuanN4KGMse3RpdGxlOnIsdmFsdWU6by5sZW5ndGgsc3ViOmEoIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCIse2NvdW50Oml9KSxmb290ZXI6bC5zdGF0dXM9PT0icGFydGlhbCI/ZS5qc3gobSx7c3RhdHVzOiJwYXJ0aWFsIn0pOnZvaWQgMCxvbkNsaWNrOnR9KX1mdW5jdGlvbiByZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YigpLHQ9KCk9Pm4oe3BhZ2U6ImhlYWx0aCJ9KSxyPWEoIm5hdi5oZWFsdGgiKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmUuanN4KGgse2hlaWdodDoyOCx3aWR0aDoiNzAlIn0pLG9uQ2xpY2s6dH0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6cix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pLG9uQ2xpY2s6dH0pO2NvbnN0IGw9cy5kYXRhLHtjb25maWd1cmVkOm8sb2JzZXJ2ZWQ6aSxydW5zOnV9PWwuY291bnRzLGQ9dT09PW51bGw/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSk6ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltpLCIvIixvXX0pO3JldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmQsc3ViOmUuanN4KEIse3ZhbHVlOmwuZGF0ZX0pLGZvb3RlcjpsLnN0YXR1cz09PSJwYXJ0aWFsIj9lLmpzeChtLHtzdGF0dXM6InBhcnRpYWwifSk6dm9pZCAwLG9uQ2xpY2s6dH0pfWZ1bmN0aW9uIG9lKHtzdGF0ZTpzfSl7Y29uc3QgYT14KCksbj1iKCksdD0oKT0+bih7cGFnZToicGVyZm9ybWFuY2UifSk7bGV0IHIsbD1udWxsO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcj1lLmpzeChoLHtoZWlnaHQ6MjIwfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yIilyPWUuanN4KEYse29uUmV0cnk6cy5yZWxvYWR9KTtlbHNle2NvbnN0IG89cy5kYXRhO2lmKF8oby5zdGF0dXMpJiZvLnBvaW50cy5sZW5ndGg+MCl7Y29uc3QgaT1be2lkOiJtYWluIixsYWJlbDphKCJwZXJmLnJldHVybnNfbWFpbl9zZXJpZXMiKSxjb2xvcjoidmFyKC0tYWNjZW50KSIscG9pbnRzOm8ucG9pbnRzLHByaW1hcnk6ITB9XTtyPWUuanN4KFcse3NlcmllczppLG1vZGU6ImN1bXVsYXRpdmUiLGFyaWFMYWJlbDphKCJvdmVydmlldy5lcXVpdHlfdHJlbmQiKX0pfWVsc2Ugcj1lLmpzeChOLHt0aXRsZTphKGBzdGF0ZS4ke18oby5zdGF0dXMpPyJub19kYXRhIjpvLnN0YXR1c31gKX0pOyhvLnN0YXR1cz09PSJwYXJ0aWFsInx8by5zdGF0dXM9PT0ic3RhbGUiKSYmKGw9ZS5qc3hzKCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOltlLmpzeChtLHtzdGF0dXM6by5zdGF0dXMscmVhc29uOm8udW5hdmFpbGFibGVfcmVhc29ufSksIiAiLGUuanN4KHcse3ZhbHVlOm8uYXNfb2Z9KV19KSl9cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIG92ZXJ2aWV3LWxpbmstY2FyZCIscm9sZToiYnV0dG9uIix0YWJJbmRleDowLG9uQ2xpY2s6dCxvbktleURvd246bz0+eyhvLmtleT09PSJFbnRlciJ8fG8ua2V5PT09IiAiKSYmKG8ucHJldmVudERlZmF1bHQoKSx0KCkpfSxjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6Im92ZXJ2aWV3LWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YSgib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIil9KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46W2EoIm92ZXJ2aWV3Lm9wZW5fcGVyZm9ybWFuY2UiKSwiIOKGkiJdfSldfSkscixsXX0pfWNvbnN0IFM9e2hpZ2g6MCxtZWRpdW06MSxub3JtYWw6Mn07ZnVuY3Rpb24gaWUoe3N0YXRlOnN9KXtjb25zdCBhPXgoKSxuPXEoKSx0PWIoKSxyPSgpPT50KHtwYWdlOiJkZWNpc2lvbnMifSk7bGV0IGw7aWYocy5waGFzZT09PSJsb2FkaW5nIilsPWUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJpbmJveC1saXN0IixjaGlsZHJlbjpbZS5qc3goaCx7aGVpZ2h0OjU2fSksZS5qc3goaCx7aGVpZ2h0OjU2fSksZS5qc3goaCx7aGVpZ2h0OjU2fSldfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yInx8cy5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpbD1lLmpzeChRLHtkYXRhOnMuZGF0YSxlcnJvcjpzLmVycm9yLG9uUmV0cnk6cy5yZWxvYWR9KTtlbHNle2NvbnN0IG89cy5kYXRhLml0ZW1zLmZpbHRlcihpPT5pLnN0YXR1cz09PSJwZW5kaW5nIikuc29ydCgoaSx1KT0+e2NvbnN0IGQ9KFNbaS5wcmlvcml0eV0/PzMpLShTW3UucHJpb3JpdHldPz8zKTtyZXR1cm4gZCE9PTA/ZDoodS5jcmVhdGVkX2F0fHwiIikubG9jYWxlQ29tcGFyZShpLmNyZWF0ZWRfYXR8fCIiKX0pLnNsaWNlKDAsMyk7by5sZW5ndGg9PT0wP2w9ZS5qc3goTix7dGl0bGU6YSgiZGVjaXNpb25zLmVtcHR5X3BlbmRpbmciKX0pOmw9ZS5qc3goImRpdiIse2NsYXNzTmFtZToiaW5ib3gtbGlzdCIsY2hpbGRyZW46by5tYXAoaT0+e2NvbnN0IHU9YShpLnRpdGxlX2tleSksZD11PT09aS50aXRsZV9rZXk/aS5zaG9ydF9pZDp1LHA9RyhpLmNyZWF0ZWRfYXQsbik7cmV0dXJuIGUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImluYm94LWl0ZW0iLG9uQ2xpY2s6cixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHByaW9yaXR5LWRvdCBwcmlvcml0eS0ke2kucHJpb3JpdHl9YCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGUuanN4cygic3BhbiIse2NsYXNzTmFtZToiaXRlbS1tYWluIixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tdGl0bGUiLGNoaWxkcmVuOmR9KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tbWV0YSIsY2hpbGRyZW46W2UuanN4KCJzcGFuIix7Y2hpbGRyZW46aS5hY2NvdW50X2FsaWFzfHxhKCJkZWNpc2lvbnMuYWNjb3VudF9nbG9iYWwiKX0pLHAmJmUuanN4KCJzcGFuIix7Y2hpbGRyZW46cH0pXX0pXX0pXX0saS5pZCl9KX0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJvdmVydmlldy1jYXJkLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoIm92ZXJ2aWV3LnRvZG9fcHJldmlldyIpfSksZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazpyLGNoaWxkcmVuOmEoImNvbW1vbi52aWV3X2FsbCIpfSldfSksbF19KX1mdW5jdGlvbiBsZSh7YWNjb3VudHM6cyxjb25maWc6YX0pe2NvbnN0IG49eCgpLHQ9YigpO2xldCByO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcj1lLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudC1ncmlkIixjaGlsZHJlbjpbZS5qc3goaCx7aGVpZ2h0OjEyMH0pLGUuanN4KGgse2hlaWdodDoxMjB9KSxlLmpzeChoLHtoZWlnaHQ6MTIwfSldfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yIilyPWUuanN4KEYse29uUmV0cnk6cy5yZWxvYWR9KTtlbHNlIGlmKHMuZGF0YS5hY2NvdW50cy5sZW5ndGg9PT0wKXI9ZS5qc3goTix7dGl0bGU6bigib3ZlcnZpZXcubm9fYWNjb3VudHMiKX0pO2Vsc2V7Y29uc3QgbD1hLnBoYXNlPT09InJlYWR5Ij9hLmRhdGE6bnVsbDtyPWUuanN4KFgse2FjY291bnRzOnMuZGF0YS5hY2NvdW50cyxjb25maWc6bCxvblNlbGVjdDpvPT50KHtwYWdlOiJhY2NvdW50cyIsYWNjb3VudDpvfSl9KX1yZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOm4oIm92ZXJ2aWV3Lm15X2FjY291bnRzIil9KSxyXX0pfWZ1bmN0aW9uIHZlKCl7Y29uc3Qgcz14KCkse3Njb3BlOmF9PUQoKSxbbix0XT1QLnVzZVN0YXRlKDApLHI9KCk9PnQoaj0+aisxKSxsPW5ldyBEYXRlLG89digoKT0+RShhLGcpLFthLG5dKSxpPXYoKCk9PkwoYSxnKSxbYSxuXSksdT12KCgpPT5JKGEsZyxsLmdldEZ1bGxZZWFyKCksbC5nZXRNb250aCgpKzEpLFthLG5dKSxkPXYoKCk9Plkobj4wKSxbbl0pLHA9digoKT0+TygpLFtuXSkseT12KCgpPT5NKGEsZyksW2Esbl0pLEs9digoKT0+eigpLFtuXSksVD12KCgpPT5KKCIvYXBpL2NvbmZpZyIpLmNhdGNoKCgpPT5udWxsKSxbbl0pLEM9Wy4uLm5ldyBTZXQoW28saSx1LHldLmZsYXRNYXAoaj0+ai5waGFzZT09PSJyZWFkeSImJmouZGF0YS51bmF2YWlsYWJsZV9yZWFzb24/W2ouZGF0YS51bmF2YWlsYWJsZV9yZWFzb25dOltdKSldO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2UuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46cygibmF2Lm92ZXJ2aWV3Iil9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IG92ZXJ2aWV3LXJlZnJlc2giLG9uQ2xpY2s6cixjaGlsZHJlbjpzKCJjb21tb24ucmVmcmVzaCIpfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImtwaS1ncmlkIixjaGlsZHJlbjpbZS5qc3goc2Use3N0YXRlOm99KSxlLmpzeChhZSx7c3RhdGU6aX0pLGUuanN4KHRlLHtzdGF0ZTp1fSksZS5qc3gobmUse3N0YXRlOmR9KSxlLmpzeChyZSx7c3RhdGU6cH0pXX0pLEMubGVuZ3RoPjAmJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJtZXRyaWMtbm90ZSIsY2hpbGRyZW46Qy5tYXAoaj0+cyhgcmVhc29uLiR7an1gKSkuam9pbigiIMK3ICIpfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImdyaWQtMiIsY2hpbGRyZW46W2UuanN4KG9lLHtzdGF0ZTp5fSksZS5qc3goaWUse3N0YXRlOmR9KV19KSxlLmpzeChsZSx7YWNjb3VudHM6Syxjb25maWc6VH0pXX0pfWV4cG9ydHt2ZSBhcyBkZWZhdWx0fTsK" }, + "/v2/assets/OverviewPage-BVrugSwZ.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgeCxhIGFzIEQsciBhcyBQLGogYXMgZSxsIGFzIEUsYiBhcyBMLGMgYXMgSSxkIGFzIE0sUyBhcyBtLEEgYXMgdyxNIGFzIFIsUCBhcyBBLGUgYXMgYixmIGFzIGgsZyBhcyBZLEQgYXMgQixoIGFzIE8sRSBhcyBGLGkgYXMgTixrIGFzIHEsbSBhcyBHLG4gYXMgSixvIGFzIHp9ZnJvbSIuL2luZGV4LUNZNmlHUE9YLmpzIjtpbXBvcnR7aSBhcyBILEkgYXMgUX1mcm9tIi4vSW5ib3hSZWFkRmFpbGVkLUQyQ09fcnNTLmpzIjtpbXBvcnR7ciBhcyAkLEYgYXMgVSxDIGFzIFYsTCBhcyBXfWZyb20iLi9MaW5lQ2hhcnQtLVhlRzJ5ZzUuanMiO2ltcG9ydHtBIGFzIFh9ZnJvbSIuL0FjY291bnRHcm91cHMtQmhsamZiTm4uanMiO2ltcG9ydHt1IGFzIHZ9ZnJvbSIuL2hvb2tzLUNSTmtZaHg3LmpzIjtpbXBvcnR7SyBhcyBjfWZyb20iLi9LcGlDYXJkLUNSU2pkXzNrLmpzIjtmdW5jdGlvbiBaKHMpe2lmKCEkKHMuc3RhdHVzKXx8cy51bmF2YWlsYWJsZV9yZWFzb249PT0ibWl4ZWRfY3VycmVuY3kifHwhcy5jdXJyZW5jeSlyZXR1cm4gbnVsbDtjb25zdCBhPXMucG9pbnRzLnJlZHVjZSgobix0KT0+IW58fHQuZGF0ZT49bi5kYXRlP3Q6bixudWxsKTtyZXR1cm4gYSYmTnVtYmVyLmlzRmluaXRlKGEudmFsdWUpP2EudmFsdWU6bnVsbH1jb25zdCBnPSJZVEQiO2Z1bmN0aW9uIGVlKCl7Y29uc3Qgcz1uZXcgRGF0ZSxhPVN0cmluZyhzLmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLG49U3RyaW5nKHMuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCIwIik7cmV0dXJuYCR7cy5nZXRGdWxsWWVhcigpfS0ke2F9LSR7bn1gfWNvbnN0IF89JDtmdW5jdGlvbiBmKHtzdGF0dXM6cyxyZWFzb246YX0pe2NvbnN0IG49eCgpO3JldHVybiBlLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXN0YXRlIix0aXRsZTphP24oYHJlYXNvbi4ke2F9YCk6dm9pZCAwLGNoaWxkcmVuOm4oYHN0YXRlLiR7c31gKX0pfWZ1bmN0aW9uIGsocyl7cmV0dXJuIGUuanN4KGMse3RpdGxlOnMsdmFsdWU6ZS5qc3goaCx7aGVpZ2h0OjI4LHdpZHRoOiI3MCUifSl9KX1mdW5jdGlvbiBzZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YSgib3ZlcnZpZXcudG90YWxfYXNzZXRzIik7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGE7aWYodC5wZXJfY3VycmVuY3k/Lmxlbmd0aCYmdC51bmF2YWlsYWJsZV9yZWFzb24hPT0ic3RvcmVkX3JlY29yZHNfdW5yZWFkYWJsZSIpcmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6ZS5qc3goVix7dG90YWxzOnQucGVyX2N1cnJlbmN5fSksc3ViOmEoInBlcmYubmF0aXZlX3RvdGFsc19ub3RlIiksZm9vdGVyOmUuanN4KFUse2NvdW50czp0LmZyZXNobmVzc19zdW1tYXJ5fSl9KTtjb25zdCByPVoodCksbD1yPT09bnVsbCYmXyh0LnN0YXR1cyk/InVuYXZhaWxhYmxlIjp0LnN0YXR1cyxvPWUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3gobSx7c3RhdHVzOmwscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksZS5qc3godyx7dmFsdWU6dC5hc19vZn0pXX0pLGk9ciE9PW51bGw/ZS5qc3goUix7dmFsdWU6cixjdXJyZW5jeTp0LmN1cnJlbmN5fSk6ZS5qc3goZix7c3RhdHVzOmwscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSk7cmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6aSxzdWI6dC51bmF2YWlsYWJsZV9yZWFzb24/YShgcmVhc29uLiR7dC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGZvb3RlcjpvfSl9ZnVuY3Rpb24gYWUoe3N0YXRlOnN9KXtjb25zdCBhPXgoKSxuPWEoIm92ZXJ2aWV3LnJhbmdlX3JldHVybiIse3JhbmdlOmEoYHBlcmYucmFuZ2UuJHtnfWApfSk7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGEscj1lLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KG0se3N0YXR1czp0LnN0YXR1cyxyZWFzb246dC51bmF2YWlsYWJsZV9yZWFzb259KSxlLmpzeCh3LHt2YWx1ZTp0LmFzX29mfSldfSk7aWYoIV8odC5zdGF0dXMpKXJldHVybiBlLmpzeChjLHt0aXRsZTpuLHZhbHVlOmUuanN4KGYse3N0YXR1czp0LnN0YXR1cyxyZWFzb246dC51bmF2YWlsYWJsZV9yZWFzb259KSxzdWI6YSgib3ZlcnZpZXcudHdyX3RhZyIpLGZvb3RlcjpyfSk7Y29uc3QgbD10LnR3cl9yZXR1cm5fcGVyY2VudD09PW51bGw/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSk6ZS5qc3goQSx7dmFsdWU6dC50d3JfcmV0dXJuX3BlcmNlbnR9KTtyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTpsLHN1Yjp0LnR3cl9yZXR1cm5fcGVyY2VudD09PW51bGwmJnQubWV0cmljX3JlYXNvbnM/LnR3cj9hKGByZWFzb24uJHt0Lm1ldHJpY19yZWFzb25zLnR3cn1gKTphKCJvdmVydmlldy50d3JfdGFnIiksZm9vdGVyOnJ9KX1mdW5jdGlvbiB0ZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YSgib3ZlcnZpZXcubGFzdF9kYXlfY2hhbmdlIik7aWYocy5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gayhuKTtpZihzLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pfSk7Y29uc3QgdD1zLmRhdGEscj10LnZhbHVlX2tpbmQ9PT0icG5sIj9hKCJwZXJmLnZhbHVlX2tpbmRfcG5sIik6YSgicGVyZi52YWx1ZV9raW5kX2Fzc2V0X2NoYW5nZSIpLGw9ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeChtLHtzdGF0dXM6dC5zdGF0dXMscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksZS5qc3godyx7dmFsdWU6dC5hc19vZn0pXX0pO2lmKCFfKHQuc3RhdHVzKSlyZXR1cm4gZS5qc3goYyx7dGl0bGU6bix2YWx1ZTplLmpzeChmLHtzdGF0dXM6dC5zdGF0dXMscmVhc29uOnQudW5hdmFpbGFibGVfcmVhc29ufSksc3ViOnIsZm9vdGVyOmx9KTtjb25zdCBvPWVlKCksaT10LmNlbGxzLmZpbHRlcihwPT4hIXAuZGF0ZSYmcC5kYXRlPD1vJiYocC5hbW91bnQhPT1udWxsfHxwLnJldHVybl9wZXJjZW50IT09bnVsbCkpLnNvcnQoKHAseSk9PnAuZGF0ZTx5LmRhdGU/MTotMSlbMF07aWYoIWkpcmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksc3ViOnIsZm9vdGVyOmx9KTtjb25zdCB1PWkuYW1vdW50IT09bnVsbD9lLmpzeChSLHt2YWx1ZTppLmFtb3VudCxjdXJyZW5jeTppLmN1cnJlbmN5LHNpZ25lZDohMH0pOmUuanN4KEEse3ZhbHVlOmkucmV0dXJuX3BlcmNlbnR9KSxkPWkudmFsdWVfa2luZD09PSJwbmwiP2EoInBlcmYudmFsdWVfa2luZF9wbmwiKTphKCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIik7cmV0dXJuIGUuanN4KGMse3RpdGxlOm4sdmFsdWU6dSxzdWI6ZCxmb290ZXI6bH0pfWZ1bmN0aW9uIG5lKHtzdGF0ZTpzfSl7Y29uc3QgYT14KCksbj1iKCksdD0oKT0+bih7cGFnZToiZGVjaXNpb25zIn0pLHI9YSgib3ZlcnZpZXcudG9kb3MiKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmUuanN4KGgse2hlaWdodDoyOCx3aWR0aDoiNzAlIn0pLG9uQ2xpY2s6dH0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXN0YXRlIixjaGlsZHJlbjphKGBpbmJveC5lcnJvci4ke0gocy5kYXRhLHMuZXJyb3IpfS50aXRsZWApfSksb25DbGljazp0fSk7Y29uc3QgbD1zLmRhdGEsbz1sLml0ZW1zLmZpbHRlcih1PT51LnN0YXR1cz09PSJwZW5kaW5nIiksaT1vLmZpbHRlcih1PT51LnByaW9yaXR5PT09ImhpZ2giKS5sZW5ndGg7cmV0dXJuIGUuanN4KGMse3RpdGxlOnIsdmFsdWU6by5sZW5ndGgsc3ViOmEoIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCIse2NvdW50Oml9KSxmb290ZXI6bC5zdGF0dXM9PT0icGFydGlhbCI/ZS5qc3gobSx7c3RhdHVzOiJwYXJ0aWFsIn0pOnZvaWQgMCxvbkNsaWNrOnR9KX1mdW5jdGlvbiByZSh7c3RhdGU6c30pe2NvbnN0IGE9eCgpLG49YigpLHQ9KCk9Pm4oe3BhZ2U6ImhlYWx0aCJ9KSxyPWEoIm5hdi5oZWFsdGgiKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmUuanN4KGgse2hlaWdodDoyOCx3aWR0aDoiNzAlIn0pLG9uQ2xpY2s6dH0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goYyx7dGl0bGU6cix2YWx1ZTplLmpzeChmLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pLG9uQ2xpY2s6dH0pO2NvbnN0IGw9cy5kYXRhLHtjb25maWd1cmVkOm8sb2JzZXJ2ZWQ6aSxydW5zOnV9PWwuY291bnRzLGQ9dT09PW51bGw/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSk6ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltpLCIvIixvXX0pO3JldHVybiBlLmpzeChjLHt0aXRsZTpyLHZhbHVlOmQsc3ViOmUuanN4KEIse3ZhbHVlOmwuZGF0ZX0pLGZvb3RlcjpsLnN0YXR1cz09PSJwYXJ0aWFsIj9lLmpzeChtLHtzdGF0dXM6InBhcnRpYWwifSk6dm9pZCAwLG9uQ2xpY2s6dH0pfWZ1bmN0aW9uIG9lKHtzdGF0ZTpzfSl7Y29uc3QgYT14KCksbj1iKCksdD0oKT0+bih7cGFnZToicGVyZm9ybWFuY2UifSk7bGV0IHIsbD1udWxsO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcj1lLmpzeChoLHtoZWlnaHQ6MjIwfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yIilyPWUuanN4KEYse29uUmV0cnk6cy5yZWxvYWR9KTtlbHNle2NvbnN0IG89cy5kYXRhO2lmKF8oby5zdGF0dXMpJiZvLnBvaW50cy5sZW5ndGg+MCl7Y29uc3QgaT1be2lkOiJtYWluIixsYWJlbDphKCJwZXJmLnJldHVybnNfbWFpbl9zZXJpZXMiKSxjb2xvcjoidmFyKC0tYWNjZW50KSIscG9pbnRzOm8ucG9pbnRzLHByaW1hcnk6ITB9XTtyPWUuanN4KFcse3NlcmllczppLG1vZGU6ImN1bXVsYXRpdmUiLGFyaWFMYWJlbDphKCJvdmVydmlldy5lcXVpdHlfdHJlbmQiKX0pfWVsc2Ugcj1lLmpzeChOLHt0aXRsZTphKGBzdGF0ZS4ke18oby5zdGF0dXMpPyJub19kYXRhIjpvLnN0YXR1c31gKX0pOyhvLnN0YXR1cz09PSJwYXJ0aWFsInx8by5zdGF0dXM9PT0ic3RhbGUiKSYmKGw9ZS5qc3hzKCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOltlLmpzeChtLHtzdGF0dXM6by5zdGF0dXMscmVhc29uOm8udW5hdmFpbGFibGVfcmVhc29ufSksIiAiLGUuanN4KHcse3ZhbHVlOm8uYXNfb2Z9KV19KSl9cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIG92ZXJ2aWV3LWxpbmstY2FyZCIscm9sZToiYnV0dG9uIix0YWJJbmRleDowLG9uQ2xpY2s6dCxvbktleURvd246bz0+eyhvLmtleT09PSJFbnRlciJ8fG8ua2V5PT09IiAiKSYmKG8ucHJldmVudERlZmF1bHQoKSx0KCkpfSxjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6Im92ZXJ2aWV3LWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46YSgib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIil9KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46W2EoIm92ZXJ2aWV3Lm9wZW5fcGVyZm9ybWFuY2UiKSwiIOKGkiJdfSldfSkscixsXX0pfWNvbnN0IFM9e2hpZ2g6MCxtZWRpdW06MSxub3JtYWw6Mn07ZnVuY3Rpb24gaWUoe3N0YXRlOnN9KXtjb25zdCBhPXgoKSxuPXEoKSx0PWIoKSxyPSgpPT50KHtwYWdlOiJkZWNpc2lvbnMifSk7bGV0IGw7aWYocy5waGFzZT09PSJsb2FkaW5nIilsPWUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJpbmJveC1saXN0IixjaGlsZHJlbjpbZS5qc3goaCx7aGVpZ2h0OjU2fSksZS5qc3goaCx7aGVpZ2h0OjU2fSksZS5qc3goaCx7aGVpZ2h0OjU2fSldfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yInx8cy5kYXRhLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpbD1lLmpzeChRLHtkYXRhOnMuZGF0YSxlcnJvcjpzLmVycm9yLG9uUmV0cnk6cy5yZWxvYWR9KTtlbHNle2NvbnN0IG89cy5kYXRhLml0ZW1zLmZpbHRlcihpPT5pLnN0YXR1cz09PSJwZW5kaW5nIikuc29ydCgoaSx1KT0+e2NvbnN0IGQ9KFNbaS5wcmlvcml0eV0/PzMpLShTW3UucHJpb3JpdHldPz8zKTtyZXR1cm4gZCE9PTA/ZDoodS5jcmVhdGVkX2F0fHwiIikubG9jYWxlQ29tcGFyZShpLmNyZWF0ZWRfYXR8fCIiKX0pLnNsaWNlKDAsMyk7by5sZW5ndGg9PT0wP2w9ZS5qc3goTix7dGl0bGU6YSgiZGVjaXNpb25zLmVtcHR5X3BlbmRpbmciKX0pOmw9ZS5qc3goImRpdiIse2NsYXNzTmFtZToiaW5ib3gtbGlzdCIsY2hpbGRyZW46by5tYXAoaT0+e2NvbnN0IHU9YShpLnRpdGxlX2tleSksZD11PT09aS50aXRsZV9rZXk/aS5zaG9ydF9pZDp1LHA9RyhpLmNyZWF0ZWRfYXQsbik7cmV0dXJuIGUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImluYm94LWl0ZW0iLG9uQ2xpY2s6cixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHByaW9yaXR5LWRvdCBwcmlvcml0eS0ke2kucHJpb3JpdHl9YCwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGUuanN4cygic3BhbiIse2NsYXNzTmFtZToiaXRlbS1tYWluIixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tdGl0bGUiLGNoaWxkcmVuOmR9KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6Iml0ZW0tbWV0YSIsY2hpbGRyZW46W2UuanN4KCJzcGFuIix7Y2hpbGRyZW46aS5hY2NvdW50X2FsaWFzfHxhKCJkZWNpc2lvbnMuYWNjb3VudF9nbG9iYWwiKX0pLHAmJmUuanN4KCJzcGFuIix7Y2hpbGRyZW46cH0pXX0pXX0pXX0saS5pZCl9KX0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJvdmVydmlldy1jYXJkLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOmEoIm92ZXJ2aWV3LnRvZG9fcHJldmlldyIpfSksZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazpyLGNoaWxkcmVuOmEoImNvbW1vbi52aWV3X2FsbCIpfSldfSksbF19KX1mdW5jdGlvbiBsZSh7YWNjb3VudHM6cyxjb25maWc6YX0pe2NvbnN0IG49eCgpLHQ9YigpO2xldCByO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcj1lLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYWNjb3VudC1ncmlkIixjaGlsZHJlbjpbZS5qc3goaCx7aGVpZ2h0OjEyMH0pLGUuanN4KGgse2hlaWdodDoxMjB9KSxlLmpzeChoLHtoZWlnaHQ6MTIwfSldfSk7ZWxzZSBpZihzLnBoYXNlPT09ImVycm9yIilyPWUuanN4KEYse29uUmV0cnk6cy5yZWxvYWR9KTtlbHNlIGlmKHMuZGF0YS5hY2NvdW50cy5sZW5ndGg9PT0wKXI9ZS5qc3goTix7dGl0bGU6bigib3ZlcnZpZXcubm9fYWNjb3VudHMiKX0pO2Vsc2V7Y29uc3QgbD1hLnBoYXNlPT09InJlYWR5Ij9hLmRhdGE6bnVsbDtyPWUuanN4KFgse2FjY291bnRzOnMuZGF0YS5hY2NvdW50cyxjb25maWc6bCxvblNlbGVjdDpvPT50KHtwYWdlOiJhY2NvdW50cyIsYWNjb3VudDpvfSl9KX1yZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOm4oIm92ZXJ2aWV3Lm15X2FjY291bnRzIil9KSxyXX0pfWZ1bmN0aW9uIHZlKCl7Y29uc3Qgcz14KCkse3Njb3BlOmF9PUQoKSxbbix0XT1QLnVzZVN0YXRlKDApLHI9KCk9PnQoaj0+aisxKSxsPW5ldyBEYXRlLG89digoKT0+RShhLGcpLFthLG5dKSxpPXYoKCk9PkwoYSxnKSxbYSxuXSksdT12KCgpPT5JKGEsZyxsLmdldEZ1bGxZZWFyKCksbC5nZXRNb250aCgpKzEpLFthLG5dKSxkPXYoKCk9Plkobj4wKSxbbl0pLHA9digoKT0+TygpLFtuXSkseT12KCgpPT5NKGEsZyksW2Esbl0pLEs9digoKT0+eigpLFtuXSksVD12KCgpPT5KKCIvYXBpL2NvbmZpZyIpLmNhdGNoKCgpPT5udWxsKSxbbl0pLEM9Wy4uLm5ldyBTZXQoW28saSx1LHldLmZsYXRNYXAoaj0+ai5waGFzZT09PSJyZWFkeSImJmouZGF0YS51bmF2YWlsYWJsZV9yZWFzb24/W2ouZGF0YS51bmF2YWlsYWJsZV9yZWFzb25dOltdKSldO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2UuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46cygibmF2Lm92ZXJ2aWV3Iil9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IG92ZXJ2aWV3LXJlZnJlc2giLG9uQ2xpY2s6cixjaGlsZHJlbjpzKCJjb21tb24ucmVmcmVzaCIpfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImtwaS1ncmlkIixjaGlsZHJlbjpbZS5qc3goc2Use3N0YXRlOm99KSxlLmpzeChhZSx7c3RhdGU6aX0pLGUuanN4KHRlLHtzdGF0ZTp1fSksZS5qc3gobmUse3N0YXRlOmR9KSxlLmpzeChyZSx7c3RhdGU6cH0pXX0pLEMubGVuZ3RoPjAmJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJtZXRyaWMtbm90ZSIsY2hpbGRyZW46Qy5tYXAoaj0+cyhgcmVhc29uLiR7an1gKSkuam9pbigiIMK3ICIpfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImdyaWQtMiIsY2hpbGRyZW46W2UuanN4KG9lLHtzdGF0ZTp5fSksZS5qc3goaWUse3N0YXRlOmR9KV19KSxlLmpzeChsZSx7YWNjb3VudHM6Syxjb25maWc6VH0pXX0pfWV4cG9ydHt2ZSBhcyBkZWZhdWx0fTsK" }, "/v2/assets/PerformancePage-BF_tyMig.css": { contentType: "text/css; charset=utf-8", base64: "LnBlcmYtc3BhY2Vye2ZsZXg6MSAxIGF1dG99LnBlcmYta3BpLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNixtaW5tYXgoMCwxZnIpKTtnYXA6MTJweH0ucGVyZi1jYXJkLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1ib3R0b206MTJweH0ucGVyZi1jYXJkLWhlYWQgLmNhcmQtdGl0bGV7bWFyZ2luOjB9LnBlcmYtaGVhZC1tZXRhe21hcmdpbi1sZWZ0OmF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwfS5wZXJmLWtpbmR7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tbXV0ZWQpfS5rcGktZm9vdCAua3BpLXJlYXNvbntmbGV4LWJhc2lzOjEwMCU7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tbXV0ZWQpfS5wZXJmLW1vZGUtdG9nZ2xle21hcmdpbi1sZWZ0OmF1dG99LnBlcmYtYmVuY2htYXJrcy1vZmZ7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo0cHggMTZweDttYXJnaW4tdG9wOjRweH0ucGVyZi1iZW5jaG1hcmstb2Zme2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGVkKTtvcGFjaXR5Oi43O2N1cnNvcjpoZWxwfS5wZXJmLWN1cnJlbmN5LWJsb2NrKy5wZXJmLWN1cnJlbmN5LWJsb2Nre21hcmdpbi10b3A6MTZweDtwYWRkaW5nLXRvcDoxMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpfS5wZXJmLWN1cnJlbmN5LXRpdGxle21hcmdpbjowIDAgNHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjYwMH0ucGVyZi1leGNlc3MtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnBlcmYtdGFiLWJvZHl7bWFyZ2luLXRvcDoxMnB4fS5wZXJmLXJhbmtpbmctc2VjdGlvbisucGVyZi1yYW5raW5nLXNlY3Rpb257bWFyZ2luLXRvcDoxNnB4fS5wZXJmLXJhbmtpbmctaGVhZGluZ3ttYXJnaW46MCAwIDhweDtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tbXV0ZWQpfS5tZXRob2Qtbm90ZXttYXJnaW4tdG9wOjhweH0ubWV0aG9kLW5vdGUgc3VtbWFyeXtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZToxM3B4fUBtZWRpYShtYXgtd2lkdGg6MTIwMHB4KXsucGVyZi1rcGktZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSl9fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5wZXJmLWtwaS1ncmlke2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0ucGVyZi1oZWFkLW1ldGF7bWFyZ2luLWxlZnQ6MH19Cg==" }, - "/v2/assets/PerformancePage-BvdqCGqv.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgZyxiIGFzIGVlLGogYXMgZSxmIGFzIFMsUCBhcyBXLE0gYXMgTCxrIGFzIFIscCBhcyB6LHEgYXMgTyxTIGFzIEssQSBhcyBWLHIgYXMgJCxkIGFzIGNlLEUgYXMgRCxpIGFzIE4scyBhcyBpZSx0IGFzIEksdiBhcyB1ZSxsIGFzIGRlLHcgYXMgYWUsQiBhcyBzZSx4IGFzIEgsYyBhcyBwZSx5IGFzIG1lLHogYXMgaGUsQyBhcyBmZSxhIGFzIHhlLFIgYXMgX2UsRiBhcyBZfWZyb20iLi9pbmRleC1KNWZxejVodi5qcyI7aW1wb3J0e3UgYXMgVH1mcm9tIi4vaG9va3MtRDBvUzV1YkcuanMiO2ltcG9ydHtLIGFzIHl9ZnJvbSIuL0twaUNhcmQtMFdVTnVYZ3YuanMiO2ltcG9ydHtyIGFzIGIsTCBhcyB2ZSxDIGFzIGplLEYgYXMgdGV9ZnJvbSIuL0xpbmVDaGFydC03U2pfdzBrRC5qcyI7aW1wb3J0e0QgYXMgYmV9ZnJvbSIuL0RhdGFUYWJsZS1ETTZXM1FSMS5qcyI7aW1wb3J0e1QgYXMgZ2V9ZnJvbSIuL1RhYnMtRGI3eDNodWkuanMiO2Z1bmN0aW9uIFAoe3N0YXR1czphLHJlYXNvbjp0fSl7Y29uc3QgYz1nKCk7cmV0dXJuIGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3RhdGUiLHRpdGxlOnQ/YyhgcmVhc29uLiR7dH1gKTp2b2lkIDAsY2hpbGRyZW46Yyhgc3RhdGUuJHthfWApfSl9ZnVuY3Rpb24geWUoe3JlYXNvbjphLHNoYXJlZDp0fSl7Y29uc3QgYz1nKCk7cmV0dXJuIWF8fGE9PT10P251bGw6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1yZWFzb24iLGNoaWxkcmVuOmMoYHJlYXNvbi4ke2F9YCl9KX1mdW5jdGlvbiB3KGEsdCl7cmV0dXJuIGUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3goSyx7c3RhdHVzOmEuc3RhdHVzLHJlYXNvbjphLnVuYXZhaWxhYmxlX3JlYXNvbn0pLGUuanN4KFYse3ZhbHVlOmEuYXNfb2Z9KSxlLmpzeCh5ZSx7cmVhc29uOnQsc2hhcmVkOmEudW5hdmFpbGFibGVfcmVhc29ufSldfSl9ZnVuY3Rpb24ga2Uoe2RhdGE6YX0pe2NvbnN0IHQ9ZygpLGM9dCgicGVyZi5jYXJkLnR3ciIpO2lmKCFiKGEuc3RhdHVzKSlyZXR1cm4gZS5qc3goeSx7dGl0bGU6Yyx2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOncoYSxhLm1ldHJpY19yZWFzb25zPy50d3IpfSk7aWYoYS50d3JfcmV0dXJuX3BlcmNlbnQ9PT1udWxsKXtjb25zdCByPWEubWV0cmljX3JlYXNvbnM/LnR3cnx8YS51bmF2YWlsYWJsZV9yZWFzb247cmV0dXJuIGUuanN4KHkse3RpdGxlOmMsdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksc3ViOnQoYHJlYXNvbi4ke3J8fCJ1bmtub3duIn1gKSxmb290ZXI6dyhhKX0pfXJldHVybiBlLmpzeCh5LHt0aXRsZTpjLHZhbHVlOmUuanN4KFcse3ZhbHVlOmEudHdyX3JldHVybl9wZXJjZW50fSksZm9vdGVyOncoYSl9KX1mdW5jdGlvbiBOZSh7ZGF0YTphfSl7Y29uc3QgdD1nKCksYz1hLnZhbHVlX2tpbmQ9PT0icG5sIj90KCJwZXJmLmNhcmQuYW1vdW50Iik6dCgicGVyZi5jYXJkLmFtb3VudF9hc3NldF9jaGFuZ2UiKSxyPXcoYSk7cmV0dXJuIGIoYS5zdGF0dXMpP2EudW5hdmFpbGFibGVfcmVhc29uPT09Im1peGVkX2N1cnJlbmN5Inx8YS5hbW91bnQ9PT1udWxsP2UuanN4KHkse3RpdGxlOmMsdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksZm9vdGVyOnJ9KTplLmpzeCh5LHt0aXRsZTpjLHZhbHVlOmUuanN4KEwse3ZhbHVlOmEuYW1vdW50LGN1cnJlbmN5OmEuY3VycmVuY3ksc2lnbmVkOiEwfSksZm9vdGVyOnJ9KTplLmpzeCh5LHt0aXRsZTpjLHZhbHVlOmUuanN4KFAse3N0YXR1czphLnN0YXR1cyxyZWFzb246YS51bmF2YWlsYWJsZV9yZWFzb259KSxmb290ZXI6cn0pfWZ1bmN0aW9uICRlKHtkYXRhOmF9KXtjb25zdCB0PWcoKSxjPVIoKSxyPXQoInBlcmYuZHJhd2Rvd25fdHdyX3RpdGxlIiksbj13KGEpO2lmKGEucGVyX2N1cnJlbmN5Py5sZW5ndGgmJmEudW5hdmFpbGFibGVfcmVhc29uIT09InN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiKXJldHVybiBlLmpzeCh5LHt0aXRsZTpyLHZhbHVlOmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJjdXJyZW5jeS10b3RhbHMiLGNoaWxkcmVuOmEucGVyX2N1cnJlbmN5Lm1hcChpPT57Y29uc3Qgbz1pLm1heF9kcmF3ZG93bjtyZXR1cm4gZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJjdXJyZW5jeS10b3RhbCIsY2hpbGRyZW46W2UuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjppLmN1cnJlbmN5fSksby5wZXJjZW50PT09bnVsbD9lLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KTplLmpzeChXLHt2YWx1ZTotby5wZXJjZW50fHwwfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOm8udW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke28udW5hdmFpbGFibGVfcmVhc29ufWApOm8ucGVha19kYXRlJiZvLnRyb3VnaF9kYXRlP3QoInBlcmYuY2FyZC5tYXhfZHJhd2Rvd25fZGF0ZXMiLHtwZWFrOnooby5wZWFrX2RhdGUsYyksdHJvdWdoOnooby50cm91Z2hfZGF0ZSxjKX0pOm51bGx9KV19LGkuY3VycmVuY3kpfSl9KX0pO2lmKCFiKGEuc3RhdHVzKSlyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOncoYSxhLm1heF9kcmF3ZG93bj8udW5hdmFpbGFibGVfcmVhc29uKX0pO2NvbnN0IGw9YS5tYXhfZHJhd2Rvd247aWYobC5wZXJjZW50PT09bnVsbClyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KSxzdWI6bC51bmF2YWlsYWJsZV9yZWFzb24/dChgcmVhc29uLiR7bC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGZvb3RlcjpufSk7Y29uc3Qgcz1sLnBlYWtfZGF0ZSYmbC50cm91Z2hfZGF0ZT90KCJwZXJmLmNhcmQubWF4X2RyYXdkb3duX2RhdGVzIix7cGVhazp6KGwucGVha19kYXRlLGMpLHRyb3VnaDp6KGwudHJvdWdoX2RhdGUsYyl9KTp2b2lkIDA7cmV0dXJuIGUuanN4KHkse3RpdGxlOnIsdmFsdWU6ZS5qc3goVyx7dmFsdWU6LWwucGVyY2VudHx8MH0pLHN1YjpzLGZvb3RlcjpufSl9ZnVuY3Rpb24gd2Uoe2RhdGE6YX0pe2NvbnN0IHQ9ZygpLGM9UigpLHI9dCgicGVyZi5jYXJkLmV4Y2VzcyIpLG49dyhhKTtpZighYihhLnN0YXR1cykpcmV0dXJuIGUuanN4KHkse3RpdGxlOnIsdmFsdWU6ZS5qc3goUCx7c3RhdHVzOmEuc3RhdHVzLHJlYXNvbjphLnVuYXZhaWxhYmxlX3JlYXNvbn0pLGZvb3Rlcjp3KGEsYS5leGNlc3NfcmV0dXJucz8uZmluZCh1PT51LnVuYXZhaWxhYmxlX3JlYXNvbik/LnVuYXZhaWxhYmxlX3JlYXNvbil9KTtjb25zdCBsPWEuZXhjZXNzX3JldHVybnMuZmluZCh1PT51LnBlcmNlbnRhZ2VfcG9pbnRzIT09bnVsbCk7aWYoIWx8fGwucGVyY2VudGFnZV9wb2ludHM9PT1udWxsKXtjb25zdCB1PWEuZXhjZXNzX3JldHVybnMuZmluZChoPT5oLnVuYXZhaWxhYmxlX3JlYXNvbik/LnVuYXZhaWxhYmxlX3JlYXNvbjtyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KSxzdWI6dSYmdSE9PWEudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke3V9YCk6dm9pZCAwLGZvb3RlcjpufSl9Y29uc3Qgcz1sLnBlcmNlbnRhZ2VfcG9pbnRzLGk9YS5leGNlc3NfcmV0dXJucy5maWx0ZXIodT0+dSE9PWwpLG89aS5sZW5ndGg/ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBlcmYtZXhjZXNzLWxpc3QiLGNoaWxkcmVuOmkubWFwKHU9PmUuanN4cygic3BhbiIse2NoaWxkcmVuOlt1LmJlbmNobWFyaywiICIsTyh1LnBlcmNlbnRhZ2VfcG9pbnRzLGMpXX0sdS5iZW5jaG1hcmspKX0pOmwuYmVuY2htYXJrO3JldHVybiBlLmpzeCh5LHt0aXRsZTpyLHZhbHVlOmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOnM+MD8idXAiOnM8MD8iZG93biI6ImZsYXQiLGNoaWxkcmVuOk8ocyxjKX0pLHN1YjpvLGZvb3RlcjpufSl9ZnVuY3Rpb24gWih7ZGF0YTphLGZpZWxkOnQsdGl0bGVLZXk6Y30pe2NvbnN0IHI9ZygpLG49cihjKSxsPXcoYSk7aWYoIWIoYS5zdGF0dXMpKXJldHVybiBlLmpzeCh5LHt0aXRsZTpuLHZhbHVlOmUuanN4KFAse3N0YXR1czphLnN0YXR1cyxyZWFzb246YS51bmF2YWlsYWJsZV9yZWFzb259KSxmb290ZXI6dyhhLGFbdF0/LnVuYXZhaWxhYmxlX3JlYXNvbil9KTtjb25zdCBzPWFbdF07aWYoIXN8fCFiKHMuc3RhdHVzKSl7Y29uc3QgdT1zPy51bmF2YWlsYWJsZV9yZWFzb247cmV0dXJuIGUuanN4KHkse3RpdGxlOm4sdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksc3ViOnUmJnUhPT1hLnVuYXZhaWxhYmxlX3JlYXNvbj9yKGByZWFzb24uJHt1fWApOnZvaWQgMCxmb290ZXI6bH0pfWNvbnN0IGk9cy5hbW91bnQhPT1udWxsP2UuanN4KEwse3ZhbHVlOnMuYW1vdW50LGN1cnJlbmN5OmEuY3VycmVuY3ksc2lnbmVkOiEwfSk6ZS5qc3goVyx7dmFsdWU6cy5yZXR1cm5fcGVyY2VudH0pLG89cy52YWx1ZV9raW5kPT09ImFzc2V0X2NoYW5nZSI/YCDCtyAke3IoInBlcmYudmFsdWVfa2luZF9hc3NldF9jaGFuZ2UiKX1gOiIiO3JldHVybiBlLmpzeCh5LHt0aXRsZTpuLHZhbHVlOmksc3ViOmAke3MuZGF0ZX0ke299YCxmb290ZXI6bH0pfWZ1bmN0aW9uIE1lKHtzY29wZTphLHBsYXRmb3JtOnQscmFuZ2U6YyxlcG9jaDpyfSl7Y29uc3Qgbj1nKCksbD1UKCgpPT5lZShhLGMsdCksW2EsdCxjLHJdKTtpZihsLnBoYXNlPT09ImxvYWRpbmciKXtjb25zdCBpPVsicGVyZi5jYXJkLnR3ciIsInBlcmYuY2FyZC5hbW91bnQiLCJwZXJmLmNhcmQubWF4X2RyYXdkb3duIiwicGVyZi5jYXJkLmV4Y2VzcyIsInBlcmYuY2FyZC5iZXN0X2RheSIsInBlcmYuY2FyZC53b3JzdF9kYXkiXTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToicGVyZi1rcGktZ3JpZCIsY2hpbGRyZW46aS5tYXAobz0+ZS5qc3goeSx7dGl0bGU6bihvKSx2YWx1ZTplLmpzeChTLHtoZWlnaHQ6Mjgsd2lkdGg6IjcwJSJ9KX0sbykpfSl9aWYobC5waGFzZT09PSJlcnJvciIpe2NvbnN0IGk9WyJwZXJmLmNhcmQudHdyIiwicGVyZi5jYXJkLmFtb3VudCIsInBlcmYuY2FyZC5tYXhfZHJhd2Rvd24iLCJwZXJmLmNhcmQuZXhjZXNzIiwicGVyZi5jYXJkLmJlc3RfZGF5IiwicGVyZi5jYXJkLndvcnN0X2RheSJdO3JldHVybiBlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWtwaS1ncmlkIixjaGlsZHJlbjppLm1hcCgobyx1KT0+ZS5qc3goeSx7dGl0bGU6bihvKSx2YWx1ZTplLmpzeChQLHtzdGF0dXM6InJlYWRfZmFpbGVkIn0pLGZvb3Rlcjp1PT09MD9lLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazpsLnJlbG9hZCxjaGlsZHJlbjpuKCJjb21tb24ucmV0cnkiKX0pOnZvaWQgMH0sbykpfSl9Y29uc3Qgcz1sLmRhdGE7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzZWN0aW9uLXN0YWNrIixjaGlsZHJlbjpbcy51bmF2YWlsYWJsZV9yZWFzb24mJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJtZXRyaWMtbm90ZSIsY2hpbGRyZW46cy51bmF2YWlsYWJsZV9yZWFzb249PT0ibWl4ZWRfY3VycmVuY3kiP24oInBlcmYubmF0aXZlX3RvdGFsc19ub3RlIik6bihgcmVhc29uLiR7cy51bmF2YWlsYWJsZV9yZWFzb259YCl9KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1rcGktZ3JpZCIsY2hpbGRyZW46W2UuanN4KGtlLHtkYXRhOnN9KSxlLmpzeChOZSx7ZGF0YTpzfSksZS5qc3goJGUse2RhdGE6c30pLGUuanN4KHdlLHtkYXRhOnN9KSxlLmpzeChaLHtkYXRhOnMsZmllbGQ6ImJlc3RfZGF5Iix0aXRsZUtleToicGVyZi5jYXJkLmJlc3RfZGF5In0pLGUuanN4KFose2RhdGE6cyxmaWVsZDoid29yc3RfZGF5Iix0aXRsZUtleToicGVyZi5jYXJkLndvcnN0X2RheSJ9KV19KV19KX1jb25zdCBDZT1bInZhcigtLWJlbmNobWFyay0xKSIsInZhcigtLWJlbmNobWFyay0yKSIsInZhcigtLWJlbmNobWFyay0zKSIsInZhcigtLWJlbmNobWFyay00KSJdLEc9e+agh+aZrjUwMDoicGVyZi5iZW5jaG1hcmtfc3A1MDAiLOe6s+aWr+i+vuWFizEwMDoicGVyZi5iZW5jaG1hcmtfbmFzZGFxMTAwIizpgZPnkLzmlq/lt6XkuJrlubPlnYfmjIfmlbA6InBlcmYuYmVuY2htYXJrX2RvdyIs572X57SgMjAwMDoicGVyZi5iZW5jaG1hcmtfcnVzc2VsbDIwMDAifTtmdW5jdGlvbiBTZShhKXtyZXR1cm4gYT09PSJ1bmFkanVzdGVkX2Fzc2V0X3JhdGlvIj8icGVyZi5yZXR1cm5fa2luZF91bmFkanVzdGVkIjoicGVyZi5yZXR1cm5fa2luZF90d3IifWZ1bmN0aW9uIFUoe3BvaW50czphLGJlbmNobWFya3M6dCxyZXR1cm5LaW5kOmMsbW9kZTpyLGFyaWFMYWJlbDpuLGRpc2FibGVkOmx9KXtjb25zdCBzPWcoKSxpPVt7aWQ6Im1haW4iLGxhYmVsOnMoInBlcmYucmV0dXJuc19tYWluX3NlcmllcyIpLGNvbG9yOiJ2YXIoLS1hY2NlbnQpIixwb2ludHM6YSxwcmltYXJ5OiEwfSwuLi50LnNsaWNlKDAsNCkubWFwKChvLHUpPT4oe2lkOm8uaWQsbGFiZWw6cyhHW28uaWRdfHwicGVyZi5iZW5jaG1hcmtfdW5rbm93biIpLGNvbG9yOkNlW3VdLHBvaW50czpvLnBvaW50c30pKV07cmV0dXJuIGUuanN4cygiZGl2Iix7Y2hpbGRyZW46W2UuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLHN0eWxlOnttYXJnaW5Ub3A6MH0sY2hpbGRyZW46ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBlcmYta2luZCIsY2hpbGRyZW46cyhTZShjKSl9KX0pLGUuanN4KHZlLHtzZXJpZXM6aSxtb2RlOnIsYXJpYUxhYmVsOm59KSxsJiZsLmxlbmd0aD4wJiZlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWJlbmNobWFya3Mtb2ZmIixjaGlsZHJlbjpsLm1hcChvPT5lLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InBlcmYtYmVuY2htYXJrLW9mZiIsdGl0bGU6by51bmF2YWlsYWJsZV9yZWFzb24/cyhgcmVhc29uLiR7by51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGNoaWxkcmVuOltzKEdbby5pZF18fCJwZXJmLmJlbmNobWFya191bmtub3duIiksIiDCtyAiLHMoYHN0YXRlLiR7by5zdGF0dXN9YCldfSxvLmlkKSl9KV19KX1mdW5jdGlvbiBGZSh7c2NvcGU6YSxwbGF0Zm9ybTp0LHJhbmdlOmMsZXBvY2g6cn0pe2NvbnN0IG49ZygpLFtsLHNdPSQudXNlU3RhdGUoImN1bXVsYXRpdmUiKSxpPVQoKCk9PmNlKGEsYyx0KSxbYSx0LGMscl0pO2xldCBvLHU9bnVsbDtpZihpLnBoYXNlPT09ImxvYWRpbmciKW89ZS5qc3goUyx7aGVpZ2h0OjI4MH0pO2Vsc2UgaWYoaS5waGFzZT09PSJlcnJvciIpbz1lLmpzeChELHtvblJldHJ5OmkucmVsb2FkfSk7ZWxzZXtjb25zdCBoPWkuZGF0YTt1PWgsYT09PSJhbGwiJiZoLnBlcl9jdXJyZW5jeS5sZW5ndGg+MCYmKGIoaC5zdGF0dXMpfHxoLnVuYXZhaWxhYmxlX3JlYXNvbj09PSJtaXhlZF9jdXJyZW5jeSIpP289ZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e21hcmdpblRvcDowfSxjaGlsZHJlbjpuKCJwZXJmLnBlcl9jdXJyZW5jeV9ub3RlIil9KSxoLnBlcl9jdXJyZW5jeS5tYXAoZj0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBlcmYtY3VycmVuY3ktYmxvY2siLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjbGFzc05hbWU6InBlcmYtY3VycmVuY3ktdGl0bGUiLGNoaWxkcmVuOmYuY3VycmVuY3l9KSxiKGYuc3RhdHVzKSYmZi5wb2ludHMubGVuZ3RoPjA/ZS5qc3goVSx7cG9pbnRzOmYucG9pbnRzLGJlbmNobWFya3M6Zi5iZW5jaG1hcmtzLHJldHVybktpbmQ6Zi5yZXR1cm5fa2luZCxtb2RlOmwsYXJpYUxhYmVsOmAke24oInBlcmYucmV0dXJuc190aXRsZSIpfSAke2YuY3VycmVuY3l9YH0pOmUuanN4KE4se3RpdGxlOm4oYHN0YXRlLiR7YihmLnN0YXR1cyk/Im5vX2RhdGEiOmYuc3RhdHVzfWApLGJvZHk6Zi51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7Zi51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwfSldfSxmLmN1cnJlbmN5KSldfSk6YihoLnN0YXR1cyk/aC5ub19jb21tb25fZGF0ZT9vPWUuanN4KE4se3RpdGxlOm4oInN0YXRlLnVuYXZhaWxhYmxlIiksYm9keTpuKCJyZWFzb24ubm9fY29tbW9uX2RhdGUiKX0pOmgucG9pbnRzLmxlbmd0aD09PTA/bz1lLmpzeChOLHt0aXRsZTpuKCJzdGF0ZS5ub19kYXRhIiksYm9keTpoLnVuYXZhaWxhYmxlX3JlYXNvbj9uKGByZWFzb24uJHtoLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDB9KTpvPWUuanN4KFUse3BvaW50czpoLnBvaW50cyxiZW5jaG1hcmtzOmguYmVuY2htYXJrcyxyZXR1cm5LaW5kOmgucmV0dXJuX2tpbmQsbW9kZTpsLGFyaWFMYWJlbDpuKCJwZXJmLnJldHVybnNfdGl0bGUiKSxkaXNhYmxlZDpoLmJlbmNobWFya19hdmFpbGFiaWxpdHkuZmlsdGVyKGY9PiFiKGYuc3RhdHVzKSl9KTpvPWUuanN4KE4se3RpdGxlOm4oYHN0YXRlLiR7aC5zdGF0dXN9YCksYm9keTpoLnVuYXZhaWxhYmxlX3JlYXNvbj9uKGByZWFzb24uJHtoLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDB9KX1yZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1jYXJkLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOm4oInBlcmYucmV0dXJuc190aXRsZSIpfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToicGVyZi1tb2RlLXRvZ2dsZSIsY2hpbGRyZW46ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjpuKCJwZXJmLnJldHVybnNfdGl0bGUiKSxjaGlsZHJlbjpbZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHtsPT09ImN1bXVsYXRpdmUiPyIgYWN0aXZlIjoiIn1gLCJhcmlhLXByZXNzZWQiOmw9PT0iY3VtdWxhdGl2ZSIsb25DbGljazooKT0+cygiY3VtdWxhdGl2ZSIpLGNoaWxkcmVuOm4oInBlcmYucmV0dXJuc19jdW11bGF0aXZlIil9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke2w9PT0iZGFpbHkiPyIgYWN0aXZlIjoiIn1gLCJhcmlhLXByZXNzZWQiOmw9PT0iZGFpbHkiLG9uQ2xpY2s6KCk9PnMoImRhaWx5IiksY2hpbGRyZW46bigicGVyZi5yZXR1cm5zX2RhaWx5Iil9KV19KX0pLGUuanN4cygic3BhbiIse2NsYXNzTmFtZToicGVyZi1oZWFkLW1ldGEiLGNoaWxkcmVuOlt1JiZ1LnN0YXR1cyE9PSJvayImJmIodS5zdGF0dXMpJiZlLmpzeChLLHtzdGF0dXM6dS5zdGF0dXMscmVhc29uOnUudW5hdmFpbGFibGVfcmVhc29ufSksdSYmYih1LnN0YXR1cykmJmUuanN4KFYse3ZhbHVlOnUuYXNfb2Z9KV19KV19KSxvLGUuanN4KGllLHt0aXRsZUtleToicGVyZi5ob3dfY2FsY3VsYXRlZCIsYm9keUtleToicGVyZi5tZXRob2RfYm9keSJ9KV19KX1jb25zdCBSZT04MDAscT0yMjAsQz17dG9wOjEyLHJpZ2h0OjEyLGJvdHRvbToyNCxsZWZ0OjY0fTtmdW5jdGlvbiBUZSh7cG9pbnRzOmEsY3VycmVuY3k6dCxhcmlhTGFiZWw6Y30pe2NvbnN0IHI9UigpLG49ZygpLHtwcmVmczpsfT1JKCksW3MsaV09JC51c2VTdGF0ZShudWxsKSxvPSQudXNlUmVmKG51bGwpLFt1LGhdPSQudXNlU3RhdGUoUmUpOyQudXNlRWZmZWN0KCgpPT57Y29uc3QgcD1vLmN1cnJlbnQ7aWYoIXApcmV0dXJuO2NvbnN0IHY9bmV3IFJlc2l6ZU9ic2VydmVyKChbRl0pPT57Ri5jb250ZW50UmVjdC53aWR0aD4wJiZoKEYuY29udGVudFJlY3Qud2lkdGgpfSk7cmV0dXJuIHYub2JzZXJ2ZShwKSwoKT0+di5kaXNjb25uZWN0KCl9LFtdKTtjb25zdHt5TWluOmYseU1heDptfT0kLnVzZU1lbW8oKCk9PntpZighYS5sZW5ndGgpcmV0dXJue3lNaW46MCx5TWF4OjF9O2xldCBwPTEvMCx2PS0xLzA7Zm9yKGNvbnN0IEUgb2YgYSlFLnZhbHVlPHAmJihwPUUudmFsdWUpLEUudmFsdWU+diYmKHY9RS52YWx1ZSk7cD09PXYmJihwLT0xLHYrPTEpO2NvbnN0IEY9KHYtcCkqLjA4O3JldHVybnt5TWluOnAtRix5TWF4OnYrRn19LFthXSksZD1wPT5sLmhpZGVBbW91bnRzPyLigKLigKLigKIiOnVlKHAsdCxyKSxqPVswLDEsMiwzLDRdLm1hcChwPT5mKyhtLWYpKnAvNCkseD17bGVmdDpNYXRoLm1heChDLmxlZnQsLi4uai5tYXAocD0+ZChwKS5sZW5ndGgqOCsxNikpfSxfPU1hdGgubWF4KHUseC5sZWZ0KzgwKSxrPXA9PngubGVmdCsoYS5sZW5ndGg8PTE/MDpwLyhhLmxlbmd0aC0xKSooXy14LmxlZnQtQy5yaWdodCkpLE09cD0+Qy50b3ArKDEtKHAtZikvKG0tZikpKihxLUMudG9wLUMuYm90dG9tKSxuZT1hLm1hcCgocCx2KT0+YCR7cC5icmVha0JlZm9yZXx8dj09PTA/Ik0iOiJMIn0ke2sodikudG9GaXhlZCgyKX0sJHtNKHAudmFsdWUpLnRvRml4ZWQoMil9YCkuam9pbigiIiksQj1bXTthLmZvckVhY2goKHAsdik9Pnsodj09PTB8fHAuYnJlYWtCZWZvcmUpJiZCLnB1c2goW10pLEIuYXQoLTEpLnB1c2godil9KTtjb25zdCByZT1CLm1hcChwPT5gTSR7ayhwWzBdKS50b0ZpeGVkKDIpfSwke00oZikudG9GaXhlZCgyKX0ke3AubWFwKHY9PmBMJHtrKHYpLnRvRml4ZWQoMil9LCR7TShhW3ZdLnZhbHVlKS50b0ZpeGVkKDIpfWApLmpvaW4oIiIpfUwke2socC5hdCgtMSkpLnRvRml4ZWQoMil9LCR7TShmKS50b0ZpeGVkKDIpfVpgKS5qb2luKCIiKSxsZT1wPT57Y29uc3Qgdj1vLmN1cnJlbnQ7aWYoIXZ8fGEubGVuZ3RoPT09MClyZXR1cm47Y29uc3QgRj12LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9KHAtRi5sZWZ0KS9GLndpZHRoKl8sb2U9TWF0aC5yb3VuZCgoRS14LmxlZnQpLyhfLXgubGVmdC1DLnJpZ2h0KSooYS5sZW5ndGgtMSkpO2koTWF0aC5tYXgoMCxNYXRoLm1pbihhLmxlbmd0aC0xLG9lKSkpfSxBPXMhPT1udWxsP2Fbc106bnVsbDtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNoYXJ0LWZyYW1lIixyZWY6byxjaGlsZHJlbjpbZS5qc3hzKCJzdmciLHtjbGFzc05hbWU6ImNoYXJ0Iix2aWV3Qm94OmAwIDAgJHtffSAke3F9YCxyb2xlOiJpbWciLCJhcmlhLWxhYmVsIjpjLHRhYkluZGV4OjAsb25Nb3VzZU1vdmU6cD0+bGUocC5jbGllbnRYKSxvbk1vdXNlTGVhdmU6KCk9PmkobnVsbCksb25Gb2N1czooKT0+aShwPT5wPz8wKSxvbkJsdXI6KCk9PmkobnVsbCksY2hpbGRyZW46W2oubWFwKChwLHYpPT5lLmpzeHMoImciLHtjaGlsZHJlbjpbZS5qc3goImxpbmUiLHt4MTp4LmxlZnQseDI6Xy1DLnJpZ2h0LHkxOk0ocCkseTI6TShwKSxzdHJva2U6InZhcigtLWxpbmUpIixzdHJva2VXaWR0aDoiMSJ9KSxlLmpzeCgidGV4dCIse3g6eC5sZWZ0LTYseTpNKHApKzQsdGV4dEFuY2hvcjoiZW5kIixmb250U2l6ZToiMTMiLGZpbGw6InZhcigtLW11dGVkKSIsY2hpbGRyZW46ZChwKX0pXX0sdikpLGEubGVuZ3RoPjAmJmUuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3goInBhdGgiLHtkOnJlLGZpbGw6InZhcigtLWFjY2VudCkiLG9wYWNpdHk6IjAuMTIifSksZS5qc3goInBhdGgiLHtkOm5lLGZpbGw6Im5vbmUiLHN0cm9rZToidmFyKC0tYWNjZW50KSIsc3Ryb2tlV2lkdGg6IjIuNSIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixzdHJva2VMaW5lY2FwOiJyb3VuZCJ9KSxCLmZpbHRlcihwPT5wLmxlbmd0aD09PTEpLm1hcCgoW3BdKT0+ZS5qc3goImNpcmNsZSIse2N4OmsocCksY3k6TShhW3BdLnZhbHVlKSxyOiIzIixmaWxsOiJ2YXIoLS1hY2NlbnQpIn0sYVtwXS5kYXRlKSksYS5tYXAoKHAsdik9PnAuZXh0ZXJuYWxGbG93P2UuanN4KCJnIix7Y2hpbGRyZW46ZS5qc3goImNpcmNsZSIse2N4OmsodiksY3k6TShwLnZhbHVlKSxyOiI0IixmaWxsOiJ2YXIoLS1zdXJmYWNlKSIsc3Ryb2tlOiJ2YXIoLS1hY2NlbnQpIixzdHJva2VXaWR0aDoiMiIsY2hpbGRyZW46ZS5qc3goInRpdGxlIix7Y2hpbGRyZW46YCR7cC5kYXRlfSDCtyAke24oInBlcmYuYXNzZXRzX2Zsb3dfbWFyayIpfWB9KX0pfSxwLmRhdGUpOm51bGwpXX0pLHMhPT1udWxsJiZBJiZlLmpzeCgibGluZSIse3gxOmsocykseDI6ayhzKSx5MTpDLnRvcCx5MjpxLUMuYm90dG9tLHN0cm9rZToidmFyKC0tbXV0ZWQpIixzdHJva2VXaWR0aDoiMSJ9KV19KSxzIT09bnVsbCYmQSYmZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNoYXJ0LXRvb2x0aXAiLHN0eWxlOntsZWZ0OmAke01hdGgubWluKE1hdGgubWF4KGsocykvXyoxMDAsOCksODApfSVgLHRvcDo4fSxjaGlsZHJlbjpbZS5qc3goImRpdiIse2NsYXNzTmFtZToidG9vbHRpcC1kYXRlIixjaGlsZHJlbjpBLmRhdGV9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJ0b29sdGlwLXJvdyIsY2hpbGRyZW46ZS5qc3goInN0cm9uZyIse2NoaWxkcmVuOmQoQS52YWx1ZSl9KX0pLEEuZXh0ZXJuYWxGbG93P2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ0b29sdGlwLXJvdyIsY2hpbGRyZW46W24oInBlcmYuYXNzZXRzX2Zsb3dfbWFyayIpLCI6ICIsZChBLmV4dGVybmFsRmxvdyldfSk6bnVsbF19KV19KX1mdW5jdGlvbiBBZSh7c3RhdHVzOmEscG9pbnRzOnQsY292ZXJhZ2U6YyxjdXJyZW5jeTpyLGFjY291bnRzOm49W119KXtjb25zdCBsPWcoKSxzPWFlKCk7aWYoYT09PSJvayImJiF0LnNvbWUodT0+dS5wYXJ0aWFsKSYmIWM/LnRydW5jYXRlZClyZXR1cm4gbnVsbDtjb25zdCBpPVsuLi5uZXcgU2V0KFsuLi50LmZsYXRNYXAodT0+Wy4uLnUubWlzc2luZ19hY2NvdW50c3x8W10sLi4udS5mb3J3YXJkX2ZpbGxlZF9hY2NvdW50c3x8W11dKSwuLi5jPy5taXNzaW5nX2FjY291bnRzfHxbXSwuLi5jPy5leGNsdWRlZF9hY2NvdW50c3x8W10sLi4uYz8ucmVhZF9mYWlsdXJlc3x8W11dKV0sbz1bLi4ubmV3IFNldChpLm1hcCh1PT57Y29uc3QgaD1uLmZpbmQoZj0+dT09PWYuYWNjb3VudF9hbGlhc3x8dT09PWYuYWNjb3VudF9yZWZ8fHU9PT1gJHtmLnBsYXRmb3JtfToke2YuYWNjb3VudF9hbGlhc306JHtyfWApO3JldHVybiBzLmFjY291bnQoaD8uYWNjb3VudF9hbGlhcyxoPy5wbGF0Zm9ybSl9KSldO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixyb2xlOiJzdGF0dXMiLGNoaWxkcmVuOltlLmpzeHMoc2Use3RvbmU6Indhcm4iLGNoaWxkcmVuOltyP2Ake3J9IMK3IGA6IiIsbChhPT09InN0YWxlIj8icGVyZi5oaXN0b3J5X3N0YWxlIjoicGVyZi5oaXN0b3J5X2luY29tcGxldGUiKV19KSxlLmpzeCgicCIse2NoaWxkcmVuOmwoInBlcmYuaGlzdG9yeV9jb3ZlcmFnZV9ub3RlIil9KSxvLmxlbmd0aD4wJiZlLmpzeCgicCIse2NoaWxkcmVuOmwoInBlcmYuaGlzdG9yeV9hZmZlY3RlZF9hY2NvdW50cyIse2FjY291bnRzOm8uam9pbigiIMK3ICIpfSl9KV19KX1mdW5jdGlvbiBFZSh7c2NvcGU6YSxwbGF0Zm9ybTp0LHJhbmdlOmMsZXBvY2g6cn0pe2NvbnN0IG49ZygpLGw9VCgoKT0+ZGUoYSxjLHQpLFthLHQsYyxyXSk7bGV0IHMsaSxvLHU9bnVsbCxoPW51bGwsZj1udWxsO2lmKGwucGhhc2U9PT0ibG9hZGluZyIpbz1lLmpzeChTLHtoZWlnaHQ6MjIwfSk7ZWxzZSBpZihsLnBoYXNlPT09ImVycm9yIilvPWUuanN4KEQse29uUmV0cnk6bC5yZWxvYWR9KTtlbHNle2NvbnN0IG09bC5kYXRhO3M9bS5wZXJfY3VycmVuY3k/Lmxlbmd0aCYmbS51bmF2YWlsYWJsZV9yZWFzb24hPT0ic3RvcmVkX3JlY29yZHNfdW5yZWFkYWJsZSI/ZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeChqZSx7dG90YWxzOm0ucGVyX2N1cnJlbmN5fSksZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46bigicGVyZi5uYXRpdmVfdG90YWxzX25vdGUiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOmUuanN4KHRlLHtjb3VudHM6bS5mcmVzaG5lc3Nfc3VtbWFyeX0pfSldfSk6bnVsbCx1PW0uc3RhdHVzLGg9bS51bmF2YWlsYWJsZV9yZWFzb24sZj1tLmFzX29mO2NvbnN0IGQ9bS5jdXJ2ZV9zdGF0dXN8fG0uc3RhdHVzLGo9bS5jdXJ2ZV91bmF2YWlsYWJsZV9yZWFzb249PT12b2lkIDA/bS51bmF2YWlsYWJsZV9yZWFzb246bS5jdXJ2ZV91bmF2YWlsYWJsZV9yZWFzb24seD1tLmhpc3RvcnlfcGVyX2N1cnJlbmN5Py5sZW5ndGg/bS5oaXN0b3J5X3Blcl9jdXJyZW5jeTpbe2N1cnJlbmN5Om0uY3VycmVuY3ksc3RhdHVzOmQsY292ZXJhZ2U6bS5jdXJ2ZV9jb3ZlcmFnZSxwb2ludHM6bS5wb2ludHN9XTtpZihpPXgubWFwKF89PmUuanN4KEFlLHsuLi5fLHN0YXR1czp4Lmxlbmd0aD09PTE/ZDpfLnN0YXR1cyxhY2NvdW50czptLmFjY291bnRfZnJlc2huZXNzfSxfLmN1cnJlbmN5fHwiaGlzdG9yeSIpKSxtLnBlcl9jdXJyZW5jeT8ubGVuZ3RoJiZqPT09Im1peGVkX2N1cnJlbmN5IilvPW51bGw7ZWxzZSBpZighYihkKSlvPWUuanN4KE4se3RpdGxlOm4oYHN0YXRlLiR7ZH1gKSxib2R5Omo/bihgcmVhc29uLiR7an1gKTp2b2lkIDB9KTtlbHNlIGlmKGo9PT0ibWl4ZWRfY3VycmVuY3kiKW89ZS5qc3goTix7dGl0bGU6bigicGVyZi5taXhlZF9jdXJyZW5jeV90aXRsZSIpLGJvZHk6bigicmVhc29uLm1peGVkX2N1cnJlbmN5Iil9KTtlbHNlIGlmKG0ucG9pbnRzLmxlbmd0aD09PTApbz1lLmpzeChOLHt0aXRsZTpuKCJzdGF0ZS5ub19kYXRhIil9KTtlbHNle2NvbnN0IF89bS5wb2ludHM7bz1lLmpzeChUZSx7cG9pbnRzOl8sY3VycmVuY3k6bS5jdXJyZW5jeSxhcmlhTGFiZWw6bigicGVyZi5hc3NldHNfdGl0bGUiKX0pfX1yZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1jYXJkLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgiaDIiLHtjbGFzc05hbWU6ImNhcmQtdGl0bGUiLGNoaWxkcmVuOm4oInBlcmYuYXNzZXRzX3RpdGxlIil9KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InBlcmYtaGVhZC1tZXRhIixjaGlsZHJlbjpbdSYmdSE9PSJvayImJmIodSkmJmUuanN4KEsse3N0YXR1czp1LHJlYXNvbjpofSksdSYmYih1KSYmZS5qc3goVix7dmFsdWU6Zn0pXX0pXX0pLHMsaSxvLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOm4oInBlcmYuYXNzZXRzX25vdGUiKX0pXX0pfWNvbnN0IERlPVsiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIl0sUGU9e01vbjoi5LiAIixUdWU6IuS6jCIsV2VkOiLkuIkiLFRodToi5ZubIixGcmk6IuS6lCJ9O2Z1bmN0aW9uIFEoYSx0KXtpZihhLnJldHVybl9wZXJjZW50PT09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShhLnJldHVybl9wZXJjZW50KXx8dDw9MClyZXR1cm47Y29uc3QgYz1NYXRoLm1pbigxLE1hdGguYWJzKGEucmV0dXJuX3BlcmNlbnQpL3QpLHI9OCtNYXRoLnJvdW5kKGMqNDApO3JldHVybmBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tJHthLnJldHVybl9wZXJjZW50PjA/InVwIjoiZG93biJ9KSAke3J9JSwgdHJhbnNwYXJlbnQpYH1mdW5jdGlvbiBMZSh7eWVhcjphLG1vbnRoOnQsY2VsbHM6Yyxvbk5hdmlnYXRlOnJ9KXtjb25zdCBuPWcoKSxsPVIoKSx7cHJlZnM6c309SSgpLGk9TWF0aC5tYXgoMCwuLi5jLm1hcChkPT5kLnJldHVybl9wZXJjZW50IT09bnVsbCYmTnVtYmVyLmlzRmluaXRlKGQucmV0dXJuX3BlcmNlbnQpP01hdGguYWJzKGQucmV0dXJuX3BlcmNlbnQpOjApKSxvPWQ9PmQucmV0dXJuX3BlcmNlbnQhPT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZC5yZXR1cm5fcGVyY2VudCk/SChkLnJldHVybl9wZXJjZW50LGwpOmQuYW1vdW50IT09bnVsbCYmTnVtYmVyLmlzRmluaXRlKGQuYW1vdW50KT9zLmhpZGVBbW91bnRzPyLigKLigKLigKIiOlN0cmluZyhNYXRoLnJvdW5kKGQuYW1vdW50KSk6IiI7aWYodD09PW51bGwpcmV0dXJuIGUuanN4cygiZGl2Iix7Y2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYWxlbmRhci1uYXYiLGNoaWxkcmVuOltlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+cihhLTEsbnVsbCksImFyaWEtbGFiZWwiOiLigLkiLGNoaWxkcmVuOiLigLkifSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImN1cnJlbnQgbnVtIixjaGlsZHJlbjphfSksZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSBidXR0b24tc20iLG9uQ2xpY2s6KCk9PnIoYSsxLG51bGwpLCJhcmlhLWxhYmVsIjoi4oC6IixjaGlsZHJlbjoi4oC6In0pXX0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6ImNhbGVuZGFyLXllYXItZ3JpZCIsc3R5bGU6e21hcmdpblRvcDoxMn0sY2hpbGRyZW46Yy5tYXAoZD0+ZS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgY2FsZW5kYXItY2VsbCR7ZC5yZXR1cm5fcGVyY2VudD09PW51bGwmJmQuYW1vdW50PT09bnVsbD8iIGNlbGwtZW1wdHkiOiIifWAsc3R5bGU6e2JhY2tncm91bmQ6UShkLGkpfSx0aXRsZTpkLnVuYXZhaWxhYmxlX3JlYXNvbj9uKGByZWFzb24uJHtkLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDAsb25DbGljazooKT0+ZC5tb250aCYmcihhLE51bWJlcihkLm1vbnRoLnNwbGl0KCItIilbMV0pKSxjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImNlbGwtZGF0ZSIsY2hpbGRyZW46ZC5tb250aH0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOmBjZWxsLXZhbHVlICR7ZC5yZXR1cm5fcGVyY2VudCE9PW51bGw/ZC5yZXR1cm5fcGVyY2VudD4wPyJ1cCI6ZC5yZXR1cm5fcGVyY2VudDwwPyJkb3duIjoiZmxhdCI6IiJ9YCxjaGlsZHJlbjpvKGQpfHwiwqAifSldfSxkLm1vbnRoKSl9KV19KTtjb25zdCB1PW5ldyBNYXAoYy5maWx0ZXIoZD0+ZC5kYXRlKS5tYXAoZD0+W2QuZGF0ZSxkXSkpLGg9bmV3IERhdGUoRGF0ZS5VVEMoYSx0LDApKS5nZXRVVENEYXRlKCksZj1bXTtsZXQgbT1bXTtmb3IobGV0IGQ9MTtkPD1oO2QrKyl7Y29uc3Qgaj1gJHthfS0ke1N0cmluZyh0KS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKGQpLnBhZFN0YXJ0KDIsIjAiKX1gLHg9bmV3IERhdGUoYCR7an1UMDA6MDA6MDBaYCkuZ2V0VVRDRGF5KCk7aWYoeD09PTB8fHg9PT02KWNvbnRpbnVlO2NvbnN0IF89eC0xO2ZvcihfPT09MCYmbS5sZW5ndGgmJihmLnB1c2gobSksbT1bXSk7bS5sZW5ndGg8XzspbS5wdXNoKG51bGwpO20ucHVzaCh1LmdldChqKXx8e2RhdGU6aixhbW91bnQ6bnVsbCxyZXR1cm5fcGVyY2VudDpudWxsLGN1cnJlbmN5Om51bGwsc3RhdHVzOiJub19kYXRhIix2YWx1ZV9raW5kOiJhc3NldF9jaGFuZ2UiLHVuYXZhaWxhYmxlX3JlYXNvbjpudWxsfSl9cmV0dXJuIG0ubGVuZ3RoJiZmLnB1c2gobSksZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhbGVuZGFyLW5hdiIsY2hpbGRyZW46W2UuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIixvbkNsaWNrOigpPT5yKC4uLnQ9PT0xP1thLTEsMTJdOlthLHQtMV0pLCJhcmlhLWxhYmVsIjoi4oC5IixjaGlsZHJlbjoi4oC5In0pLGUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImN1cnJlbnQgYnV0dG9uIGJ1dHRvbi1zbSIsb25DbGljazooKT0+cihhLG51bGwpLCJhcmlhLWxhYmVsIjpuKCJwZXJmLmNhbGVuZGFyX3llYXIiKSxjaGlsZHJlbjpbYSwiLSIsU3RyaW5nKHQpLnBhZFN0YXJ0KDIsIjAiKV19KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+ciguLi50PT09MTI/W2ErMSwxXTpbYSx0KzFdKSwiYXJpYS1sYWJlbCI6IuKAuiIsY2hpbGRyZW46IuKAuiJ9KV19KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FsZW5kYXItbW9udGgtZ3JpZCIsc3R5bGU6e21hcmdpblRvcDoxMn0sY2hpbGRyZW46W0RlLm1hcChkPT5lLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJjYWxlbmRhci13ZWVrZGF5IixjaGlsZHJlbjpsPT09InpoIj9QZVtkXTpkfSxkKSksZi5mbGF0TWFwKChkLGopPT5bMCwxLDIsMyw0XS5tYXAoeD0+e2NvbnN0IF89ZFt4XTtpZighXylyZXR1cm4gZS5qc3goImRpdiIse30sYCR7an0tJHt4fWApO2NvbnN0IGs9Xy5yZXR1cm5fcGVyY2VudCE9PW51bGx8fF8uYW1vdW50IT09bnVsbDtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YGNhbGVuZGFyLWNlbGwke2s/IiI6IiBjZWxsLWVtcHR5In1gLHN0eWxlOntiYWNrZ3JvdW5kOlEoXyxpKX0sdGl0bGU6Xy51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7Xy51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToiY2VsbC1kYXRlIG51bSIsY2hpbGRyZW46Xy5kYXRlP051bWJlcihfLmRhdGUuc2xpY2UoOCkpOiIifSksayYmZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YGNlbGwtdmFsdWUgJHtfLnJldHVybl9wZXJjZW50IT09bnVsbD9fLnJldHVybl9wZXJjZW50PjA/InVwIjpfLnJldHVybl9wZXJjZW50PDA/ImRvd24iOiJmbGF0IjoiIn1gLGNoaWxkcmVuOm8oXyl9KV19LF8uZGF0ZSl9KSldfSldfSl9ZnVuY3Rpb24gS2Uoe3Njb3BlOmEscGxhdGZvcm06dCxyYW5nZTpjLGVwb2NoOnJ9KXtjb25zdCBuPWcoKSxsPW5ldyBEYXRlLFtzLGldPSQudXNlU3RhdGUoe3llYXI6bC5nZXRGdWxsWWVhcigpLG1vbnRoOmwuZ2V0TW9udGgoKSsxfSksbz1UKCgpPT5wZShhLGMscy55ZWFyLHMubW9udGgsdCksW2EsdCxjLHMueWVhcixzLm1vbnRoLHJdKTtsZXQgdSxoPW51bGwsZj1udWxsLG09bnVsbCxkPSExLGo9ITE7aWYoby5waGFzZT09PSJsb2FkaW5nIil1PWUuanN4KFMse2hlaWdodDoyMjB9KTtlbHNlIGlmKG8ucGhhc2U9PT0iZXJyb3IiKXU9ZS5qc3goRCx7b25SZXRyeTpvLnJlbG9hZH0pO2Vsc2V7Y29uc3QgeD1vLmRhdGE7aD14LnN0YXR1cyxmPXgudW5hdmFpbGFibGVfcmVhc29uLG09eC5hc19vZixkPXgudmFsdWVfa2luZD09PSJhc3NldF9jaGFuZ2UiLGo9eC5jZWxscy5zb21lKF89Pl8ub2JzZXJ2ZWRfYW1vdW50IT09bnVsbCYmXy5vYnNlcnZlZF9hbW91bnQhPT12b2lkIDApLGIoeC5zdGF0dXMpP3guY2VsbHMubGVuZ3RoPT09MD91PWUuanN4KE4se3RpdGxlOm4oInN0YXRlLm5vX2RhdGEiKX0pOnU9ZS5qc3goTGUse3llYXI6eC55ZWFyLG1vbnRoOngubW9udGgsY2VsbHM6eC5jZWxscyxvbk5hdmlnYXRlOihfLGspPT5pKHt5ZWFyOl8sbW9udGg6a30pfSk6dT1lLmpzeChOLHt0aXRsZTpuKGBzdGF0ZS4ke3guc3RhdHVzfWApLGJvZHk6eC51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7eC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwfSl9cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBlcmYtY2FyZC1oZWFkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjpuKCJwZXJmLmNhbGVuZGFyX3RpdGxlIil9KSxkJiZlLmpzeChzZSx7dG9uZToiYWNjZW50IixjaGlsZHJlbjpuKCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIil9KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOm4oInBlcmYuY2FsZW5kYXJfdGl0bGUiKSxjaGlsZHJlbjpbZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHtzLm1vbnRoIT09bnVsbD8iIGFjdGl2ZSI6IiJ9YCwiYXJpYS1wcmVzc2VkIjpzLm1vbnRoIT09bnVsbCxvbkNsaWNrOigpPT5pKHg9Pih7Li4ueCxtb250aDp4Lm1vbnRoPz9uZXcgRGF0ZSgpLmdldE1vbnRoKCkrMX0pKSxjaGlsZHJlbjpuKCJwZXJmLmNhbGVuZGFyX21vbnRoIil9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke3MubW9udGg9PT1udWxsPyIgYWN0aXZlIjoiIn1gLCJhcmlhLXByZXNzZWQiOnMubW9udGg9PT1udWxsLG9uQ2xpY2s6KCk9PmkoeD0+KHsuLi54LG1vbnRoOm51bGx9KSksY2hpbGRyZW46bigicGVyZi5jYWxlbmRhcl95ZWFyIil9KV19KSxlLmpzeHMoInNwYW4iLHtjbGFzc05hbWU6InBlcmYtaGVhZC1tZXRhIixjaGlsZHJlbjpbaCYmaCE9PSJvayImJmIoaCkmJmUuanN4KEsse3N0YXR1czpoLHJlYXNvbjpmfSksaCYmYihoKSYmZS5qc3goVix7dmFsdWU6bX0pXX0pXX0pLHUsaiYmZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46bigicGVyZi5jYWxlbmRhcl9kZXBvc2l0X25vdGUiKX0pXX0pfWZ1bmN0aW9uIFgoe2l0ZW1zOmF9KXtjb25zdCB0PVIoKSxjPU1hdGgubWF4KDFlLTksLi4uYS5tYXAocj0+TWF0aC5hYnMoci52YWx1ZSkpKTtyZXR1cm4gZS5qc3goImRpdiIse2NsYXNzTmFtZToiYmFybGlzdCIsY2hpbGRyZW46YS5tYXAocj0+e2NvbnN0IG49TWF0aC5hYnMoci52YWx1ZSkvYyo1MCxsPXIudmFsdWU+MDtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJhcmxpc3Qtcm93IixjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImJhcmxpc3QtbGFiZWwiLHRpdGxlOnIubGFiZWwsY2hpbGRyZW46ci5sYWJlbH0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6ImJhcmxpc3QtdHJhY2siLHJvbGU6ImltZyIsImFyaWEtbGFiZWwiOmAke3IubGFiZWx9ICR7SChyLnZhbHVlLHQpfWAsY2hpbGRyZW46ZS5qc3goImRpdiIse2NsYXNzTmFtZToiYmFybGlzdC1maWxsIixzdHlsZTp7YmFja2dyb3VuZDpsPyJ2YXIoLS11cCkiOiJ2YXIoLS1kb3duKSIsd2lkdGg6YCR7bn0lYCxsZWZ0Omw/IjUwJSI6YCR7NTAtbn0lYH19KX0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOmBiYXJsaXN0LXZhbHVlICR7bD8idXAiOnIudmFsdWU8MD8iZG93biI6ImZsYXQifWAsY2hpbGRyZW46SChyLnZhbHVlLHQpfSldfSxyLmlkKX0pfSl9Y29uc3QgSj01O2Z1bmN0aW9uIEJlKGEsdCl7Y29uc3QgYz1hLmNvdmVyYWdlO2lmKEFycmF5LmlzQXJyYXkoYykpe2NvbnN0IHI9bmV3IE1hcDtmb3IoY29uc3QgbiBvZiBjKXtjb25zdCBsPW4ucGxhdGZvcm0/dC5wbGF0Zm9ybShuLnBsYXRmb3JtKToiIixzPXIuZ2V0KGwpfHxbXTtzLnB1c2godC5hY2NvdW50KG4uYWNjb3VudF9hbGlhcyxuLnBsYXRmb3JtKSksci5zZXQobCxzKX1yZXR1cm5bLi4ucl0uc29ydCgoW25dLFtsXSk9Pm4ubG9jYWxlQ29tcGFyZShsKSkubWFwKChbbixsXSk9PmAke24/YCR7bn06IGA6IiJ9JHtsLmpvaW4oIiwgIil9YCkuam9pbigiOyAiKXx8bnVsbH1yZXR1cm4gYyYmdHlwZW9mIGM9PSJvYmplY3QiJiZBcnJheS5pc0FycmF5KGMuYWNjb3VudF9hbGlhc2VzKSYmYy5hY2NvdW50X2FsaWFzZXMubGVuZ3RoP2MuYWNjb3VudF9hbGlhc2VzLm1hcChyPT50LmFjY291bnQocikpLmpvaW4oIiwgIik6bnVsbH1mdW5jdGlvbiB6ZSh7dmFsdWU6YX0pe2NvbnN0IHQ9UigpO3JldHVybiBlLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpmZShhLHQpfSl9ZnVuY3Rpb24gV2Uoe3N0YXRlOmF9KXtjb25zdCB0PWcoKSxjPWFlKCk7aWYoYS5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeChTLHtoZWlnaHQ6MzJ9KSxlLmpzeChTLHtoZWlnaHQ6MzJ9KSxlLmpzeChTLHtoZWlnaHQ6MzJ9KV19KTtpZihhLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goRCx7b25SZXRyeTphLnJlbG9hZH0pO2NvbnN0IHI9YS5kYXRhO2lmKCFiKHIuc3RhdHVzKSlyZXR1cm4gZS5qc3goTix7dGl0bGU6dChgc3RhdGUuJHtyLnN0YXR1c31gKSxib2R5OnIudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke3IudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pO2NvbnN0IG49W3tpZDoiYWNjb3VudCIsaGVhZGVyOnQoInBlcmYuY29sLmFjY291bnQiKSxjZWxsOnM9PmMuYWNjb3VudChzLmFjY291bnRfYWxpYXMscy5wbGF0Zm9ybSksc29ydFZhbHVlOnM9PnMuYWNjb3VudF9hbGlhc30se2lkOiJzeW1ib2wiLGhlYWRlcjp0KCJwZXJmLmNvbC5zeW1ib2wiKSxjZWxsOnM9PnMuc3ltYm9sLHNvcnRWYWx1ZTpzPT5zLnN5bWJvbH0se2lkOiJxdWFudGl0eSIsaGVhZGVyOnQoInBlcmYuY29sLnF1YW50aXR5IiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeCh6ZSx7dmFsdWU6cy5xdWFudGl0eX0pLHNvcnRWYWx1ZTpzPT5zLnF1YW50aXR5fSx7aWQ6Im1hcmtldF92YWx1ZSIsaGVhZGVyOmAke3QoInBlcmYuY29sLm1hcmtldF92YWx1ZSIpfSAoJHt0KCJwZXJmLmNvbC5jdXJyZW5jeSIpfSlgLG51bWVyaWM6ITAsY2VsbDpzPT5zLnN0YXR1cyE9PSJvayI/IuKAlCI6ZS5qc3goTCx7dmFsdWU6cy5tYXJrZXRfdmFsdWUsY3VycmVuY3k6cy5jdXJyZW5jeX0pLHNvcnRWYWx1ZTpzPT5zLm1hcmtldF92YWx1ZX0se2lkOiJhdmdfY29zdCIsaGVhZGVyOnQoInBlcmYuY29sLmF2Z19jb3N0IiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeChMLHt2YWx1ZTpzLmF2Z19jb3N0LGN1cnJlbmN5OnMuY3VycmVuY3l9KSxzb3J0VmFsdWU6cz0+cy5hdmdfY29zdH0se2lkOiJ1bnJlYWxpemVkX3BubCIsaGVhZGVyOnQoInBlcmYuY29sLnVucmVhbGl6ZWRfcG5sIiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeChMLHt2YWx1ZTpzLnVucmVhbGl6ZWRfcG5sLGN1cnJlbmN5OnMuY3VycmVuY3ksc2lnbmVkOiEwfSksc29ydFZhbHVlOnM9PnMudW5yZWFsaXplZF9wbmx9LHtpZDoic3RhdHVzIixoZWFkZXI6dCgiY29tbW9uLnN0YXR1cyIpLGNlbGw6cz0+cy5zdGF0dXMhPT0ib2siP2UuanN4KEsse3N0YXR1czpzLnN0YXR1cyxyZWFzb246cy51bmF2YWlsYWJsZV9yZWFzb259KTpudWxsfV0sbD1CZShyLGMpO3JldHVybiBlLmpzeHMoImRpdiIse2NoaWxkcmVuOltlLmpzeHMoInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e21hcmdpblRvcDowfSxjaGlsZHJlbjpbdChyLmxhYmVsX2tleSksbD9gIMK3ICR7dCgicGVyZi5ob2xkaW5nc19jb3ZlcmFnZV9hY2NvdW50cyIse3ZhbHVlOmx9KX1gOiIiXX0pLGUuanN4KGJlLHtjb2x1bW5zOm4scm93czpyLnJvd3Mscm93S2V5OnM9PmAke3MucGxhdGZvcm19OiR7cy5hY2NvdW50X2FsaWFzfXwke3Muc3ltYm9sfWAsZGVmYXVsdFNvcnQ6e2NvbHVtbjoibWFya2V0X3ZhbHVlIixkaXJlY3Rpb246ImRlc2MifSxjYXB0aW9uOnQoInBlcmYuaG9sZGluZ3NfdGl0bGUiKX0pXX0pfWZ1bmN0aW9uIEhlKHtzdGF0ZTphfSl7Y29uc3QgdD1nKCkse3dpbm5lcnM6Yyxsb3NlcnM6cn09JC51c2VNZW1vKCgpPT57aWYoYS5waGFzZSE9PSJyZWFkeSJ8fCFiKGEuZGF0YS5zdGF0dXMpKXJldHVybnt3aW5uZXJzOltdLGxvc2VyczpbXX07Y29uc3Qgbj1hLmRhdGEucm93cy5maWx0ZXIoaT0+aS51bnJlYWxpemVkX3BubCE9PW51bGwmJmkuYXZnX2Nvc3QhPT1udWxsJiZpLnF1YW50aXR5IT09bnVsbCYmaS5hdmdfY29zdCppLnF1YW50aXR5PjApLm1hcChpPT4oe2lkOmAke2kucGxhdGZvcm19OiR7aS5hY2NvdW50X2FsaWFzfXwke2kuc3ltYm9sfWAsbGFiZWw6aS5zeW1ib2wscG5sOmkudW5yZWFsaXplZF9wbmwsdmFsdWU6aS51bnJlYWxpemVkX3BubC8oaS5hdmdfY29zdCppLnF1YW50aXR5KSoxMDB9KSksbD1uLmZpbHRlcihpPT5pLnBubD4wKS5zb3J0KChpLG8pPT5vLnBubC1pLnBubCkuc2xpY2UoMCxKKS5tYXAoKHtpZDppLGxhYmVsOm8sdmFsdWU6dX0pPT4oe2lkOmksbGFiZWw6byx2YWx1ZTp1fSkpLHM9bi5maWx0ZXIoaT0+aS5wbmw8MCkuc29ydCgoaSxvKT0+aS5wbmwtby5wbmwpLnNsaWNlKDAsSikubWFwKCh7aWQ6aSxsYWJlbDpvLHZhbHVlOnV9KT0+KHtpZDppLGxhYmVsOm8sdmFsdWU6dX0pKTtyZXR1cm57d2lubmVyczpsLGxvc2VyczpzfX0sW2FdKTtyZXR1cm4gYS5waGFzZT09PSJsb2FkaW5nIj9lLmpzeChTLHtoZWlnaHQ6MTYwfSk6YS5waGFzZT09PSJlcnJvciI/ZS5qc3goRCx7b25SZXRyeTphLnJlbG9hZH0pOmIoYS5kYXRhLnN0YXR1cyk/IWMubGVuZ3RoJiYhci5sZW5ndGg/ZS5qc3goTix7dGl0bGU6dCgic3RhdGUubm9fZGF0YSIpfSk6ZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbYy5sZW5ndGg+MCYmZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBlcmYtcmFua2luZy1zZWN0aW9uIixjaGlsZHJlbjpbZS5qc3goImgzIix7Y2xhc3NOYW1lOiJwZXJmLXJhbmtpbmctaGVhZGluZyIsY2hpbGRyZW46dCgicGVyZi5yYW5raW5nX3dpbm5lcnMiKX0pLGUuanN4KFgse2l0ZW1zOmN9KV19KSxyLmxlbmd0aD4wJiZlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1yYW5raW5nLXNlY3Rpb24iLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjbGFzc05hbWU6InBlcmYtcmFua2luZy1oZWFkaW5nIixjaGlsZHJlbjp0KCJwZXJmLnJhbmtpbmdfbG9zZXJzIil9KSxlLmpzeChYLHtpdGVtczpyfSldfSksZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46dCgicGVyZi5yYW5raW5nX25vdGUiKX0pXX0pOmUuanN4KE4se3RpdGxlOnQoYHN0YXRlLiR7YS5kYXRhLnN0YXR1c31gKSxib2R5OmEuZGF0YS51bmF2YWlsYWJsZV9yZWFzb24/dChgcmVhc29uLiR7YS5kYXRhLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDB9KX1mdW5jdGlvbiBWZSh7c2NvcGU6YSxwbGF0Zm9ybTp0LHJhbmdlOmMsZXBvY2g6cn0pe2NvbnN0IG49ZygpLGw9VCgoKT0+aGUoYSxjLHQpLFthLHQsYyxyXSk7aWYobC5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gZS5qc3goUyx7aGVpZ2h0OjQ4fSk7aWYobC5waGFzZT09PSJlcnJvciIpcmV0dXJuIGUuanN4KEQse29uUmV0cnk6bC5yZWxvYWR9KTtjb25zdCBzPWwuZGF0YTtyZXR1cm4gcy5zdGF0dXM9PT0ibm90X2Nvbm5lY3RlZCI/ZS5qc3goTix7dGl0bGU6bigic3RhdGUubm90X2Nvbm5lY3RlZCIpLGJvZHk6cy51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7cy51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwfSk6ZS5qc3goTix7dGl0bGU6bihgc3RhdGUuJHtzLnN0YXR1c31gKX0pfWZ1bmN0aW9uIHFlKHtzY29wZTphLHBsYXRmb3JtOnQscmFuZ2U6YyxlcG9jaDpyfSl7Y29uc3Qgbj1nKCksW2wsc109JC51c2VTdGF0ZSgiaG9sZGluZ3MiKSxpPVQoKCk9Pm1lKGEsYyx0KSxbYSx0LGMscl0pO2xldCBvO3JldHVybiBsPT09ImhvbGRpbmdzIj9vPWUuanN4KFdlLHtzdGF0ZTppfSk6bD09PSJyYW5raW5nIj9vPWUuanN4KEhlLHtzdGF0ZTppfSk6bz1lLmpzeChWZSx7c2NvcGU6YSxwbGF0Zm9ybTp0LHJhbmdlOmMsZXBvY2g6cn0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3goZ2Use2lkOiJwZXJmb3JtYW5jZSIsaXRlbXM6W3tpZDoiaG9sZGluZ3MiLGxhYmVsOm4oInBlcmYuaG9sZGluZ3NfdGl0bGUiKX0se2lkOiJyYW5raW5nIixsYWJlbDpuKCJwZXJmLnJhbmtpbmdfdGl0bGUiKX0se2lkOiJ0cmFkZXMiLGxhYmVsOm4oInBlcmYudHJhZGVzX3RpdGxlIil9XSxhY3RpdmU6bCxvbkNoYW5nZTpzLGFyaWFMYWJlbDpuKCJuYXYucGVyZm9ybWFuY2UiKX0pLGUuanN4cygiZGl2Iix7aWQ6InBlcmZvcm1hbmNlLXBhbmVsIixjbGFzc05hbWU6InBlcmYtdGFiLWJvZHkiLHJvbGU6InRhYnBhbmVsIiwiYXJpYS1sYWJlbGxlZGJ5IjpgcGVyZm9ybWFuY2UtdGFiLSR7bH1gLHRhYkluZGV4OjAsY2hpbGRyZW46W2whPT0idHJhZGVzIiYmaS5waGFzZT09PSJyZWFkeSImJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOmUuanN4KHRlLHtjb3VudHM6aS5kYXRhLmZyZXNobmVzc19zdW1tYXJ5fSl9KSxvXX0pXX0pfWZ1bmN0aW9uIFFlKCl7Y29uc3QgYT1nKCksdD1SKCkse3ByZWZzOmN9PUkoKSx7c2NvcGU6cixvcHRpb25zOm59PXhlKCksbD1yPT09ImFsbCI/dm9pZCAwOm4uZmluZChtPT5gJHttLnBsYXRmb3JtfToke20uYWxpYXN9YD09PXIpPy5wbGF0Zm9ybSxbcyxpXT0kLnVzZVN0YXRlKGMuZGVmYXVsdFJhbmdlKSxbbyx1XT0kLnVzZVN0YXRlKDApLGg9KCk9PnUobT0+bSsxKSxmPVQoYXN5bmMoKT0+e2NvbnN0IG09YXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFkubWFwKGo9PmVlKHIsaixsKSkpLGQ9e307cmV0dXJuIG0uZm9yRWFjaCgoaix4KT0+e2NvbnN0IF89WVt4XTtkW19dPWouc3RhdHVzPT09ImZ1bGZpbGxlZCImJmIoai52YWx1ZS5zdGF0dXMpJiZqLnZhbHVlLnR3cl9yZXR1cm5fcGVyY2VudCE9PW51bGw/SChqLnZhbHVlLnR3cl9yZXR1cm5fcGVyY2VudCx0KTpudWxsfSksZH0sW3IsbCx0LG9dKTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBhZ2UiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZS1oZWFkZXIiLGNoaWxkcmVuOltlLmpzeCgiaDEiLHtjbGFzc05hbWU6InBhZ2UtdGl0bGUiLGNoaWxkcmVuOmEoIm5hdi5wZXJmb3JtYW5jZSIpfSksZS5qc3goX2Use3ZhbHVlOnMsb25DaGFuZ2U6aSxyZXR1cm5zOmYucGhhc2U9PT0icmVhZHkiP2YuZGF0YTp2b2lkIDB9KSxlLmpzeCgic3BhbiIse2NsYXNzTmFtZToicGVyZi1zcGFjZXIifSksZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazpoLGNoaWxkcmVuOmEoImNvbW1vbi5yZWZyZXNoIil9KV19KSxlLmpzeChNZSx7c2NvcGU6cixwbGF0Zm9ybTpsLHJhbmdlOnMsZXBvY2g6b30pLGUuanN4KEZlLHtzY29wZTpyLHBsYXRmb3JtOmwscmFuZ2U6cyxlcG9jaDpvfSksZS5qc3goRWUse3Njb3BlOnIscGxhdGZvcm06bCxyYW5nZTpzLGVwb2NoOm99KSxlLmpzeChLZSx7c2NvcGU6cixwbGF0Zm9ybTpsLHJhbmdlOnMsZXBvY2g6b30pLGUuanN4KHFlLHtzY29wZTpyLHBsYXRmb3JtOmwscmFuZ2U6cyxlcG9jaDpvfSldfSl9ZXhwb3J0e1FlIGFzIGRlZmF1bHR9Owo=" }, + "/v2/assets/PerformancePage-Cb4tl4TF.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgZyxiIGFzIHJlLGogYXMgZSxmIGFzIFMsUCBhcyBILE0gYXMgeixrIGFzIFIscCBhcyBXLHEgYXMgVSxTIGFzIEssQSBhcyBWLHIgYXMgJCxkIGFzIG1lLEUgYXMgTCxpIGFzIE4scyBhcyBoZSx0IGFzIE8sdiBhcyBmZSxsIGFzIF9lLHcgYXMgbGUsQiBhcyBvZSx4IGFzIEksYyBhcyB4ZSx5IGFzIHZlLHogYXMgYmUsQyBhcyBqZSxhIGFzIGdlLFIgYXMgeWUsRiBhcyBHfWZyb20iLi9pbmRleC1DWTZpR1BPWC5qcyI7aW1wb3J0e3UgYXMgRn1mcm9tIi4vaG9va3MtQ1JOa1loeDcuanMiO2ltcG9ydHtLIGFzIHl9ZnJvbSIuL0twaUNhcmQtQ1JTamRfM2suanMiO2ltcG9ydHtyIGFzIGosTCBhcyBrZSxDIGFzIE5lLEYgYXMgY2V9ZnJvbSIuL0xpbmVDaGFydC0tWGVHMnlnNS5qcyI7aW1wb3J0e0QgYXMgJGV9ZnJvbSIuL0RhdGFUYWJsZS1Ddk1VLXFHYy5qcyI7aW1wb3J0e1QgYXMgd2V9ZnJvbSIuL1RhYnMtQndYeER2SW0uanMiO2NvbnN0IFk9InBlcmYubWV0aG9kX2RpZXR6X2FwcHJveCIsWj0icGVyZi5tZXRob2RfdW5rbm93biI7ZnVuY3Rpb24gRChhKXtpZighYSlyZXR1cm4iYWJzZW50Ijtjb25zdCBuPWEuY2FzaGZsb3dfbWV0aG9kLG89YS5hcHByb3hpbWF0ZTtyZXR1cm4gbj09PXZvaWQgMCYmbz09PXZvaWQgMD8iYWJzZW50IjpuPT09Im1vZGlmaWVkX2RpZXR6IiYmbz09PSEwPyJkaWV0el9hcHByb3giOiJ1bmtub3duIn1mdW5jdGlvbiBRKGEpe3JldHVybiBEKGEpPT09ImRpZXR6X2FwcHJveCJ9ZnVuY3Rpb24gUCh7c3RhdHVzOmEscmVhc29uOm59KXtjb25zdCBvPWcoKTtyZXR1cm4gZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdGF0ZSIsdGl0bGU6bj9vKGByZWFzb24uJHtufWApOnZvaWQgMCxjaGlsZHJlbjpvKGBzdGF0ZS4ke2F9YCl9KX1mdW5jdGlvbiBNZSh7cmVhc29uOmEsc2hhcmVkOm59KXtjb25zdCBvPWcoKTtyZXR1cm4hYXx8YT09PW4/bnVsbDplLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXJlYXNvbiIsY2hpbGRyZW46byhgcmVhc29uLiR7YX1gKX0pfWZ1bmN0aW9uIHcoYSxuKXtyZXR1cm4gZS5qc3hzKGUuRnJhZ21lbnQse2NoaWxkcmVuOltlLmpzeChLLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZS5qc3goVix7dmFsdWU6YS5hc19vZn0pLGUuanN4KE1lLHtyZWFzb246bixzaGFyZWQ6YS51bmF2YWlsYWJsZV9yZWFzb259KV19KX1mdW5jdGlvbiBDZSh7ZGF0YTphfSl7Y29uc3Qgbj1nKCksbz1EKGEpLHI9bihvPT09InVua25vd24iPyJwZXJmLmNhcmQucmV0dXJuX3ZhbHVlIjoicGVyZi5jYXJkLnR3ciIpO2lmKCFqKGEuc3RhdHVzKSlyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOncoYSxhLm1ldHJpY19yZWFzb25zPy50d3IpfSk7aWYoYS50d3JfcmV0dXJuX3BlcmNlbnQ9PT1udWxsKXtjb25zdCBsPWEubWV0cmljX3JlYXNvbnM/LnR3cnx8YS51bmF2YWlsYWJsZV9yZWFzb247cmV0dXJuIGUuanN4KHkse3RpdGxlOnIsdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImZsYXQiLGNoaWxkcmVuOiLigJQifSksc3ViOm4oYHJlYXNvbi4ke2x8fCJ1bmtub3duIn1gKSxmb290ZXI6dyhhKX0pfWNvbnN0IHQ9bz09PSJkaWV0el9hcHByb3giP24oWSk6bz09PSJ1bmtub3duIj9uKFopOnZvaWQgMDtyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChILHt2YWx1ZTphLnR3cl9yZXR1cm5fcGVyY2VudH0pLHN1Yjp0LGZvb3Rlcjp3KGEpfSl9ZnVuY3Rpb24gU2Uoe2RhdGE6YX0pe2NvbnN0IG49ZygpLG89YS52YWx1ZV9raW5kPT09InBubCI/bigicGVyZi5jYXJkLmFtb3VudCIpOm4oInBlcmYuY2FyZC5hbW91bnRfYXNzZXRfY2hhbmdlIikscj13KGEpO3JldHVybiBqKGEuc3RhdHVzKT9hLnVuYXZhaWxhYmxlX3JlYXNvbj09PSJtaXhlZF9jdXJyZW5jeSJ8fGEuYW1vdW50PT09bnVsbD9lLmpzeCh5LHt0aXRsZTpvLHZhbHVlOmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmbGF0IixjaGlsZHJlbjoi4oCUIn0pLGZvb3RlcjpyfSk6ZS5qc3goeSx7dGl0bGU6byx2YWx1ZTplLmpzeCh6LHt2YWx1ZTphLmFtb3VudCxjdXJyZW5jeTphLmN1cnJlbmN5LHNpZ25lZDohMH0pLGZvb3RlcjpyfSk6ZS5qc3goeSx7dGl0bGU6byx2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOnJ9KX1mdW5jdGlvbiBYKGEsbil7Y29uc3Qgbz1EKGEpO3JldHVybiBvPT09ImRpZXR6X2FwcHJveCI/bihZKTpvPT09InVua25vd24iP24oWik6bnVsbH1mdW5jdGlvbiBUZSh7ZGF0YTphfSl7Y29uc3Qgbj1nKCksbz1SKCkscj1uKEQoYSk9PT0idW5rbm93biI/InBlcmYuZHJhd2Rvd25fcGxhaW5fdGl0bGUiOiJwZXJmLmRyYXdkb3duX3R3cl90aXRsZSIpLHQ9dyhhKTtpZihhLnBlcl9jdXJyZW5jeT8ubGVuZ3RoJiZhLnVuYXZhaWxhYmxlX3JlYXNvbiE9PSJzdG9yZWRfcmVjb3Jkc191bnJlYWRhYmxlIilyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToiY3VycmVuY3ktdG90YWxzIixjaGlsZHJlbjphLnBlcl9jdXJyZW5jeS5tYXAoYz0+e2NvbnN0IHA9Yy5tYXhfZHJhd2Rvd24sZj1YKGMsbik7cmV0dXJuIGUuanN4cygic3BhbiIse2NsYXNzTmFtZToiY3VycmVuY3ktdG90YWwiLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToia3BpLXN1YiIsY2hpbGRyZW46Yy5jdXJyZW5jeX0pLGYmJmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJrcGktc3ViIixjaGlsZHJlbjpmfSkscC5wZXJjZW50PT09bnVsbD9lLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KTplLmpzeChILHt2YWx1ZTotcC5wZXJjZW50fHwwfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImtwaS1zdWIiLGNoaWxkcmVuOnAudW5hdmFpbGFibGVfcmVhc29uP24oYHJlYXNvbi4ke3AudW5hdmFpbGFibGVfcmVhc29ufWApOnAucGVha19kYXRlJiZwLnRyb3VnaF9kYXRlP24oInBlcmYuY2FyZC5tYXhfZHJhd2Rvd25fZGF0ZXMiLHtwZWFrOlcocC5wZWFrX2RhdGUsbyksdHJvdWdoOlcocC50cm91Z2hfZGF0ZSxvKX0pOm51bGx9KV19LGMuY3VycmVuY3kpfSl9KX0pO2lmKCFqKGEuc3RhdHVzKSlyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOncoYSxhLm1heF9kcmF3ZG93bj8udW5hdmFpbGFibGVfcmVhc29uKX0pO2NvbnN0IGw9YS5tYXhfZHJhd2Rvd247aWYobC5wZXJjZW50PT09bnVsbClyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KSxzdWI6bC51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7bC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwLGZvb3Rlcjp0fSk7Y29uc3Qgcz1sLnBlYWtfZGF0ZSYmbC50cm91Z2hfZGF0ZT9uKCJwZXJmLmNhcmQubWF4X2RyYXdkb3duX2RhdGVzIix7cGVhazpXKGwucGVha19kYXRlLG8pLHRyb3VnaDpXKGwudHJvdWdoX2RhdGUsbyl9KTp2b2lkIDAsdT1bWChhLG4pLHNdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgwrcgIil8fHZvaWQgMDtyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChILHt2YWx1ZTotbC5wZXJjZW50fHwwfSksc3ViOnUsZm9vdGVyOnR9KX1mdW5jdGlvbiBSZSh7ZGF0YTphfSl7Y29uc3Qgbj1nKCksbz1SKCkscj1uKCJwZXJmLmNhcmQuZXhjZXNzIiksdD13KGEpO2lmKCFqKGEuc3RhdHVzKSlyZXR1cm4gZS5qc3goeSx7dGl0bGU6cix2YWx1ZTplLmpzeChQLHtzdGF0dXM6YS5zdGF0dXMscmVhc29uOmEudW5hdmFpbGFibGVfcmVhc29ufSksZm9vdGVyOncoYSxhLmV4Y2Vzc19yZXR1cm5zPy5maW5kKGM9PmMudW5hdmFpbGFibGVfcmVhc29uKT8udW5hdmFpbGFibGVfcmVhc29uKX0pO2NvbnN0IGw9YS5leGNlc3NfcmV0dXJucy5maW5kKGM9PmMucGVyY2VudGFnZV9wb2ludHMhPT1udWxsKTtpZighbHx8bC5wZXJjZW50YWdlX3BvaW50cz09PW51bGwpe2NvbnN0IGM9YS5leGNlc3NfcmV0dXJucy5maW5kKHA9PnAudW5hdmFpbGFibGVfcmVhc29uKT8udW5hdmFpbGFibGVfcmVhc29uO3JldHVybiBlLmpzeCh5LHt0aXRsZTpyLHZhbHVlOmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJmbGF0IixjaGlsZHJlbjoi4oCUIn0pLHN1YjpjJiZjIT09YS51bmF2YWlsYWJsZV9yZWFzb24/bihgcmVhc29uLiR7Y31gKTp2b2lkIDAsZm9vdGVyOnR9KX1jb25zdCBzPWwucGVyY2VudGFnZV9wb2ludHMsaT1hLmV4Y2Vzc19yZXR1cm5zLmZpbHRlcihjPT5jIT09bCksdT1pLmxlbmd0aD9lLmpzeCgic3BhbiIse2NsYXNzTmFtZToicGVyZi1leGNlc3MtbGlzdCIsY2hpbGRyZW46aS5tYXAoYz0+ZS5qc3hzKCJzcGFuIix7Y2hpbGRyZW46W2MuYmVuY2htYXJrLCIgIixVKGMucGVyY2VudGFnZV9wb2ludHMsbyldfSxjLmJlbmNobWFyaykpfSk6bC5iZW5jaG1hcms7cmV0dXJuIGUuanN4KHkse3RpdGxlOnIsdmFsdWU6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6cz4wPyJ1cCI6czwwPyJkb3duIjoiZmxhdCIsY2hpbGRyZW46VShzLG8pfSksc3ViOnUsZm9vdGVyOnR9KX1mdW5jdGlvbiBKKHtkYXRhOmEsZmllbGQ6bix0aXRsZUtleTpvfSl7Y29uc3Qgcj1nKCksdD1yKG8pLGw9dyhhKTtpZighaihhLnN0YXR1cykpcmV0dXJuIGUuanN4KHkse3RpdGxlOnQsdmFsdWU6ZS5qc3goUCx7c3RhdHVzOmEuc3RhdHVzLHJlYXNvbjphLnVuYXZhaWxhYmxlX3JlYXNvbn0pLGZvb3Rlcjp3KGEsYVtuXT8udW5hdmFpbGFibGVfcmVhc29uKX0pO2NvbnN0IHM9YVtuXTtpZighc3x8IWoocy5zdGF0dXMpKXtjb25zdCBjPXM/LnVuYXZhaWxhYmxlX3JlYXNvbjtyZXR1cm4gZS5qc3goeSx7dGl0bGU6dCx2YWx1ZTplLmpzeCgic3BhbiIse2NsYXNzTmFtZToiZmxhdCIsY2hpbGRyZW46IuKAlCJ9KSxzdWI6YyYmYyE9PWEudW5hdmFpbGFibGVfcmVhc29uP3IoYHJlYXNvbi4ke2N9YCk6dm9pZCAwLGZvb3RlcjpsfSl9Y29uc3QgaT1zLmFtb3VudCE9PW51bGw/ZS5qc3goeix7dmFsdWU6cy5hbW91bnQsY3VycmVuY3k6YS5jdXJyZW5jeSxzaWduZWQ6ITB9KTplLmpzeChILHt2YWx1ZTpzLnJldHVybl9wZXJjZW50fSksdT1zLnZhbHVlX2tpbmQ9PT0iYXNzZXRfY2hhbmdlIj9gIMK3ICR7cigicGVyZi52YWx1ZV9raW5kX2Fzc2V0X2NoYW5nZSIpfWA6IiI7cmV0dXJuIGUuanN4KHkse3RpdGxlOnQsdmFsdWU6aSxzdWI6YCR7cy5kYXRlfSR7dX1gLGZvb3RlcjpsfSl9ZnVuY3Rpb24gRmUoe3Njb3BlOmEscGxhdGZvcm06bixyYW5nZTpvLGVwb2NoOnJ9KXtjb25zdCB0PWcoKSxsPUYoKCk9PnJlKGEsbyxuKSxbYSxuLG8scl0pO2lmKGwucGhhc2U9PT0ibG9hZGluZyIpe2NvbnN0IGk9WyJwZXJmLmNhcmQudHdyIiwicGVyZi5jYXJkLmFtb3VudCIsInBlcmYuY2FyZC5tYXhfZHJhd2Rvd24iLCJwZXJmLmNhcmQuZXhjZXNzIiwicGVyZi5jYXJkLmJlc3RfZGF5IiwicGVyZi5jYXJkLndvcnN0X2RheSJdO3JldHVybiBlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWtwaS1ncmlkIixjaGlsZHJlbjppLm1hcCh1PT5lLmpzeCh5LHt0aXRsZTp0KHUpLHZhbHVlOmUuanN4KFMse2hlaWdodDoyOCx3aWR0aDoiNzAlIn0pfSx1KSl9KX1pZihsLnBoYXNlPT09ImVycm9yIil7Y29uc3QgaT1bInBlcmYuY2FyZC50d3IiLCJwZXJmLmNhcmQuYW1vdW50IiwicGVyZi5jYXJkLm1heF9kcmF3ZG93biIsInBlcmYuY2FyZC5leGNlc3MiLCJwZXJmLmNhcmQuYmVzdF9kYXkiLCJwZXJmLmNhcmQud29yc3RfZGF5Il07cmV0dXJuIGUuanN4KCJkaXYiLHtjbGFzc05hbWU6InBlcmYta3BpLWdyaWQiLGNoaWxkcmVuOmkubWFwKCh1LGMpPT5lLmpzeCh5LHt0aXRsZTp0KHUpLHZhbHVlOmUuanN4KFAse3N0YXR1czoicmVhZF9mYWlsZWQifSksZm9vdGVyOmM9PT0wP2UuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIixvbkNsaWNrOmwucmVsb2FkLGNoaWxkcmVuOnQoImNvbW1vbi5yZXRyeSIpfSk6dm9pZCAwfSx1KSl9KX1jb25zdCBzPWwuZGF0YTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltzLnVuYXZhaWxhYmxlX3JlYXNvbiYmZS5qc3goInAiLHtjbGFzc05hbWU6Im1ldHJpYy1ub3RlIixjaGlsZHJlbjpzLnVuYXZhaWxhYmxlX3JlYXNvbj09PSJtaXhlZF9jdXJyZW5jeSI/dCgicGVyZi5uYXRpdmVfdG90YWxzX25vdGUiKTp0KGByZWFzb24uJHtzLnVuYXZhaWxhYmxlX3JlYXNvbn1gKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWtwaS1ncmlkIixjaGlsZHJlbjpbZS5qc3goQ2Use2RhdGE6c30pLGUuanN4KFNlLHtkYXRhOnN9KSxlLmpzeChUZSx7ZGF0YTpzfSksZS5qc3goUmUse2RhdGE6c30pLGUuanN4KEose2RhdGE6cyxmaWVsZDoiYmVzdF9kYXkiLHRpdGxlS2V5OiJwZXJmLmNhcmQuYmVzdF9kYXkifSksZS5qc3goSix7ZGF0YTpzLGZpZWxkOiJ3b3JzdF9kYXkiLHRpdGxlS2V5OiJwZXJmLmNhcmQud29yc3RfZGF5In0pXX0pXX0pfWNvbnN0IEFlPVsidmFyKC0tYmVuY2htYXJrLTEpIiwidmFyKC0tYmVuY2htYXJrLTIpIiwidmFyKC0tYmVuY2htYXJrLTMpIiwidmFyKC0tYmVuY2htYXJrLTQpIl0sZWU9e+agh+aZrjUwMDoicGVyZi5iZW5jaG1hcmtfc3A1MDAiLOe6s+aWr+i+vuWFizEwMDoicGVyZi5iZW5jaG1hcmtfbmFzZGFxMTAwIizpgZPnkLzmlq/lt6XkuJrlubPlnYfmjIfmlbA6InBlcmYuYmVuY2htYXJrX2RvdyIs572X57SgMjAwMDoicGVyZi5iZW5jaG1hcmtfcnVzc2VsbDIwMDAifTtmdW5jdGlvbiBFZShhLG4pe2lmKGE9PT0idW5hZGp1c3RlZF9hc3NldF9yYXRpbyIpcmV0dXJuInBlcmYucmV0dXJuX2tpbmRfdW5hZGp1c3RlZCI7Y29uc3Qgbz1EKG4pO3JldHVybiBvPT09ImRpZXR6X2FwcHJveCI/WTpvPT09InVua25vd24iP1o6InBlcmYucmV0dXJuX2tpbmRfdHdyIn1mdW5jdGlvbiBhZSh7cG9pbnRzOmEsYmVuY2htYXJrczpuLHJldHVybktpbmQ6byxtZXRob2Q6cixtb2RlOnQsYXJpYUxhYmVsOmwsZGlzYWJsZWQ6c30pe2NvbnN0IGk9ZygpLHU9W3tpZDoibWFpbiIsbGFiZWw6aSgicGVyZi5yZXR1cm5zX21haW5fc2VyaWVzIiksY29sb3I6InZhcigtLWFjY2VudCkiLHBvaW50czphLHByaW1hcnk6ITB9LC4uLm4uc2xpY2UoMCw0KS5tYXAoKGMscCk9Pih7aWQ6Yy5pZCxsYWJlbDppKGVlW2MuaWRdfHwicGVyZi5iZW5jaG1hcmtfdW5rbm93biIpLGNvbG9yOkFlW3BdLHBvaW50czpjLnBvaW50c30pKV07cmV0dXJuIGUuanN4cygiZGl2Iix7Y2hpbGRyZW46W2UuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLHN0eWxlOnttYXJnaW5Ub3A6MH0sY2hpbGRyZW46ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBlcmYta2luZCIsY2hpbGRyZW46aShFZShvLHIpKX0pfSksZS5qc3goa2Use3Nlcmllczp1LG1vZGU6dCxhcmlhTGFiZWw6bH0pLHMmJnMubGVuZ3RoPjAmJmUuanN4KCJkaXYiLHtjbGFzc05hbWU6InBlcmYtYmVuY2htYXJrcy1vZmYiLGNoaWxkcmVuOnMubWFwKGM9PmUuanN4cygic3BhbiIse2NsYXNzTmFtZToicGVyZi1iZW5jaG1hcmstb2ZmIix0aXRsZTpjLnVuYXZhaWxhYmxlX3JlYXNvbj9pKGByZWFzb24uJHtjLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDAsY2hpbGRyZW46W2koZWVbYy5pZF18fCJwZXJmLmJlbmNobWFya191bmtub3duIiksIiDCtyAiLGkoYHN0YXRlLiR7Yy5zdGF0dXN9YCldfSxjLmlkKSl9KV19KX1mdW5jdGlvbiBMZSh7c2NvcGU6YSxwbGF0Zm9ybTpuLHJhbmdlOm8sZXBvY2g6cn0pe2NvbnN0IHQ9ZygpLFtsLHNdPSQudXNlU3RhdGUoImN1bXVsYXRpdmUiKSxpPUYoKCk9Pm1lKGEsbyxuKSxbYSxuLG8scl0pO2xldCB1LGM9bnVsbDtpZihpLnBoYXNlPT09ImxvYWRpbmciKXU9ZS5qc3goUyx7aGVpZ2h0OjI4MH0pO2Vsc2UgaWYoaS5waGFzZT09PSJlcnJvciIpdT1lLmpzeChMLHtvblJldHJ5OmkucmVsb2FkfSk7ZWxzZXtjb25zdCBwPWkuZGF0YTtjPXAsYT09PSJhbGwiJiZwLnBlcl9jdXJyZW5jeS5sZW5ndGg+MCYmKGoocC5zdGF0dXMpfHxwLnVuYXZhaWxhYmxlX3JlYXNvbj09PSJtaXhlZF9jdXJyZW5jeSIpP3U9ZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbZS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e21hcmdpblRvcDowfSxjaGlsZHJlbjp0KCJwZXJmLnBlcl9jdXJyZW5jeV9ub3RlIil9KSxwLnBlcl9jdXJyZW5jeS5tYXAoZj0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBlcmYtY3VycmVuY3ktYmxvY2siLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjbGFzc05hbWU6InBlcmYtY3VycmVuY3ktdGl0bGUiLGNoaWxkcmVuOmYuY3VycmVuY3l9KSxqKGYuc3RhdHVzKSYmZi5wb2ludHMubGVuZ3RoPjA/ZS5qc3goYWUse3BvaW50czpmLnBvaW50cyxiZW5jaG1hcmtzOmYuYmVuY2htYXJrcyxyZXR1cm5LaW5kOmYucmV0dXJuX2tpbmQsbWV0aG9kOmYsbW9kZTpsLGFyaWFMYWJlbDpgJHt0KCJwZXJmLnJldHVybnNfdGl0bGUiKX0gJHtmLmN1cnJlbmN5fWB9KTplLmpzeChOLHt0aXRsZTp0KGBzdGF0ZS4ke2ooZi5zdGF0dXMpPyJub19kYXRhIjpmLnN0YXR1c31gKSxib2R5OmYudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke2YudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pXX0sZi5jdXJyZW5jeSkpXX0pOmoocC5zdGF0dXMpP3Aubm9fY29tbW9uX2RhdGU/dT1lLmpzeChOLHt0aXRsZTp0KCJzdGF0ZS51bmF2YWlsYWJsZSIpLGJvZHk6dCgicmVhc29uLm5vX2NvbW1vbl9kYXRlIil9KTpwLnBvaW50cy5sZW5ndGg9PT0wP3U9ZS5qc3goTix7dGl0bGU6dCgic3RhdGUubm9fZGF0YSIpLGJvZHk6cC51bmF2YWlsYWJsZV9yZWFzb24/dChgcmVhc29uLiR7cC51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwfSk6dT1lLmpzeChhZSx7cG9pbnRzOnAucG9pbnRzLGJlbmNobWFya3M6cC5iZW5jaG1hcmtzLHJldHVybktpbmQ6cC5yZXR1cm5fa2luZCxtZXRob2Q6cCxtb2RlOmwsYXJpYUxhYmVsOnQoInBlcmYucmV0dXJuc190aXRsZSIpLGRpc2FibGVkOnAuYmVuY2htYXJrX2F2YWlsYWJpbGl0eS5maWx0ZXIoZj0+IWooZi5zdGF0dXMpKX0pOnU9ZS5qc3goTix7dGl0bGU6dChgc3RhdGUuJHtwLnN0YXR1c31gKSxib2R5OnAudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke3AudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46dCgicGVyZi5yZXR1cm5zX3RpdGxlIil9KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLW1vZGUtdG9nZ2xlIixjaGlsZHJlbjplLmpzeHMoImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOnQoInBlcmYucmV0dXJuc190aXRsZSIpLGNoaWxkcmVuOltlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke2w9PT0iY3VtdWxhdGl2ZSI/IiBhY3RpdmUiOiIifWAsImFyaWEtcHJlc3NlZCI6bD09PSJjdW11bGF0aXZlIixvbkNsaWNrOigpPT5zKCJjdW11bGF0aXZlIiksY2hpbGRyZW46dCgicGVyZi5yZXR1cm5zX2N1bXVsYXRpdmUiKX0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2VnbWVudCR7bD09PSJkYWlseSI/IiBhY3RpdmUiOiIifWAsImFyaWEtcHJlc3NlZCI6bD09PSJkYWlseSIsb25DbGljazooKT0+cygiZGFpbHkiKSxjaGlsZHJlbjp0KCJwZXJmLnJldHVybnNfZGFpbHkiKX0pXX0pfSksZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJwZXJmLWhlYWQtbWV0YSIsY2hpbGRyZW46W2MmJmMuc3RhdHVzIT09Im9rIiYmaihjLnN0YXR1cykmJmUuanN4KEsse3N0YXR1czpjLnN0YXR1cyxyZWFzb246Yy51bmF2YWlsYWJsZV9yZWFzb259KSxjJiZqKGMuc3RhdHVzKSYmZS5qc3goVix7dmFsdWU6Yy5hc19vZn0pXX0pXX0pLHUsZS5qc3goaGUse3RpdGxlS2V5OiJwZXJmLmhvd19jYWxjdWxhdGVkIixib2R5S2V5OmMmJltjLC4uLmMucGVyX2N1cnJlbmN5XS5zb21lKHA9PkQocCk9PT0idW5rbm93biIpPyJwZXJmLm1ldGhvZF9ib2R5X3Vua25vd24iOmMmJihRKGMpfHxjLnBlcl9jdXJyZW5jeS5zb21lKFEpKT8icGVyZi5tZXRob2RfYm9keV9kaWV0eiI6InBlcmYubWV0aG9kX2JvZHkifSldfSl9Y29uc3QgRGU9ODAwLHE9MjIwLEM9e3RvcDoxMixyaWdodDoxMixib3R0b206MjQsbGVmdDo2NH07ZnVuY3Rpb24gUGUoe3BvaW50czphLGN1cnJlbmN5Om4sYXJpYUxhYmVsOm99KXtjb25zdCByPVIoKSx0PWcoKSx7cHJlZnM6bH09TygpLFtzLGldPSQudXNlU3RhdGUobnVsbCksdT0kLnVzZVJlZihudWxsKSxbYyxwXT0kLnVzZVN0YXRlKERlKTskLnVzZUVmZmVjdCgoKT0+e2NvbnN0IG09dS5jdXJyZW50O2lmKCFtKXJldHVybjtjb25zdCB2PW5ldyBSZXNpemVPYnNlcnZlcigoW1RdKT0+e1QuY29udGVudFJlY3Qud2lkdGg+MCYmcChULmNvbnRlbnRSZWN0LndpZHRoKX0pO3JldHVybiB2Lm9ic2VydmUobSksKCk9PnYuZGlzY29ubmVjdCgpfSxbXSk7Y29uc3R7eU1pbjpmLHlNYXg6aH09JC51c2VNZW1vKCgpPT57aWYoIWEubGVuZ3RoKXJldHVybnt5TWluOjAseU1heDoxfTtsZXQgbT0xLzAsdj0tMS8wO2Zvcihjb25zdCBFIG9mIGEpRS52YWx1ZTxtJiYobT1FLnZhbHVlKSxFLnZhbHVlPnYmJih2PUUudmFsdWUpO209PT12JiYobS09MSx2Kz0xKTtjb25zdCBUPSh2LW0pKi4wODtyZXR1cm57eU1pbjptLVQseU1heDp2K1R9fSxbYV0pLGQ9bT0+bC5oaWRlQW1vdW50cz8i4oCi4oCi4oCiIjpmZShtLG4sciksYj1bMCwxLDIsMyw0XS5tYXAobT0+ZisoaC1mKSptLzQpLF89e2xlZnQ6TWF0aC5tYXgoQy5sZWZ0LC4uLmIubWFwKG09PmQobSkubGVuZ3RoKjgrMTYpKX0seD1NYXRoLm1heChjLF8ubGVmdCs4MCksaz1tPT5fLmxlZnQrKGEubGVuZ3RoPD0xPzA6bS8oYS5sZW5ndGgtMSkqKHgtXy5sZWZ0LUMucmlnaHQpKSxNPW09PkMudG9wKygxLShtLWYpLyhoLWYpKSoocS1DLnRvcC1DLmJvdHRvbSksaWU9YS5tYXAoKG0sdik9PmAke20uYnJlYWtCZWZvcmV8fHY9PT0wPyJNIjoiTCJ9JHtrKHYpLnRvRml4ZWQoMil9LCR7TShtLnZhbHVlKS50b0ZpeGVkKDIpfWApLmpvaW4oIiIpLEI9W107YS5mb3JFYWNoKChtLHYpPT57KHY9PT0wfHxtLmJyZWFrQmVmb3JlKSYmQi5wdXNoKFtdKSxCLmF0KC0xKS5wdXNoKHYpfSk7Y29uc3QgdWU9Qi5tYXAobT0+YE0ke2sobVswXSkudG9GaXhlZCgyKX0sJHtNKGYpLnRvRml4ZWQoMil9JHttLm1hcCh2PT5gTCR7ayh2KS50b0ZpeGVkKDIpfSwke00oYVt2XS52YWx1ZSkudG9GaXhlZCgyKX1gKS5qb2luKCIiKX1MJHtrKG0uYXQoLTEpKS50b0ZpeGVkKDIpfSwke00oZikudG9GaXhlZCgyKX1aYCkuam9pbigiIiksZGU9bT0+e2NvbnN0IHY9dS5jdXJyZW50O2lmKCF2fHxhLmxlbmd0aD09PTApcmV0dXJuO2NvbnN0IFQ9di5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxFPShtLVQubGVmdCkvVC53aWR0aCp4LHBlPU1hdGgucm91bmQoKEUtXy5sZWZ0KS8oeC1fLmxlZnQtQy5yaWdodCkqKGEubGVuZ3RoLTEpKTtpKE1hdGgubWF4KDAsTWF0aC5taW4oYS5sZW5ndGgtMSxwZSkpKX0sQT1zIT09bnVsbD9hW3NdOm51bGw7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjaGFydC1mcmFtZSIscmVmOnUsY2hpbGRyZW46W2UuanN4cygic3ZnIix7Y2xhc3NOYW1lOiJjaGFydCIsdmlld0JveDpgMCAwICR7eH0gJHtxfWAscm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6byx0YWJJbmRleDowLG9uTW91c2VNb3ZlOm09PmRlKG0uY2xpZW50WCksb25Nb3VzZUxlYXZlOigpPT5pKG51bGwpLG9uRm9jdXM6KCk9PmkobT0+bT8/MCksb25CbHVyOigpPT5pKG51bGwpLGNoaWxkcmVuOltiLm1hcCgobSx2KT0+ZS5qc3hzKCJnIix7Y2hpbGRyZW46W2UuanN4KCJsaW5lIix7eDE6Xy5sZWZ0LHgyOngtQy5yaWdodCx5MTpNKG0pLHkyOk0obSksc3Ryb2tlOiJ2YXIoLS1saW5lKSIsc3Ryb2tlV2lkdGg6IjEifSksZS5qc3goInRleHQiLHt4Ol8ubGVmdC02LHk6TShtKSs0LHRleHRBbmNob3I6ImVuZCIsZm9udFNpemU6IjEzIixmaWxsOiJ2YXIoLS1tdXRlZCkiLGNoaWxkcmVuOmQobSl9KV19LHYpKSxhLmxlbmd0aD4wJiZlLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KCJwYXRoIix7ZDp1ZSxmaWxsOiJ2YXIoLS1hY2NlbnQpIixvcGFjaXR5OiIwLjEyIn0pLGUuanN4KCJwYXRoIix7ZDppZSxmaWxsOiJub25lIixzdHJva2U6InZhcigtLWFjY2VudCkiLHN0cm9rZVdpZHRoOiIyLjUiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3Ryb2tlTGluZWNhcDoicm91bmQifSksQi5maWx0ZXIobT0+bS5sZW5ndGg9PT0xKS5tYXAoKFttXSk9PmUuanN4KCJjaXJjbGUiLHtjeDprKG0pLGN5Ok0oYVttXS52YWx1ZSkscjoiMyIsZmlsbDoidmFyKC0tYWNjZW50KSJ9LGFbbV0uZGF0ZSkpLGEubWFwKChtLHYpPT5tLmV4dGVybmFsRmxvdz9lLmpzeCgiZyIse2NoaWxkcmVuOmUuanN4KCJjaXJjbGUiLHtjeDprKHYpLGN5Ok0obS52YWx1ZSkscjoiNCIsZmlsbDoidmFyKC0tc3VyZmFjZSkiLHN0cm9rZToidmFyKC0tYWNjZW50KSIsc3Ryb2tlV2lkdGg6IjIiLGNoaWxkcmVuOmUuanN4KCJ0aXRsZSIse2NoaWxkcmVuOmAke20uZGF0ZX0gwrcgJHt0KCJwZXJmLmFzc2V0c19mbG93X21hcmsiKX1gfSl9KX0sbS5kYXRlKTpudWxsKV19KSxzIT09bnVsbCYmQSYmZS5qc3goImxpbmUiLHt4MTprKHMpLHgyOmsocykseTE6Qy50b3AseTI6cS1DLmJvdHRvbSxzdHJva2U6InZhcigtLW11dGVkKSIsc3Ryb2tlV2lkdGg6IjEifSldfSkscyE9PW51bGwmJkEmJmUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjaGFydC10b29sdGlwIixzdHlsZTp7bGVmdDpgJHtNYXRoLm1pbihNYXRoLm1heChrKHMpL3gqMTAwLDgpLDgwKX0lYCx0b3A6OH0sY2hpbGRyZW46W2UuanN4KCJkaXYiLHtjbGFzc05hbWU6InRvb2x0aXAtZGF0ZSIsY2hpbGRyZW46QS5kYXRlfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToidG9vbHRpcC1yb3ciLGNoaWxkcmVuOmUuanN4KCJzdHJvbmciLHtjaGlsZHJlbjpkKEEudmFsdWUpfSl9KSxBLmV4dGVybmFsRmxvdz9lLmpzeHMoImRpdiIse2NsYXNzTmFtZToidG9vbHRpcC1yb3ciLGNoaWxkcmVuOlt0KCJwZXJmLmFzc2V0c19mbG93X21hcmsiKSwiOiAiLGQoQS5leHRlcm5hbEZsb3cpXX0pOm51bGxdfSldfSl9ZnVuY3Rpb24gemUoe3N0YXR1czphLHBvaW50czpuLGNvdmVyYWdlOm8sY3VycmVuY3k6cixhY2NvdW50czp0PVtdfSl7Y29uc3QgbD1nKCkscz1sZSgpO2lmKGE9PT0ib2siJiYhbi5zb21lKGM9PmMucGFydGlhbCkmJiFvPy50cnVuY2F0ZWQpcmV0dXJuIG51bGw7Y29uc3QgaT1bLi4ubmV3IFNldChbLi4ubi5mbGF0TWFwKGM9PlsuLi5jLm1pc3NpbmdfYWNjb3VudHN8fFtdLC4uLmMuZm9yd2FyZF9maWxsZWRfYWNjb3VudHN8fFtdXSksLi4ubz8ubWlzc2luZ19hY2NvdW50c3x8W10sLi4ubz8uZXhjbHVkZWRfYWNjb3VudHN8fFtdLC4uLm8/LnJlYWRfZmFpbHVyZXN8fFtdXSldLHU9Wy4uLm5ldyBTZXQoaS5tYXAoYz0+e2NvbnN0IHA9dC5maW5kKGY9PmM9PT1mLmFjY291bnRfYWxpYXN8fGM9PT1mLmFjY291bnRfcmVmfHxjPT09YCR7Zi5wbGF0Zm9ybX06JHtmLmFjY291bnRfYWxpYXN9OiR7cn1gKTtyZXR1cm4gcy5hY2NvdW50KHA/LmFjY291bnRfYWxpYXMscD8ucGxhdGZvcm0pfSkpXTtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIscm9sZToic3RhdHVzIixjaGlsZHJlbjpbZS5qc3hzKG9lLHt0b25lOiJ3YXJuIixjaGlsZHJlbjpbcj9gJHtyfSDCtyBgOiIiLGwoYT09PSJzdGFsZSI/InBlcmYuaGlzdG9yeV9zdGFsZSI6InBlcmYuaGlzdG9yeV9pbmNvbXBsZXRlIildfSksZS5qc3goInAiLHtjaGlsZHJlbjpsKCJwZXJmLmhpc3RvcnlfY292ZXJhZ2Vfbm90ZSIpfSksdS5sZW5ndGg+MCYmZS5qc3goInAiLHtjaGlsZHJlbjpsKCJwZXJmLmhpc3RvcnlfYWZmZWN0ZWRfYWNjb3VudHMiLHthY2NvdW50czp1LmpvaW4oIiDCtyAiKX0pfSldfSl9ZnVuY3Rpb24gS2Uoe3Njb3BlOmEscGxhdGZvcm06bixyYW5nZTpvLGVwb2NoOnJ9KXtjb25zdCB0PWcoKSxsPUYoKCk9Pl9lKGEsbyxuKSxbYSxuLG8scl0pO2xldCBzLGksdSxjPW51bGwscD1udWxsLGY9bnVsbDtpZihsLnBoYXNlPT09ImxvYWRpbmciKXU9ZS5qc3goUyx7aGVpZ2h0OjIyMH0pO2Vsc2UgaWYobC5waGFzZT09PSJlcnJvciIpdT1lLmpzeChMLHtvblJldHJ5OmwucmVsb2FkfSk7ZWxzZXtjb25zdCBoPWwuZGF0YTtzPWgucGVyX2N1cnJlbmN5Py5sZW5ndGgmJmgudW5hdmFpbGFibGVfcmVhc29uIT09InN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiP2UuanN4cyhlLkZyYWdtZW50LHtjaGlsZHJlbjpbZS5qc3goTmUse3RvdGFsczpoLnBlcl9jdXJyZW5jeX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOnQoInBlcmYubmF0aXZlX3RvdGFsc19ub3RlIil9KSxlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjplLmpzeChjZSx7Y291bnRzOmguZnJlc2huZXNzX3N1bW1hcnl9KX0pXX0pOm51bGwsYz1oLnN0YXR1cyxwPWgudW5hdmFpbGFibGVfcmVhc29uLGY9aC5hc19vZjtjb25zdCBkPWguY3VydmVfc3RhdHVzfHxoLnN0YXR1cyxiPWguY3VydmVfdW5hdmFpbGFibGVfcmVhc29uPT09dm9pZCAwP2gudW5hdmFpbGFibGVfcmVhc29uOmguY3VydmVfdW5hdmFpbGFibGVfcmVhc29uLF89aC5oaXN0b3J5X3Blcl9jdXJyZW5jeT8ubGVuZ3RoP2guaGlzdG9yeV9wZXJfY3VycmVuY3k6W3tjdXJyZW5jeTpoLmN1cnJlbmN5LHN0YXR1czpkLGNvdmVyYWdlOmguY3VydmVfY292ZXJhZ2UscG9pbnRzOmgucG9pbnRzfV07aWYoaT1fLm1hcCh4PT5lLmpzeCh6ZSx7Li4ueCxzdGF0dXM6Xy5sZW5ndGg9PT0xP2Q6eC5zdGF0dXMsYWNjb3VudHM6aC5hY2NvdW50X2ZyZXNobmVzc30seC5jdXJyZW5jeXx8Imhpc3RvcnkiKSksaC5wZXJfY3VycmVuY3k/Lmxlbmd0aCYmYj09PSJtaXhlZF9jdXJyZW5jeSIpdT1udWxsO2Vsc2UgaWYoIWooZCkpdT1lLmpzeChOLHt0aXRsZTp0KGBzdGF0ZS4ke2R9YCksYm9keTpiP3QoYHJlYXNvbi4ke2J9YCk6dm9pZCAwfSk7ZWxzZSBpZihiPT09Im1peGVkX2N1cnJlbmN5Iil1PWUuanN4KE4se3RpdGxlOnQoInBlcmYubWl4ZWRfY3VycmVuY3lfdGl0bGUiKSxib2R5OnQoInJlYXNvbi5taXhlZF9jdXJyZW5jeSIpfSk7ZWxzZSBpZihoLnBvaW50cy5sZW5ndGg9PT0wKXU9ZS5qc3goTix7dGl0bGU6dCgic3RhdGUubm9fZGF0YSIpfSk7ZWxzZXtjb25zdCB4PWgucG9pbnRzO3U9ZS5qc3goUGUse3BvaW50czp4LGN1cnJlbmN5OmguY3VycmVuY3ksYXJpYUxhYmVsOnQoInBlcmYuYXNzZXRzX3RpdGxlIil9KX19cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXJkIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBlcmYtY2FyZC1oZWFkIixjaGlsZHJlbjpbZS5qc3goImgyIix7Y2xhc3NOYW1lOiJjYXJkLXRpdGxlIixjaGlsZHJlbjp0KCJwZXJmLmFzc2V0c190aXRsZSIpfSksZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJwZXJmLWhlYWQtbWV0YSIsY2hpbGRyZW46W2MmJmMhPT0ib2siJiZqKGMpJiZlLmpzeChLLHtzdGF0dXM6YyxyZWFzb246cH0pLGMmJmooYykmJmUuanN4KFYse3ZhbHVlOmZ9KV19KV19KSxzLGksdSxlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjp0KCJwZXJmLmFzc2V0c19ub3RlIil9KV19KX1jb25zdCBCZT1bIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSJdLFdlPXtNb246IuS4gCIsVHVlOiLkuowiLFdlZDoi5LiJIixUaHU6IuWbmyIsRnJpOiLkupQifTtmdW5jdGlvbiBzZShhLG4pe2lmKGEucmV0dXJuX3BlcmNlbnQ9PT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKGEucmV0dXJuX3BlcmNlbnQpfHxuPD0wKXJldHVybjtjb25zdCBvPU1hdGgubWluKDEsTWF0aC5hYnMoYS5yZXR1cm5fcGVyY2VudCkvbikscj04K01hdGgucm91bmQobyo0MCk7cmV0dXJuYGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS0ke2EucmV0dXJuX3BlcmNlbnQ+MD8idXAiOiJkb3duIn0pICR7cn0lLCB0cmFuc3BhcmVudClgfWZ1bmN0aW9uIEhlKHt5ZWFyOmEsbW9udGg6bixjZWxsczpvLG9uTmF2aWdhdGU6cn0pe2NvbnN0IHQ9ZygpLGw9UigpLHtwcmVmczpzfT1PKCksaT1NYXRoLm1heCgwLC4uLm8ubWFwKGQ9PmQucmV0dXJuX3BlcmNlbnQhPT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZC5yZXR1cm5fcGVyY2VudCk/TWF0aC5hYnMoZC5yZXR1cm5fcGVyY2VudCk6MCkpLHU9ZD0+ZC5yZXR1cm5fcGVyY2VudCE9PW51bGwmJk51bWJlci5pc0Zpbml0ZShkLnJldHVybl9wZXJjZW50KT9JKGQucmV0dXJuX3BlcmNlbnQsbCk6ZC5hbW91bnQhPT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZC5hbW91bnQpP3MuaGlkZUFtb3VudHM/IuKAouKAouKAoiI6U3RyaW5nKE1hdGgucm91bmQoZC5hbW91bnQpKToiIjtpZihuPT09bnVsbClyZXR1cm4gZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhbGVuZGFyLW5hdiIsY2hpbGRyZW46W2UuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIixvbkNsaWNrOigpPT5yKGEtMSxudWxsKSwiYXJpYS1sYWJlbCI6IuKAuSIsY2hpbGRyZW46IuKAuSJ9KSxlLmpzeCgic3BhbiIse2NsYXNzTmFtZToiY3VycmVudCBudW0iLGNoaWxkcmVuOmF9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+cihhKzEsbnVsbCksImFyaWEtbGFiZWwiOiLigLoiLGNoaWxkcmVuOiLigLoifSldfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiY2FsZW5kYXIteWVhci1ncmlkIixzdHlsZTp7bWFyZ2luVG9wOjEyfSxjaGlsZHJlbjpvLm1hcChkPT5lLmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBjYWxlbmRhci1jZWxsJHtkLnJldHVybl9wZXJjZW50PT09bnVsbCYmZC5hbW91bnQ9PT1udWxsPyIgY2VsbC1lbXB0eSI6IiJ9YCxzdHlsZTp7YmFja2dyb3VuZDpzZShkLGkpfSx0aXRsZTpkLnVuYXZhaWxhYmxlX3JlYXNvbj90KGByZWFzb24uJHtkLnVuYXZhaWxhYmxlX3JlYXNvbn1gKTp2b2lkIDAsb25DbGljazooKT0+ZC5tb250aCYmcihhLE51bWJlcihkLm1vbnRoLnNwbGl0KCItIilbMV0pKSxjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImNlbGwtZGF0ZSIsY2hpbGRyZW46ZC5tb250aH0pLGUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOmBjZWxsLXZhbHVlICR7ZC5yZXR1cm5fcGVyY2VudCE9PW51bGw/ZC5yZXR1cm5fcGVyY2VudD4wPyJ1cCI6ZC5yZXR1cm5fcGVyY2VudDwwPyJkb3duIjoiZmxhdCI6IiJ9YCxjaGlsZHJlbjp1KGQpfHwiwqAifSldfSxkLm1vbnRoKSl9KV19KTtjb25zdCBjPW5ldyBNYXAoby5maWx0ZXIoZD0+ZC5kYXRlKS5tYXAoZD0+W2QuZGF0ZSxkXSkpLHA9bmV3IERhdGUoRGF0ZS5VVEMoYSxuLDApKS5nZXRVVENEYXRlKCksZj1bXTtsZXQgaD1bXTtmb3IobGV0IGQ9MTtkPD1wO2QrKyl7Y29uc3QgYj1gJHthfS0ke1N0cmluZyhuKS5wYWRTdGFydCgyLCIwIil9LSR7U3RyaW5nKGQpLnBhZFN0YXJ0KDIsIjAiKX1gLF89bmV3IERhdGUoYCR7Yn1UMDA6MDA6MDBaYCkuZ2V0VVRDRGF5KCk7aWYoXz09PTB8fF89PT02KWNvbnRpbnVlO2NvbnN0IHg9Xy0xO2Zvcih4PT09MCYmaC5sZW5ndGgmJihmLnB1c2goaCksaD1bXSk7aC5sZW5ndGg8eDspaC5wdXNoKG51bGwpO2gucHVzaChjLmdldChiKXx8e2RhdGU6YixhbW91bnQ6bnVsbCxyZXR1cm5fcGVyY2VudDpudWxsLGN1cnJlbmN5Om51bGwsc3RhdHVzOiJub19kYXRhIix2YWx1ZV9raW5kOiJhc3NldF9jaGFuZ2UiLHVuYXZhaWxhYmxlX3JlYXNvbjpudWxsfSl9cmV0dXJuIGgubGVuZ3RoJiZmLnB1c2goaCksZS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhbGVuZGFyLW5hdiIsY2hpbGRyZW46W2UuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIixvbkNsaWNrOigpPT5yKC4uLm49PT0xP1thLTEsMTJdOlthLG4tMV0pLCJhcmlhLWxhYmVsIjoi4oC5IixjaGlsZHJlbjoi4oC5In0pLGUuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImN1cnJlbnQgYnV0dG9uIGJ1dHRvbi1zbSIsb25DbGljazooKT0+cihhLG51bGwpLCJhcmlhLWxhYmVsIjp0KCJwZXJmLmNhbGVuZGFyX3llYXIiKSxjaGlsZHJlbjpbYSwiLSIsU3RyaW5nKG4pLnBhZFN0YXJ0KDIsIjAiKV19KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+ciguLi5uPT09MTI/W2ErMSwxXTpbYSxuKzFdKSwiYXJpYS1sYWJlbCI6IuKAuiIsY2hpbGRyZW46IuKAuiJ9KV19KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FsZW5kYXItbW9udGgtZ3JpZCIsc3R5bGU6e21hcmdpblRvcDoxMn0sY2hpbGRyZW46W0JlLm1hcChkPT5lLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJjYWxlbmRhci13ZWVrZGF5IixjaGlsZHJlbjpsPT09InpoIj9XZVtkXTpkfSxkKSksZi5mbGF0TWFwKChkLGIpPT5bMCwxLDIsMyw0XS5tYXAoXz0+e2NvbnN0IHg9ZFtfXTtpZigheClyZXR1cm4gZS5qc3goImRpdiIse30sYCR7Yn0tJHtffWApO2NvbnN0IGs9eC5yZXR1cm5fcGVyY2VudCE9PW51bGx8fHguYW1vdW50IT09bnVsbDtyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YGNhbGVuZGFyLWNlbGwke2s/IiI6IiBjZWxsLWVtcHR5In1gLHN0eWxlOntiYWNrZ3JvdW5kOnNlKHgsaSl9LHRpdGxlOngudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke3gudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMCxjaGlsZHJlbjpbZS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImNlbGwtZGF0ZSBudW0iLGNoaWxkcmVuOnguZGF0ZT9OdW1iZXIoeC5kYXRlLnNsaWNlKDgpKToiIn0pLGsmJmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOmBjZWxsLXZhbHVlICR7eC5yZXR1cm5fcGVyY2VudCE9PW51bGw/eC5yZXR1cm5fcGVyY2VudD4wPyJ1cCI6eC5yZXR1cm5fcGVyY2VudDwwPyJkb3duIjoiZmxhdCI6IiJ9YCxjaGlsZHJlbjp1KHgpfSldfSx4LmRhdGUpfSkpXX0pXX0pfWZ1bmN0aW9uIEllKHtzY29wZTphLHBsYXRmb3JtOm4scmFuZ2U6byxlcG9jaDpyfSl7Y29uc3QgdD1nKCksbD1uZXcgRGF0ZSxbcyxpXT0kLnVzZVN0YXRlKHt5ZWFyOmwuZ2V0RnVsbFllYXIoKSxtb250aDpsLmdldE1vbnRoKCkrMX0pLHU9RigoKT0+eGUoYSxvLHMueWVhcixzLm1vbnRoLG4pLFthLG4sbyxzLnllYXIscy5tb250aCxyXSk7bGV0IGMscD1udWxsLGY9bnVsbCxoPW51bGwsZD0hMSxiPSExO2lmKHUucGhhc2U9PT0ibG9hZGluZyIpYz1lLmpzeChTLHtoZWlnaHQ6MjIwfSk7ZWxzZSBpZih1LnBoYXNlPT09ImVycm9yIiljPWUuanN4KEwse29uUmV0cnk6dS5yZWxvYWR9KTtlbHNle2NvbnN0IF89dS5kYXRhO3A9Xy5zdGF0dXMsZj1fLnVuYXZhaWxhYmxlX3JlYXNvbixoPV8uYXNfb2YsZD1fLnZhbHVlX2tpbmQ9PT0iYXNzZXRfY2hhbmdlIixiPV8uY2VsbHMuc29tZSh4PT54Lm9ic2VydmVkX2Ftb3VudCE9PW51bGwmJngub2JzZXJ2ZWRfYW1vdW50IT09dm9pZCAwKSxqKF8uc3RhdHVzKT9fLmNlbGxzLmxlbmd0aD09PTA/Yz1lLmpzeChOLHt0aXRsZTp0KCJzdGF0ZS5ub19kYXRhIil9KTpjPWUuanN4KEhlLHt5ZWFyOl8ueWVhcixtb250aDpfLm1vbnRoLGNlbGxzOl8uY2VsbHMsb25OYXZpZ2F0ZTooeCxrKT0+aSh7eWVhcjp4LG1vbnRoOmt9KX0pOmM9ZS5qc3goTix7dGl0bGU6dChgc3RhdGUuJHtfLnN0YXR1c31gKSxib2R5Ol8udW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke18udW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pfXJldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwZXJmLWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMiIse2NsYXNzTmFtZToiY2FyZC10aXRsZSIsY2hpbGRyZW46dCgicGVyZi5jYWxlbmRhcl90aXRsZSIpfSksZCYmZS5qc3gob2Use3RvbmU6ImFjY2VudCIsY2hpbGRyZW46dCgicGVyZi52YWx1ZV9raW5kX2Fzc2V0X2NoYW5nZSIpfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjp0KCJwZXJmLmNhbGVuZGFyX3RpdGxlIiksY2hpbGRyZW46W2UuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2VnbWVudCR7cy5tb250aCE9PW51bGw/IiBhY3RpdmUiOiIifWAsImFyaWEtcHJlc3NlZCI6cy5tb250aCE9PW51bGwsb25DbGljazooKT0+aShfPT4oey4uLl8sbW9udGg6Xy5tb250aD8/bmV3IERhdGUoKS5nZXRNb250aCgpKzF9KSksY2hpbGRyZW46dCgicGVyZi5jYWxlbmRhcl9tb250aCIpfSksZS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHtzLm1vbnRoPT09bnVsbD8iIGFjdGl2ZSI6IiJ9YCwiYXJpYS1wcmVzc2VkIjpzLm1vbnRoPT09bnVsbCxvbkNsaWNrOigpPT5pKF89Pih7Li4uXyxtb250aDpudWxsfSkpLGNoaWxkcmVuOnQoInBlcmYuY2FsZW5kYXJfeWVhciIpfSldfSksZS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOiJwZXJmLWhlYWQtbWV0YSIsY2hpbGRyZW46W3AmJnAhPT0ib2siJiZqKHApJiZlLmpzeChLLHtzdGF0dXM6cCxyZWFzb246Zn0pLHAmJmoocCkmJmUuanN4KFYse3ZhbHVlOmh9KV19KV19KSxjLGImJmUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOnQoInBlcmYuY2FsZW5kYXJfZGVwb3NpdF9ub3RlIil9KV19KX1mdW5jdGlvbiBuZSh7aXRlbXM6YX0pe2NvbnN0IG49UigpLG89TWF0aC5tYXgoMWUtOSwuLi5hLm1hcChyPT5NYXRoLmFicyhyLnZhbHVlKSkpO3JldHVybiBlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJiYXJsaXN0IixjaGlsZHJlbjphLm1hcChyPT57Y29uc3QgdD1NYXRoLmFicyhyLnZhbHVlKS9vKjUwLGw9ci52YWx1ZT4wO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiYmFybGlzdC1yb3ciLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToiYmFybGlzdC1sYWJlbCIsdGl0bGU6ci5sYWJlbCxjaGlsZHJlbjpyLmxhYmVsfSksZS5qc3goImRpdiIse2NsYXNzTmFtZToiYmFybGlzdC10cmFjayIscm9sZToiaW1nIiwiYXJpYS1sYWJlbCI6YCR7ci5sYWJlbH0gJHtJKHIudmFsdWUsbil9YCxjaGlsZHJlbjplLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJiYXJsaXN0LWZpbGwiLHN0eWxlOntiYWNrZ3JvdW5kOmw/InZhcigtLXVwKSI6InZhcigtLWRvd24pIix3aWR0aDpgJHt0fSVgLGxlZnQ6bD8iNTAlIjpgJHs1MC10fSVgfX0pfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6YGJhcmxpc3QtdmFsdWUgJHtsPyJ1cCI6ci52YWx1ZTwwPyJkb3duIjoiZmxhdCJ9YCxjaGlsZHJlbjpJKHIudmFsdWUsbil9KV19LHIuaWQpfSl9KX1jb25zdCB0ZT01O2Z1bmN0aW9uIFZlKGEsbil7Y29uc3Qgbz1hLmNvdmVyYWdlO2lmKEFycmF5LmlzQXJyYXkobykpe2NvbnN0IHI9bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBvKXtjb25zdCBsPXQucGxhdGZvcm0/bi5wbGF0Zm9ybSh0LnBsYXRmb3JtKToiIixzPXIuZ2V0KGwpfHxbXTtzLnB1c2gobi5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKSksci5zZXQobCxzKX1yZXR1cm5bLi4ucl0uc29ydCgoW3RdLFtsXSk9PnQubG9jYWxlQ29tcGFyZShsKSkubWFwKChbdCxsXSk9PmAke3Q/YCR7dH06IGA6IiJ9JHtsLmpvaW4oIiwgIil9YCkuam9pbigiOyAiKXx8bnVsbH1yZXR1cm4gbyYmdHlwZW9mIG89PSJvYmplY3QiJiZBcnJheS5pc0FycmF5KG8uYWNjb3VudF9hbGlhc2VzKSYmby5hY2NvdW50X2FsaWFzZXMubGVuZ3RoP28uYWNjb3VudF9hbGlhc2VzLm1hcChyPT5uLmFjY291bnQocikpLmpvaW4oIiwgIik6bnVsbH1mdW5jdGlvbiBxZSh7dmFsdWU6YX0pe2NvbnN0IG49UigpO3JldHVybiBlLmpzeCgic3BhbiIse2NsYXNzTmFtZToibnVtIixjaGlsZHJlbjpqZShhLG4pfSl9ZnVuY3Rpb24gT2Uoe3N0YXRlOmF9KXtjb25zdCBuPWcoKSxvPWxlKCk7aWYoYS5waGFzZT09PSJsb2FkaW5nIilyZXR1cm4gZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeChTLHtoZWlnaHQ6MzJ9KSxlLmpzeChTLHtoZWlnaHQ6MzJ9KSxlLmpzeChTLHtoZWlnaHQ6MzJ9KV19KTtpZihhLnBoYXNlPT09ImVycm9yIilyZXR1cm4gZS5qc3goTCx7b25SZXRyeTphLnJlbG9hZH0pO2NvbnN0IHI9YS5kYXRhO2lmKCFqKHIuc3RhdHVzKSlyZXR1cm4gZS5qc3goTix7dGl0bGU6bihgc3RhdGUuJHtyLnN0YXR1c31gKSxib2R5OnIudW5hdmFpbGFibGVfcmVhc29uP24oYHJlYXNvbi4ke3IudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pO2NvbnN0IHQ9W3tpZDoiYWNjb3VudCIsaGVhZGVyOm4oInBlcmYuY29sLmFjY291bnQiKSxjZWxsOnM9Pm8uYWNjb3VudChzLmFjY291bnRfYWxpYXMscy5wbGF0Zm9ybSksc29ydFZhbHVlOnM9PnMuYWNjb3VudF9hbGlhc30se2lkOiJzeW1ib2wiLGhlYWRlcjpuKCJwZXJmLmNvbC5zeW1ib2wiKSxjZWxsOnM9PnMuc3ltYm9sLHNvcnRWYWx1ZTpzPT5zLnN5bWJvbH0se2lkOiJxdWFudGl0eSIsaGVhZGVyOm4oInBlcmYuY29sLnF1YW50aXR5IiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeChxZSx7dmFsdWU6cy5xdWFudGl0eX0pLHNvcnRWYWx1ZTpzPT5zLnF1YW50aXR5fSx7aWQ6Im1hcmtldF92YWx1ZSIsaGVhZGVyOmAke24oInBlcmYuY29sLm1hcmtldF92YWx1ZSIpfSAoJHtuKCJwZXJmLmNvbC5jdXJyZW5jeSIpfSlgLG51bWVyaWM6ITAsY2VsbDpzPT5zLnN0YXR1cyE9PSJvayI/IuKAlCI6ZS5qc3goeix7dmFsdWU6cy5tYXJrZXRfdmFsdWUsY3VycmVuY3k6cy5jdXJyZW5jeX0pLHNvcnRWYWx1ZTpzPT5zLm1hcmtldF92YWx1ZX0se2lkOiJhdmdfY29zdCIsaGVhZGVyOm4oInBlcmYuY29sLmF2Z19jb3N0IiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeCh6LHt2YWx1ZTpzLmF2Z19jb3N0LGN1cnJlbmN5OnMuY3VycmVuY3l9KSxzb3J0VmFsdWU6cz0+cy5hdmdfY29zdH0se2lkOiJ1bnJlYWxpemVkX3BubCIsaGVhZGVyOm4oInBlcmYuY29sLnVucmVhbGl6ZWRfcG5sIiksbnVtZXJpYzohMCxjZWxsOnM9PnMuc3RhdHVzIT09Im9rIj8i4oCUIjplLmpzeCh6LHt2YWx1ZTpzLnVucmVhbGl6ZWRfcG5sLGN1cnJlbmN5OnMuY3VycmVuY3ksc2lnbmVkOiEwfSksc29ydFZhbHVlOnM9PnMudW5yZWFsaXplZF9wbmx9LHtpZDoic3RhdHVzIixoZWFkZXI6bigiY29tbW9uLnN0YXR1cyIpLGNlbGw6cz0+cy5zdGF0dXMhPT0ib2siP2UuanN4KEsse3N0YXR1czpzLnN0YXR1cyxyZWFzb246cy51bmF2YWlsYWJsZV9yZWFzb259KTpudWxsfV0sbD1WZShyLG8pO3JldHVybiBlLmpzeHMoImRpdiIse2NoaWxkcmVuOltlLmpzeHMoInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsc3R5bGU6e21hcmdpblRvcDowfSxjaGlsZHJlbjpbbihyLmxhYmVsX2tleSksbD9gIMK3ICR7bigicGVyZi5ob2xkaW5nc19jb3ZlcmFnZV9hY2NvdW50cyIse3ZhbHVlOmx9KX1gOiIiXX0pLGUuanN4KCRlLHtjb2x1bW5zOnQscm93czpyLnJvd3Mscm93S2V5OnM9PmAke3MucGxhdGZvcm19OiR7cy5hY2NvdW50X2FsaWFzfXwke3Muc3ltYm9sfWAsZGVmYXVsdFNvcnQ6e2NvbHVtbjoibWFya2V0X3ZhbHVlIixkaXJlY3Rpb246ImRlc2MifSxjYXB0aW9uOm4oInBlcmYuaG9sZGluZ3NfdGl0bGUiKX0pXX0pfWZ1bmN0aW9uIFllKHtzdGF0ZTphfSl7Y29uc3Qgbj1nKCkse3dpbm5lcnM6byxsb3NlcnM6cn09JC51c2VNZW1vKCgpPT57aWYoYS5waGFzZSE9PSJyZWFkeSJ8fCFqKGEuZGF0YS5zdGF0dXMpKXJldHVybnt3aW5uZXJzOltdLGxvc2VyczpbXX07Y29uc3QgdD1hLmRhdGEucm93cy5maWx0ZXIoaT0+aS51bnJlYWxpemVkX3BubCE9PW51bGwmJmkuYXZnX2Nvc3QhPT1udWxsJiZpLnF1YW50aXR5IT09bnVsbCYmaS5hdmdfY29zdCppLnF1YW50aXR5PjApLm1hcChpPT4oe2lkOmAke2kucGxhdGZvcm19OiR7aS5hY2NvdW50X2FsaWFzfXwke2kuc3ltYm9sfWAsbGFiZWw6aS5zeW1ib2wscG5sOmkudW5yZWFsaXplZF9wbmwsdmFsdWU6aS51bnJlYWxpemVkX3BubC8oaS5hdmdfY29zdCppLnF1YW50aXR5KSoxMDB9KSksbD10LmZpbHRlcihpPT5pLnBubD4wKS5zb3J0KChpLHUpPT51LnBubC1pLnBubCkuc2xpY2UoMCx0ZSkubWFwKCh7aWQ6aSxsYWJlbDp1LHZhbHVlOmN9KT0+KHtpZDppLGxhYmVsOnUsdmFsdWU6Y30pKSxzPXQuZmlsdGVyKGk9PmkucG5sPDApLnNvcnQoKGksdSk9PmkucG5sLXUucG5sKS5zbGljZSgwLHRlKS5tYXAoKHtpZDppLGxhYmVsOnUsdmFsdWU6Y30pPT4oe2lkOmksbGFiZWw6dSx2YWx1ZTpjfSkpO3JldHVybnt3aW5uZXJzOmwsbG9zZXJzOnN9fSxbYV0pO3JldHVybiBhLnBoYXNlPT09ImxvYWRpbmciP2UuanN4KFMse2hlaWdodDoxNjB9KTphLnBoYXNlPT09ImVycm9yIj9lLmpzeChMLHtvblJldHJ5OmEucmVsb2FkfSk6aihhLmRhdGEuc3RhdHVzKT8hby5sZW5ndGgmJiFyLmxlbmd0aD9lLmpzeChOLHt0aXRsZTpuKCJzdGF0ZS5ub19kYXRhIil9KTplLmpzeHMoImRpdiIse2NoaWxkcmVuOltvLmxlbmd0aD4wJiZlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1yYW5raW5nLXNlY3Rpb24iLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjbGFzc05hbWU6InBlcmYtcmFua2luZy1oZWFkaW5nIixjaGlsZHJlbjpuKCJwZXJmLnJhbmtpbmdfd2lubmVycyIpfSksZS5qc3gobmUse2l0ZW1zOm99KV19KSxyLmxlbmd0aD4wJiZlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGVyZi1yYW5raW5nLXNlY3Rpb24iLGNoaWxkcmVuOltlLmpzeCgiaDMiLHtjbGFzc05hbWU6InBlcmYtcmFua2luZy1oZWFkaW5nIixjaGlsZHJlbjpuKCJwZXJmLnJhbmtpbmdfbG9zZXJzIil9KSxlLmpzeChuZSx7aXRlbXM6cn0pXX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOm4oInBlcmYucmFua2luZ19ub3RlIil9KV19KTplLmpzeChOLHt0aXRsZTpuKGBzdGF0ZS4ke2EuZGF0YS5zdGF0dXN9YCksYm9keTphLmRhdGEudW5hdmFpbGFibGVfcmVhc29uP24oYHJlYXNvbi4ke2EuZGF0YS51bmF2YWlsYWJsZV9yZWFzb259YCk6dm9pZCAwfSl9ZnVuY3Rpb24gWmUoe3Njb3BlOmEscGxhdGZvcm06bixyYW5nZTpvLGVwb2NoOnJ9KXtjb25zdCB0PWcoKSxsPUYoKCk9PmJlKGEsbyxuKSxbYSxuLG8scl0pO2lmKGwucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4KFMse2hlaWdodDo0OH0pO2lmKGwucGhhc2U9PT0iZXJyb3IiKXJldHVybiBlLmpzeChMLHtvblJldHJ5OmwucmVsb2FkfSk7Y29uc3Qgcz1sLmRhdGE7cmV0dXJuIHMuc3RhdHVzPT09Im5vdF9jb25uZWN0ZWQiP2UuanN4KE4se3RpdGxlOnQoInN0YXRlLm5vdF9jb25uZWN0ZWQiKSxib2R5OnMudW5hdmFpbGFibGVfcmVhc29uP3QoYHJlYXNvbi4ke3MudW5hdmFpbGFibGVfcmVhc29ufWApOnZvaWQgMH0pOmUuanN4KE4se3RpdGxlOnQoYHN0YXRlLiR7cy5zdGF0dXN9YCl9KX1mdW5jdGlvbiBVZSh7c2NvcGU6YSxwbGF0Zm9ybTpuLHJhbmdlOm8sZXBvY2g6cn0pe2NvbnN0IHQ9ZygpLFtsLHNdPSQudXNlU3RhdGUoImhvbGRpbmdzIiksaT1GKCgpPT52ZShhLG8sbiksW2EsbixvLHJdKTtsZXQgdTtyZXR1cm4gbD09PSJob2xkaW5ncyI/dT1lLmpzeChPZSx7c3RhdGU6aX0pOmw9PT0icmFua2luZyI/dT1lLmpzeChZZSx7c3RhdGU6aX0pOnU9ZS5qc3goWmUse3Njb3BlOmEscGxhdGZvcm06bixyYW5nZTpvLGVwb2NoOnJ9KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2FyZCIsY2hpbGRyZW46W2UuanN4KHdlLHtpZDoicGVyZm9ybWFuY2UiLGl0ZW1zOlt7aWQ6ImhvbGRpbmdzIixsYWJlbDp0KCJwZXJmLmhvbGRpbmdzX3RpdGxlIil9LHtpZDoicmFua2luZyIsbGFiZWw6dCgicGVyZi5yYW5raW5nX3RpdGxlIil9LHtpZDoidHJhZGVzIixsYWJlbDp0KCJwZXJmLnRyYWRlc190aXRsZSIpfV0sYWN0aXZlOmwsb25DaGFuZ2U6cyxhcmlhTGFiZWw6dCgibmF2LnBlcmZvcm1hbmNlIil9KSxlLmpzeHMoImRpdiIse2lkOiJwZXJmb3JtYW5jZS1wYW5lbCIsY2xhc3NOYW1lOiJwZXJmLXRhYi1ib2R5Iixyb2xlOiJ0YWJwYW5lbCIsImFyaWEtbGFiZWxsZWRieSI6YHBlcmZvcm1hbmNlLXRhYi0ke2x9YCx0YWJJbmRleDowLGNoaWxkcmVuOltsIT09InRyYWRlcyImJmkucGhhc2U9PT0icmVhZHkiJiZlLmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjplLmpzeChjZSx7Y291bnRzOmkuZGF0YS5mcmVzaG5lc3Nfc3VtbWFyeX0pfSksdV19KV19KX1mdW5jdGlvbiBzYSgpe2NvbnN0IGE9ZygpLG49UigpLHtwcmVmczpvfT1PKCkse3Njb3BlOnIsb3B0aW9uczp0fT1nZSgpLGw9cj09PSJhbGwiP3ZvaWQgMDp0LmZpbmQoaD0+YCR7aC5wbGF0Zm9ybX06JHtoLmFsaWFzfWA9PT1yKT8ucGxhdGZvcm0sW3MsaV09JC51c2VTdGF0ZShvLmRlZmF1bHRSYW5nZSksW3UsY109JC51c2VTdGF0ZSgwKSxwPSgpPT5jKGg9PmgrMSksZj1GKGFzeW5jKCk9Pntjb25zdCBoPWF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChHLm1hcChiPT5yZShyLGIsbCkpKSxkPXt9O3JldHVybiBoLmZvckVhY2goKGIsXyk9Pntjb25zdCB4PUdbX107ZFt4XT1iLnN0YXR1cz09PSJmdWxmaWxsZWQiJiZqKGIudmFsdWUuc3RhdHVzKSYmYi52YWx1ZS50d3JfcmV0dXJuX3BlcmNlbnQhPT1udWxsP0koYi52YWx1ZS50d3JfcmV0dXJuX3BlcmNlbnQsbik6bnVsbH0pLGR9LFtyLGwsbix1XSk7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwYWdlIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyIixjaGlsZHJlbjpbZS5qc3goImgxIix7Y2xhc3NOYW1lOiJwYWdlLXRpdGxlIixjaGlsZHJlbjphKCJuYXYucGVyZm9ybWFuY2UiKX0pLGUuanN4KHllLHt2YWx1ZTpzLG9uQ2hhbmdlOmkscmV0dXJuczpmLnBoYXNlPT09InJlYWR5Ij9mLmRhdGE6dm9pZCAwfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBlcmYtc3BhY2VyIn0pLGUuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLG9uQ2xpY2s6cCxjaGlsZHJlbjphKCJjb21tb24ucmVmcmVzaCIpfSldfSksZS5qc3goRmUse3Njb3BlOnIscGxhdGZvcm06bCxyYW5nZTpzLGVwb2NoOnV9KSxlLmpzeChMZSx7c2NvcGU6cixwbGF0Zm9ybTpsLHJhbmdlOnMsZXBvY2g6dX0pLGUuanN4KEtlLHtzY29wZTpyLHBsYXRmb3JtOmwscmFuZ2U6cyxlcG9jaDp1fSksZS5qc3goSWUse3Njb3BlOnIscGxhdGZvcm06bCxyYW5nZTpzLGVwb2NoOnV9KSxlLmpzeChVZSx7c2NvcGU6cixwbGF0Zm9ybTpsLHJhbmdlOnMsZXBvY2g6dX0pXX0pfWV4cG9ydHtzYSBhcyBkZWZhdWx0fTsK" }, "/v2/assets/StrategiesPage-CNrrBrDc.css": { contentType: "text/css; charset=utf-8", base64: "LnBhZ2UtaGVhZGVyIC5wYWdlLWhlYWRlci1zcGFjZXJ7ZmxleDoxIDEgYXV0b30uY2F0YWxvZy1tZXRhe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7ZmxleC13cmFwOndyYXB9LnN0cmF0ZWd5LWNhcmR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweH0uc3RyYXRlZ3ktY2FyZC1oZWFke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHh9LnN0cmF0ZWd5LWNhcmQtdGl0bGV7bWFyZ2luOjA7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LnN0cmF0ZWd5LXJvd3N7bWFyZ2luOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4fS5zdHJhdGVneS1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O2ZvbnQtc2l6ZToxM3B4fS5zdHJhdGVneS1yb3cgZHR7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZsZXg6MCAwIGF1dG99LnN0cmF0ZWd5LXJvdyBkZHttYXJnaW46MDt0ZXh0LWFsaWduOnJpZ2h0O292ZXJmbG93LXdyYXA6YW55d2hlcmU7ZGlzcGxheTpmbGV4O2dhcDo2cHg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2FsaWduLWl0ZW1zOmNlbnRlcn0uc3RyYXRlZ3ktYWNjb3VudHN7ZGlzcGxheTppbmxpbmUtZmxleDtnYXA6NHB4IDhweDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnN0cmF0ZWd5LWFjY291bnQtbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4taGVpZ2h0OjMycHg7Y29sb3I6dmFyKC0tYWNjZW50KTtwYWRkaW5nOjRweCA2cHg7Ym9yZGVyLXJhZGl1czo0cHh9LnN0cmF0ZWd5LWFjY291bnQtbGluazpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5zdHJhdGVneS1jYXJkLWZvb3R7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDp3cmFwfS5zdHJhdGVneS1leGVjdXRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmctdG9wOjhweDtmb250LXNpemU6MTNweH0uc3RyYXRlZ3ktZXhlY3V0aW9uLXRpdGxlLC5zdHJhdGVneS1leGVjdXRpb24tbm90ZXtjb2xvcjp2YXIoLS1tdXRlZCl9LnN0cmF0ZWd5LWV4ZWN1dGlvbi1hY2NvdW50e2Rpc3BsYXk6ZmxleDtnYXA6NnB4IDEycHg7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyfS5zdHJhdGVneS1leGVjdXRpb24tbm90ZXttYXJnaW46MDtsaW5lLWhlaWdodDoxLjV9LnN0cmF0ZWd5LWRldGFpbHN7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7cGFkZGluZy10b3A6OHB4O21hcmdpbi10b3A6YXV0b30uc3RyYXRlZ3ktZGV0YWlscyBzdW1tYXJ5e2N1cnNvcjpwb2ludGVyO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTNweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzo2cHggMH0uc3RyYXRlZ3ktZGV0YWlscyBzdW1tYXJ5OmhvdmVye2NvbG9yOnZhcigtLWluayl9LnN0cmF0ZWd5LWRldGFpbHMtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7cGFkZGluZy10b3A6OHB4fS5yZXNlYXJjaC1saXN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweH0ucmVzZWFyY2gtaXRlbXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHh9LnJlc2VhcmNoLWl0ZW0taGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHg7ZmxleC13cmFwOndyYXB9LnJlc2VhcmNoLWl0ZW0tdGl0bGV7Zm9udC13ZWlnaHQ6NjAwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LnJlc2VhcmNoLWl0ZW0tc3VtbWFyeXttYXJnaW46MDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEzcHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0K" }, - "/v2/assets/StrategiesPage-x0z0QaW-.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgbCxyIGFzIGYsaiBhcyBlLGExIGFzIHYsZiBhcyBkLEUgYXMgaixpIGFzIHgsUyBhcyBvLEEgYXMgdSxCIGFzIGgsdyBhcyBnLG4gYXMgTixlIGFzIGIsYTAgYXMgbX1mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2ltcG9ydHt1IGFzIHB9ZnJvbSIuL2hvb2tzLUQwb1M1dWJHLmpzIjtpbXBvcnR7VCBhcyB3fWZyb20iLi9UYWJzLURiN3gzaHVpLmpzIjtmdW5jdGlvbiBrKHthY2NvdW50czphfSl7Y29uc3Qgcj1sKCkscz1nKCksaT1iKCk7cmV0dXJuIGEubGVuZ3RoPT09MD9lLmpzeChlLkZyYWdtZW50LHtjaGlsZHJlbjpyKCJjb21tb24ubm9uZSIpfSk6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InN0cmF0ZWd5LWFjY291bnRzIixjaGlsZHJlbjphLm1hcCh0PT5lLmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJzdHJhdGVneS1hY2NvdW50LWxpbmsiLHRpdGxlOm0odCksb25DbGljazooKT0+aSh7cGFnZToiYWNjb3VudHMiLGFjY291bnQ6bSh0KX0pLGNoaWxkcmVuOltzLnBsYXRmb3JtKHQucGxhdGZvcm0pLCIgwrcgIixzLmFjY291bnQodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pXX0sbSh0KSkpfSl9ZnVuY3Rpb24gXyh7c3RyYXRlZ3k6YX0pe2NvbnN0IHI9bCgpO3JldHVybiBlLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KG8se3N0YXR1czphLmhlYWx0aF9zdGF0dXN9KSxhLmhlYWx0aF9zY29yZSE9PW51bGwmJmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMuaGVhbHRoX3Njb3JlIix7dmFsdWU6YS5oZWFsdGhfc2NvcmV9KX0pXX0pfWZ1bmN0aW9uIEEoe2FjY291bnRzOmF9KXtjb25zdCByPWwoKSxzPWcoKTtpZihhLmxlbmd0aD09PTApcmV0dXJuIG51bGw7Y29uc3QgaT1hLnNvbWUodD0+dC5leGVjdXRpb25fbW9kZT09PSJsaXZlIik7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24iLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24tdGl0bGUiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iKX0pLGEubWFwKHQ9Pntjb25zdCBuPXQuZXhlY3V0aW9uX21vZGU9PT0ibGl2ZSImJnQubGl2ZV9zdGF0dXM9PT0iY29uZmlndXJlZF9saXZlIj90LmNvbnRpbnVhdGlvbl9yZWFzb249PT0ibGVnYWN5X2xpdmVfY29udGludWF0aW9uIj8ibGVnYWN5X2xpdmUiOiJsaXZlIjp0LmV4ZWN1dGlvbl9tb2RlPT09ImxpdmUiPyJsaXZlX3Vua25vd24iOnQuZXhlY3V0aW9uX21vZGU9PT0icGFwZXIifHx0LmV4ZWN1dGlvbl9tb2RlPT09ImRyeV9ydW4iP3QuZXhlY3V0aW9uX21vZGU6InVua25vd24iO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktZXhlY3V0aW9uLWFjY291bnQiLGNoaWxkcmVuOltlLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbcy5wbGF0Zm9ybSh0LnBsYXRmb3JtKSwiIMK3ICIscy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKV19KSxlLmpzeChoLHt0b25lOnQuZXhlY3V0aW9uX21vZGU9PT0ibGl2ZSI/Indhcm4iOiJ1bmtub3duIixjaGlsZHJlbjpyKGBzdHJhdGVnaWVzLmV4ZWN1dGlvbi4ke259YCl9KV19LG0odCkpfSksaSYmZS5qc3goInAiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWV4ZWN1dGlvbi1ub3RlIixjaGlsZHJlbjpyKCJzdHJhdGVnaWVzLmxpdmVfZXhwb3N1cmUiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24tbm90ZSIsY2hpbGRyZW46cigic3RyYXRlZ2llcy5leGVjdXRpb25fc291cmNlIil9KV19KX1mdW5jdGlvbiBTKHtzdHJhdGVneTphLHN1bW1hcnlBc09mOnJ9KXtjb25zdCBzPWwoKSxpPWcoKSx0PWEuYWxsb3dlZF9leGVjdXRpb25fbW9kZXMubGVuZ3RoPjA/YS5hbGxvd2VkX2V4ZWN1dGlvbl9tb2Rlcy5tYXAoaS5sYW5lKS5qb2luKCIgwrcgIik6cygiY29tbW9uLm5hIiksYz1hLmNvbmZpZ3VyZWRfYWNjb3VudHMubGVuZ3RoPjA/YS5jb25maWd1cmVkX2FjY291bnRzLm1hcChuPT5gJHtpLnBsYXRmb3JtKG4ucGxhdGZvcm0pfSDCtyAke2kuYWNjb3VudChuLmFjY291bnRfYWxpYXMsbi5wbGF0Zm9ybSl9YCkuam9pbigiIMK3ICIpOnMoImNvbW1vbi5ub25lIik7cmV0dXJuIGUuanN4cygiYXJ0aWNsZSIse2NsYXNzTmFtZToiY2FyZCBzdHJhdGVneS1jYXJkIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMyIse2NsYXNzTmFtZToic3RyYXRlZ3ktY2FyZC10aXRsZSIsY2hpbGRyZW46aS5zdHJhdGVneShhLnByb2ZpbGUpfSksZS5qc3gobyx7c3RhdHVzOmEuaGVhbHRoX3N0YXR1c30pXX0pLGUuanN4cygiZGwiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvd3MiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktcm93IixjaGlsZHJlbjpbZS5qc3goImR0Iix7Y2hpbGRyZW46cygic3RyYXRlZ2llcy5kb21haW4iKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOmkuZG9tYWluKGEuZG9tYWluKX0pXX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3ciLGNoaWxkcmVuOltlLmpzeCgiZHQiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLm1vZGVzIil9KSxlLmpzeCgiZGQiLHtjaGlsZHJlbjp0fSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMuYWNjb3VudHNfdXNpbmciKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOmUuanN4KGsse2FjY291bnRzOmEuY29uZmlndXJlZF9hY2NvdW50c30pfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMuaGVhbHRoIil9KSxlLmpzeCgiZGQiLHtjaGlsZHJlbjplLmpzeChfLHtzdHJhdGVneTphfSl9KV19KV19KSxlLmpzeChBLHthY2NvdW50czphLmNvbmZpZ3VyZWRfYWNjb3VudHN9KSxhLnN0YXR1cyE9PSJvayImJmUuanN4KCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWNhcmQtZm9vdCIsY2hpbGRyZW46ZS5qc3gobyx7c3RhdHVzOmEuc3RhdHVzLHJlYXNvbjphLnVuYXZhaWxhYmxlX3JlYXNvbn0pfSksZS5qc3hzKCJkZXRhaWxzIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1kZXRhaWxzIixjaGlsZHJlbjpbZS5qc3goInN1bW1hcnkiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLmRldGFpbHMiKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1kZXRhaWxzLWJvZHkiLGNoaWxkcmVuOltlLmpzeHMoImRsIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3dzIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMubW9kZXMiKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOnR9KV19KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktcm93IixjaGlsZHJlbjpbZS5qc3goImR0Iix7Y2hpbGRyZW46cygic3RyYXRlZ2llcy5hY2NvdW50c191c2luZyIpfSksZS5qc3goImRkIix7Y2hpbGRyZW46Y30pXX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3ciLGNoaWxkcmVuOltlLmpzeCgiZHQiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLmhlYWx0aCIpfSksZS5qc3goImRkIix7Y2hpbGRyZW46ZS5qc3goXyx7c3RyYXRlZ3k6YX0pfSldfSldfSksZS5qc3godSx7dmFsdWU6cn0pXX0pXX0pXX0pfWZ1bmN0aW9uIEUoe3JlZnJlc2hFcG9jaDphfSl7Y29uc3Qgcj1sKCkscz1wKHYsW2FdKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1ncmlkIiwiYXJpYS1idXN5IjoidHJ1ZSIsY2hpbGRyZW46WzAsMSwyXS5tYXAodD0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQgc3RyYXRlZ3ktY2FyZCIsY2hpbGRyZW46W2UuanN4KGQse2hlaWdodDoxOCx3aWR0aDoiNTUlIn0pLGUuanN4KGQse2hlaWdodDoxMn0pLGUuanN4KGQse2hlaWdodDoxMn0pLGUuanN4KGQse2hlaWdodDoxMix3aWR0aDoiNzAlIn0pXX0sdCkpfSk7aWYocy5waGFzZT09PSJlcnJvciIpcmV0dXJuIGUuanN4KGose29uUmV0cnk6cy5yZWxvYWR9KTtjb25zdCBpPXMuZGF0YTtyZXR1cm4gaS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiP2UuanN4KGose29uUmV0cnk6cy5yZWxvYWR9KTppLnN0cmF0ZWdpZXMubGVuZ3RoPT09MD9pLnN0YXR1cz09PSJub3RfY29ubmVjdGVkIj9lLmpzeCh4LHt0aXRsZTpyKCJzdGF0ZS5ub3RfY29ubmVjdGVkIiksYm9keTpyKCJyZWFzb24uc3RyYXRlZ3lfaGVhbHRoX25vdF9jb25uZWN0ZWQiKX0pOmUuanN4KHgse3RpdGxlOnIoInN0cmF0ZWdpZXMuZW1wdHkiKX0pOmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToic2VjdGlvbi1zdGFjayIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXRhbG9nLW1ldGEiLGNoaWxkcmVuOltpLnN0YXR1cyE9PSJvayImJmUuanN4KG8se3N0YXR1czppLnN0YXR1c30pLGUuanN4KHUse3ZhbHVlOmkuYXNfb2Z9KV19KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1ncmlkIixjaGlsZHJlbjppLnN0cmF0ZWdpZXMubWFwKHQ9PmUuanN4KFMse3N0cmF0ZWd5OnQsc3VtbWFyeUFzT2Y6aS5hc19vZn0sdC5wcm9maWxlKSl9KV19KX1mdW5jdGlvbiBSKGEpe2lmKCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJue3N0YXR1czoicmVhZF9mYWlsZWQifTtjb25zdCByPWE7cmV0dXJuIHIuc2NoZW1hX3ZlcnNpb24hPT0icXNsX20wX3Jlc2VhcmNoX2Rhc2hib2FyZC52MSJ8fCFbInJlYWR5Iiwic3RhbGUiLCJ1bmF2YWlsYWJsZSJdLmluY2x1ZGVzKHIuZGF0YV9zdGF0dXMpfHwhQXJyYXkuaXNBcnJheShyLnN1YmplY3RzKXx8IUFycmF5LmlzQXJyYXkoci5lcnJvcnMpP3tzdGF0dXM6InJlYWRfZmFpbGVkIn06ci5lcnJvcnMuc29tZShzPT50eXBlb2YgcyE9InN0cmluZyJ8fC9mYWlsZWR8dW5yZWFkYWJsZXxpbnZhbGlkLy50ZXN0KHMpKT97c3RhdHVzOiJyZWFkX2ZhaWxlZCJ9OnIuZGF0YV9zdGF0dXM9PT0idW5hdmFpbGFibGUiP3tzdGF0dXM6InVuYXZhaWxhYmxlIn06ci5zdWJqZWN0cy5ldmVyeShzPT5zPy5zdWJqZWN0JiZ0eXBlb2Ygcy5zdWJqZWN0LmlkZW50aWZpZXI9PSJzdHJpbmciJiZBcnJheS5pc0FycmF5KHMub2JzZXJ2YXRpb25zKSYmcy5vYnNlcnZhdGlvbnMuZXZlcnkoaT0+aSYmQXJyYXkuaXNBcnJheShpLnNvdXJjZV9pZHMpJiZpLnNvdXJjZV9pZHMuZXZlcnkodD0+dHlwZW9mIHQ9PSJzdHJpbmciKSYmdHlwZW9mIGkuZ2VuZXJhdGVkX2F0PT0ic3RyaW5nIiYmdHlwZW9mIGkuZXhwaXJlc19hdD09InN0cmluZyImJnR5cGVvZiBpLmFzX29mPT0ic3RyaW5nIiYmdHlwZW9mIGkucmVzZWFyY2hfY29udGV4dD8uc3RhdGU9PSJzdHJpbmciJiZ0eXBlb2YgaS5mcmVzaG5lc3M/LnN0YXR1cz09InN0cmluZyIpKT97c3RhdHVzOnIuZGF0YV9zdGF0dXMsZGFzaGJvYXJkOnJ9OntzdGF0dXM6InJlYWRfZmFpbGVkIn19YXN5bmMgZnVuY3Rpb24gJCgpe3JldHVybiBSKGF3YWl0IE4oIi9hcGkvbTAtcmVzZWFyY2giKSl9ZnVuY3Rpb24gVCh7cmVmcmVzaEVwb2NoOmF9KXtjb25zdCByPWwoKSxzPXAoJCxbYV0pO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzZWN0aW9uLXN0YWNrIiwiYXJpYS1idXN5IjoidHJ1ZSIsY2hpbGRyZW46W2UuanN4KGQse2hlaWdodDo3Mn0pLGUuanN4KGQse2hlaWdodDo3Mn0pXX0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goaix7b25SZXRyeTpzLnJlbG9hZH0pO2lmKHMuZGF0YS5zdGF0dXM9PT0idW5hdmFpbGFibGUiKXJldHVybiBlLmpzeCh4LHt0aXRsZTpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX3VuYXZhaWxhYmxlIil9KTtjb25zdCBpPXMuZGF0YS5kYXNoYm9hcmQ7cmV0dXJuIGkuc3ViamVjdHMubGVuZ3RoPT09MD9lLmpzeCh4LHt0aXRsZTpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX2VtcHR5Iil9KTplLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2F0YWxvZy1tZXRhIixjaGlsZHJlbjpbZS5qc3goaCx7dG9uZToiYWNjZW50IixjaGlsZHJlbjpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX29ubHkiKX0pLHMuZGF0YS5zdGF0dXM9PT0ic3RhbGUiJiZlLmpzeChvLHtzdGF0dXM6InN0YWxlIn0pLGUuanN4KHUse3ZhbHVlOmkuc291cmNlX2dlbmVyYXRlZF9hdH0pXX0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6InJlc2VhcmNoLWxpc3QiLGNoaWxkcmVuOmkuc3ViamVjdHMubWFwKCh0LGMpPT5lLmpzeHMoImFydGljbGUiLHtjbGFzc05hbWU6ImNhcmQgcmVzZWFyY2gtaXRlbSIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToicmVzZWFyY2gtaXRlbS10aXRsZSIsY2hpbGRyZW46dC5zdWJqZWN0LmlkZW50aWZpZXJ9KSxlLmpzeChoLHt0b25lOiJhY2NlbnQiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfb25seSIpfSldfSksdC5vYnNlcnZhdGlvbnMubWFwKChuLHkpPT5lLmpzeHMoImRpdiIse2NsYXNzTmFtZToic2VjdGlvbi1zdGFjayIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXRhbG9nLW1ldGEiLGNoaWxkcmVuOltlLmpzeChvLHtzdGF0dXM6bi5mcmVzaG5lc3Muc3RhdHVzfSksZS5qc3goaCx7dG9uZToiYWNjZW50IixjaGlsZHJlbjpyKGByZXNlYXJjaC5zdGF0ZS4ke24ucmVzZWFyY2hfY29udGV4dC5zdGF0ZX1gKX0pXX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLXN1bW1hcnkiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfc291cmNlcyIse3ZhbHVlOm4uc291cmNlX2lkcy5qb2luKCIgwrcgIil8fHIoImNvbW1vbi51bmtub3duIil9KX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLXN1bW1hcnkiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfYXNfb2YiLHt2YWx1ZTpuLmFzX29mfSl9KSxlLmpzeCh1LHt2YWx1ZTpuLmdlbmVyYXRlZF9hdH0pLGUuanN4KHUse3ZhbHVlOm4uZXhwaXJlc19hdCxwcmVmaXg6InN0cmF0ZWdpZXMucmVzZWFyY2hfZXhwaXJlcyJ9KV19LHkpKV19LGAke3Quc3ViamVjdC5raW5kfS8ke3Quc3ViamVjdC5pZGVudGlmaWVyfS8ke2N9YCkpfSldfSl9ZnVuY3Rpb24gRigpe2NvbnN0IGE9bCgpLFtyLHNdPWYudXNlU3RhdGUoImNhdGFsb2ciKSxbaSx0XT1mLnVzZVN0YXRlKDApO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2UuanN4cygiaGVhZGVyIix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2UuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46YSgic3RyYXRlZ2llcy50aXRsZSIpfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyLXNwYWNlciJ9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+dChjPT5jKzEpLGNoaWxkcmVuOmEoImNvbW1vbi5yZWZyZXNoIil9KV19KSxlLmpzeCh3LHtpZDoic3RyYXRlZ2llcyIsaXRlbXM6W3tpZDoiY2F0YWxvZyIsbGFiZWw6YSgic3RyYXRlZ2llcy50YWIuY2F0YWxvZyIpfSx7aWQ6InJlc2VhcmNoIixsYWJlbDphKCJzdHJhdGVnaWVzLnRhYi5yZXNlYXJjaCIpfV0sYWN0aXZlOnIsb25DaGFuZ2U6Yz0+cyhjKSxhcmlhTGFiZWw6YSgic3RyYXRlZ2llcy50aXRsZSIpfSksZS5qc3goImRpdiIse2lkOiJzdHJhdGVnaWVzLXBhbmVsIixyb2xlOiJ0YWJwYW5lbCIsImFyaWEtbGFiZWxsZWRieSI6YHN0cmF0ZWdpZXMtdGFiLSR7cn1gLHRhYkluZGV4OjAsY2hpbGRyZW46cj09PSJjYXRhbG9nIj9lLmpzeChFLHtyZWZyZXNoRXBvY2g6aX0pOmUuanN4KFQse3JlZnJlc2hFcG9jaDppfSl9KV19KX1leHBvcnR7RiBhcyBkZWZhdWx0fTsK" }, - "/v2/assets/Tabs-Db7x3hui.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgc31mcm9tIi4vaW5kZXgtSjVmcXo1aHYuanMiO2Z1bmN0aW9uIHgoe2lkOnQsaXRlbXM6bixhY3RpdmU6YSxvbkNoYW5nZTplLGFyaWFMYWJlbDpifSl7cmV0dXJuIHMuanN4KCJkaXYiLHtjbGFzc05hbWU6InRhYnMiLHJvbGU6InRhYmxpc3QiLCJhcmlhLWxhYmVsIjpiLGNoaWxkcmVuOm4ubWFwKGw9PnMuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLHJvbGU6InRhYiIsaWQ6YCR7dH0tdGFiLSR7bC5pZH1gLCJhcmlhLWNvbnRyb2xzIjpgJHt0fS1wYW5lbGAsImFyaWEtc2VsZWN0ZWQiOmwuaWQ9PT1hLHRhYkluZGV4OmwuaWQ9PT1hPzA6LTEsY2xhc3NOYW1lOmB0YWIke2wuaWQ9PT1hPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PmUobC5pZCksb25LZXlEb3duOnI9Pntjb25zdCBkPW4uZmluZEluZGV4KHU9PnUuaWQ9PT1sLmlkKSxvPXIua2V5PT09IkhvbWUiPzA6ci5rZXk9PT0iRW5kIj9uLmxlbmd0aC0xOnIua2V5PT09IkFycm93UmlnaHQiPyhkKzEpJW4ubGVuZ3RoOnIua2V5PT09IkFycm93TGVmdCI/KGQtMStuLmxlbmd0aCklbi5sZW5ndGg6bnVsbDtpZihvPT09bnVsbClyZXR1cm47ci5wcmV2ZW50RGVmYXVsdCgpLHIuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0idGFiIl0nKT8uW29dPy5mb2N1cygpLGUobltvXS5pZCl9LGNoaWxkcmVuOmwubGFiZWx9LGwuaWQpKX0pfWV4cG9ydHt4IGFzIFR9Owo=" }, - "/v2/assets/hooks-D0oS5ubG.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3J9ZnJvbSIuL2luZGV4LUo1ZnF6NWh2LmpzIjtmdW5jdGlvbiBwKCl7bGV0IGU9MDtyZXR1cm57YmVnaW4oKXtyZXR1cm4gZSs9MSxlfSxpc0N1cnJlbnQoYSl7cmV0dXJuIGE9PT1lfSxpbnZhbGlkYXRlKCl7ZSs9MX19fWZ1bmN0aW9uIGcoZSxhKXtjb25zdFtsLHVdPXIudXNlU3RhdGUoe3BoYXNlOiJsb2FkaW5nIixkYXRhOm51bGwsZXJyb3I6bnVsbH0pLHM9ci51c2VSZWYocCgpKSxbaSxmXT1yLnVzZVN0YXRlKDApLGM9ci51c2VSZWYoZSk7Yy5jdXJyZW50PWUsci51c2VFZmZlY3QoKCk9Pntjb25zdCB0PXMuY3VycmVudC5iZWdpbigpO3Uoe3BoYXNlOiJsb2FkaW5nIixkYXRhOm51bGwsZXJyb3I6bnVsbH0pO2xldCBvPSExO3JldHVybiBjLmN1cnJlbnQoKS50aGVuKG49PnshbyYmcy5jdXJyZW50LmlzQ3VycmVudCh0KSYmdSh7cGhhc2U6InJlYWR5IixkYXRhOm4sZXJyb3I6bnVsbH0pfSkuY2F0Y2gobj0+eyFvJiZzLmN1cnJlbnQuaXNDdXJyZW50KHQpJiZ1KHtwaGFzZToiZXJyb3IiLGRhdGE6bnVsbCxlcnJvcjpuIGluc3RhbmNlb2YgRXJyb3I/bjpuZXcgRXJyb3IoInJlcXVlc3RfZmFpbGVkIil9KX0pLCgpPT57bz0hMH19LFsuLi5hLGldKTtjb25zdCBkPXIudXNlQ2FsbGJhY2soKCk9PmYodD0+dCsxKSxbXSk7cmV0dXJuey4uLmwscmVsb2FkOmR9fWV4cG9ydHtwIGFzIGMsZyBhcyB1fTsK" }, + "/v2/assets/StrategiesPage-DRj2U0_Q.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3UgYXMgbCxyIGFzIGYsaiBhcyBlLGExIGFzIHYsZiBhcyBkLEUgYXMgaixpIGFzIHgsUyBhcyBvLEEgYXMgdSxCIGFzIGgsdyBhcyBnLG4gYXMgTixlIGFzIGIsYTAgYXMgbX1mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2ltcG9ydHt1IGFzIHB9ZnJvbSIuL2hvb2tzLUNSTmtZaHg3LmpzIjtpbXBvcnR7VCBhcyB3fWZyb20iLi9UYWJzLUJ3WHhEdkltLmpzIjtmdW5jdGlvbiBrKHthY2NvdW50czphfSl7Y29uc3Qgcj1sKCkscz1nKCksaT1iKCk7cmV0dXJuIGEubGVuZ3RoPT09MD9lLmpzeChlLkZyYWdtZW50LHtjaGlsZHJlbjpyKCJjb21tb24ubm9uZSIpfSk6ZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InN0cmF0ZWd5LWFjY291bnRzIixjaGlsZHJlbjphLm1hcCh0PT5lLmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJzdHJhdGVneS1hY2NvdW50LWxpbmsiLHRpdGxlOm0odCksb25DbGljazooKT0+aSh7cGFnZToiYWNjb3VudHMiLGFjY291bnQ6bSh0KX0pLGNoaWxkcmVuOltzLnBsYXRmb3JtKHQucGxhdGZvcm0pLCIgwrcgIixzLmFjY291bnQodC5hY2NvdW50X2FsaWFzLHQucGxhdGZvcm0pXX0sbSh0KSkpfSl9ZnVuY3Rpb24gXyh7c3RyYXRlZ3k6YX0pe2NvbnN0IHI9bCgpO3JldHVybiBlLmpzeHMoZS5GcmFnbWVudCx7Y2hpbGRyZW46W2UuanN4KG8se3N0YXR1czphLmhlYWx0aF9zdGF0dXN9KSxhLmhlYWx0aF9zY29yZSE9PW51bGwmJmUuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJudW0iLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMuaGVhbHRoX3Njb3JlIix7dmFsdWU6YS5oZWFsdGhfc2NvcmV9KX0pXX0pfWZ1bmN0aW9uIEEoe2FjY291bnRzOmF9KXtjb25zdCByPWwoKSxzPWcoKTtpZihhLmxlbmd0aD09PTApcmV0dXJuIG51bGw7Y29uc3QgaT1hLnNvbWUodD0+dC5leGVjdXRpb25fbW9kZT09PSJsaXZlIik7cmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24iLGNoaWxkcmVuOltlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24tdGl0bGUiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iKX0pLGEubWFwKHQ9Pntjb25zdCBuPXQuZXhlY3V0aW9uX21vZGU9PT0ibGl2ZSImJnQubGl2ZV9zdGF0dXM9PT0iY29uZmlndXJlZF9saXZlIj90LmNvbnRpbnVhdGlvbl9yZWFzb249PT0ibGVnYWN5X2xpdmVfY29udGludWF0aW9uIj8ibGVnYWN5X2xpdmUiOiJsaXZlIjp0LmV4ZWN1dGlvbl9tb2RlPT09ImxpdmUiPyJsaXZlX3Vua25vd24iOnQuZXhlY3V0aW9uX21vZGU9PT0icGFwZXIifHx0LmV4ZWN1dGlvbl9tb2RlPT09ImRyeV9ydW4iP3QuZXhlY3V0aW9uX21vZGU6InVua25vd24iO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktZXhlY3V0aW9uLWFjY291bnQiLGNoaWxkcmVuOltlLmpzeHMoInNwYW4iLHtjaGlsZHJlbjpbcy5wbGF0Zm9ybSh0LnBsYXRmb3JtKSwiIMK3ICIscy5hY2NvdW50KHQuYWNjb3VudF9hbGlhcyx0LnBsYXRmb3JtKV19KSxlLmpzeChoLHt0b25lOnQuZXhlY3V0aW9uX21vZGU9PT0ibGl2ZSI/Indhcm4iOiJ1bmtub3duIixjaGlsZHJlbjpyKGBzdHJhdGVnaWVzLmV4ZWN1dGlvbi4ke259YCl9KV19LG0odCkpfSksaSYmZS5qc3goInAiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWV4ZWN1dGlvbi1ub3RlIixjaGlsZHJlbjpyKCJzdHJhdGVnaWVzLmxpdmVfZXhwb3N1cmUiKX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1leGVjdXRpb24tbm90ZSIsY2hpbGRyZW46cigic3RyYXRlZ2llcy5leGVjdXRpb25fc291cmNlIil9KV19KX1mdW5jdGlvbiBTKHtzdHJhdGVneTphLHN1bW1hcnlBc09mOnJ9KXtjb25zdCBzPWwoKSxpPWcoKSx0PWEuYWxsb3dlZF9leGVjdXRpb25fbW9kZXMubGVuZ3RoPjA/YS5hbGxvd2VkX2V4ZWN1dGlvbl9tb2Rlcy5tYXAoaS5sYW5lKS5qb2luKCIgwrcgIik6cygiY29tbW9uLm5hIiksYz1hLmNvbmZpZ3VyZWRfYWNjb3VudHMubGVuZ3RoPjA/YS5jb25maWd1cmVkX2FjY291bnRzLm1hcChuPT5gJHtpLnBsYXRmb3JtKG4ucGxhdGZvcm0pfSDCtyAke2kuYWNjb3VudChuLmFjY291bnRfYWxpYXMsbi5wbGF0Zm9ybSl9YCkuam9pbigiIMK3ICIpOnMoImNvbW1vbi5ub25lIik7cmV0dXJuIGUuanN4cygiYXJ0aWNsZSIse2NsYXNzTmFtZToiY2FyZCBzdHJhdGVneS1jYXJkIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWNhcmQtaGVhZCIsY2hpbGRyZW46W2UuanN4KCJoMyIse2NsYXNzTmFtZToic3RyYXRlZ3ktY2FyZC10aXRsZSIsY2hpbGRyZW46aS5zdHJhdGVneShhLnByb2ZpbGUpfSksZS5qc3gobyx7c3RhdHVzOmEuaGVhbHRoX3N0YXR1c30pXX0pLGUuanN4cygiZGwiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvd3MiLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktcm93IixjaGlsZHJlbjpbZS5qc3goImR0Iix7Y2hpbGRyZW46cygic3RyYXRlZ2llcy5kb21haW4iKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOmkuZG9tYWluKGEuZG9tYWluKX0pXX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3ciLGNoaWxkcmVuOltlLmpzeCgiZHQiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLm1vZGVzIil9KSxlLmpzeCgiZGQiLHtjaGlsZHJlbjp0fSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMuYWNjb3VudHNfdXNpbmciKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOmUuanN4KGsse2FjY291bnRzOmEuY29uZmlndXJlZF9hY2NvdW50c30pfSldfSksZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMuaGVhbHRoIil9KSxlLmpzeCgiZGQiLHtjaGlsZHJlbjplLmpzeChfLHtzdHJhdGVneTphfSl9KV19KV19KSxlLmpzeChBLHthY2NvdW50czphLmNvbmZpZ3VyZWRfYWNjb3VudHN9KSxhLnN0YXR1cyE9PSJvayImJmUuanN4KCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LWNhcmQtZm9vdCIsY2hpbGRyZW46ZS5qc3gobyx7c3RhdHVzOmEuc3RhdHVzLHJlYXNvbjphLnVuYXZhaWxhYmxlX3JlYXNvbn0pfSksZS5qc3hzKCJkZXRhaWxzIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1kZXRhaWxzIixjaGlsZHJlbjpbZS5qc3goInN1bW1hcnkiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLmRldGFpbHMiKX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1kZXRhaWxzLWJvZHkiLGNoaWxkcmVuOltlLmpzeHMoImRsIix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3dzIixjaGlsZHJlbjpbZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InN0cmF0ZWd5LXJvdyIsY2hpbGRyZW46W2UuanN4KCJkdCIse2NoaWxkcmVuOnMoInN0cmF0ZWdpZXMubW9kZXMiKX0pLGUuanN4KCJkZCIse2NoaWxkcmVuOnR9KV19KSxlLmpzeHMoImRpdiIse2NsYXNzTmFtZToic3RyYXRlZ3ktcm93IixjaGlsZHJlbjpbZS5qc3goImR0Iix7Y2hpbGRyZW46cygic3RyYXRlZ2llcy5hY2NvdW50c191c2luZyIpfSksZS5qc3goImRkIix7Y2hpbGRyZW46Y30pXX0pLGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1yb3ciLGNoaWxkcmVuOltlLmpzeCgiZHQiLHtjaGlsZHJlbjpzKCJzdHJhdGVnaWVzLmhlYWx0aCIpfSksZS5qc3goImRkIix7Y2hpbGRyZW46ZS5qc3goXyx7c3RyYXRlZ3k6YX0pfSldfSldfSksZS5qc3godSx7dmFsdWU6cn0pXX0pXX0pXX0pfWZ1bmN0aW9uIEUoe3JlZnJlc2hFcG9jaDphfSl7Y29uc3Qgcj1sKCkscz1wKHYsW2FdKTtpZihzLnBoYXNlPT09ImxvYWRpbmciKXJldHVybiBlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1ncmlkIiwiYXJpYS1idXN5IjoidHJ1ZSIsY2hpbGRyZW46WzAsMSwyXS5tYXAodD0+ZS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImNhcmQgc3RyYXRlZ3ktY2FyZCIsY2hpbGRyZW46W2UuanN4KGQse2hlaWdodDoxOCx3aWR0aDoiNTUlIn0pLGUuanN4KGQse2hlaWdodDoxMn0pLGUuanN4KGQse2hlaWdodDoxMn0pLGUuanN4KGQse2hlaWdodDoxMix3aWR0aDoiNzAlIn0pXX0sdCkpfSk7aWYocy5waGFzZT09PSJlcnJvciIpcmV0dXJuIGUuanN4KGose29uUmV0cnk6cy5yZWxvYWR9KTtjb25zdCBpPXMuZGF0YTtyZXR1cm4gaS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiP2UuanN4KGose29uUmV0cnk6cy5yZWxvYWR9KTppLnN0cmF0ZWdpZXMubGVuZ3RoPT09MD9pLnN0YXR1cz09PSJub3RfY29ubmVjdGVkIj9lLmpzeCh4LHt0aXRsZTpyKCJzdGF0ZS5ub3RfY29ubmVjdGVkIiksYm9keTpyKCJyZWFzb24uc3RyYXRlZ3lfaGVhbHRoX25vdF9jb25uZWN0ZWQiKX0pOmUuanN4KHgse3RpdGxlOnIoInN0cmF0ZWdpZXMuZW1wdHkiKX0pOmUuanN4cygic2VjdGlvbiIse2NsYXNzTmFtZToic2VjdGlvbi1zdGFjayIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXRhbG9nLW1ldGEiLGNoaWxkcmVuOltpLnN0YXR1cyE9PSJvayImJmUuanN4KG8se3N0YXR1czppLnN0YXR1c30pLGUuanN4KHUse3ZhbHVlOmkuYXNfb2Z9KV19KSxlLmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzdHJhdGVneS1ncmlkIixjaGlsZHJlbjppLnN0cmF0ZWdpZXMubWFwKHQ9PmUuanN4KFMse3N0cmF0ZWd5OnQsc3VtbWFyeUFzT2Y6aS5hc19vZn0sdC5wcm9maWxlKSl9KV19KX1mdW5jdGlvbiBSKGEpe2lmKCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpcmV0dXJue3N0YXR1czoicmVhZF9mYWlsZWQifTtjb25zdCByPWE7cmV0dXJuIHIuc2NoZW1hX3ZlcnNpb24hPT0icXNsX20wX3Jlc2VhcmNoX2Rhc2hib2FyZC52MSJ8fCFbInJlYWR5Iiwic3RhbGUiLCJ1bmF2YWlsYWJsZSJdLmluY2x1ZGVzKHIuZGF0YV9zdGF0dXMpfHwhQXJyYXkuaXNBcnJheShyLnN1YmplY3RzKXx8IUFycmF5LmlzQXJyYXkoci5lcnJvcnMpP3tzdGF0dXM6InJlYWRfZmFpbGVkIn06ci5lcnJvcnMuc29tZShzPT50eXBlb2YgcyE9InN0cmluZyJ8fC9mYWlsZWR8dW5yZWFkYWJsZXxpbnZhbGlkLy50ZXN0KHMpKT97c3RhdHVzOiJyZWFkX2ZhaWxlZCJ9OnIuZGF0YV9zdGF0dXM9PT0idW5hdmFpbGFibGUiP3tzdGF0dXM6InVuYXZhaWxhYmxlIn06ci5zdWJqZWN0cy5ldmVyeShzPT5zPy5zdWJqZWN0JiZ0eXBlb2Ygcy5zdWJqZWN0LmlkZW50aWZpZXI9PSJzdHJpbmciJiZBcnJheS5pc0FycmF5KHMub2JzZXJ2YXRpb25zKSYmcy5vYnNlcnZhdGlvbnMuZXZlcnkoaT0+aSYmQXJyYXkuaXNBcnJheShpLnNvdXJjZV9pZHMpJiZpLnNvdXJjZV9pZHMuZXZlcnkodD0+dHlwZW9mIHQ9PSJzdHJpbmciKSYmdHlwZW9mIGkuZ2VuZXJhdGVkX2F0PT0ic3RyaW5nIiYmdHlwZW9mIGkuZXhwaXJlc19hdD09InN0cmluZyImJnR5cGVvZiBpLmFzX29mPT0ic3RyaW5nIiYmdHlwZW9mIGkucmVzZWFyY2hfY29udGV4dD8uc3RhdGU9PSJzdHJpbmciJiZ0eXBlb2YgaS5mcmVzaG5lc3M/LnN0YXR1cz09InN0cmluZyIpKT97c3RhdHVzOnIuZGF0YV9zdGF0dXMsZGFzaGJvYXJkOnJ9OntzdGF0dXM6InJlYWRfZmFpbGVkIn19YXN5bmMgZnVuY3Rpb24gJCgpe3JldHVybiBSKGF3YWl0IE4oIi9hcGkvbTAtcmVzZWFyY2giKSl9ZnVuY3Rpb24gVCh7cmVmcmVzaEVwb2NoOmF9KXtjb25zdCByPWwoKSxzPXAoJCxbYV0pO2lmKHMucGhhc2U9PT0ibG9hZGluZyIpcmV0dXJuIGUuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzZWN0aW9uLXN0YWNrIiwiYXJpYS1idXN5IjoidHJ1ZSIsY2hpbGRyZW46W2UuanN4KGQse2hlaWdodDo3Mn0pLGUuanN4KGQse2hlaWdodDo3Mn0pXX0pO2lmKHMucGhhc2U9PT0iZXJyb3IifHxzLmRhdGEuc3RhdHVzPT09InJlYWRfZmFpbGVkIilyZXR1cm4gZS5qc3goaix7b25SZXRyeTpzLnJlbG9hZH0pO2lmKHMuZGF0YS5zdGF0dXM9PT0idW5hdmFpbGFibGUiKXJldHVybiBlLmpzeCh4LHt0aXRsZTpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX3VuYXZhaWxhYmxlIil9KTtjb25zdCBpPXMuZGF0YS5kYXNoYm9hcmQ7cmV0dXJuIGkuc3ViamVjdHMubGVuZ3RoPT09MD9lLmpzeCh4LHt0aXRsZTpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX2VtcHR5Iil9KTplLmpzeHMoInNlY3Rpb24iLHtjbGFzc05hbWU6InNlY3Rpb24tc3RhY2siLGNoaWxkcmVuOltlLmpzeHMoImRpdiIse2NsYXNzTmFtZToiY2F0YWxvZy1tZXRhIixjaGlsZHJlbjpbZS5qc3goaCx7dG9uZToiYWNjZW50IixjaGlsZHJlbjpyKCJzdHJhdGVnaWVzLnJlc2VhcmNoX29ubHkiKX0pLHMuZGF0YS5zdGF0dXM9PT0ic3RhbGUiJiZlLmpzeChvLHtzdGF0dXM6InN0YWxlIn0pLGUuanN4KHUse3ZhbHVlOmkuc291cmNlX2dlbmVyYXRlZF9hdH0pXX0pLGUuanN4KCJkaXYiLHtjbGFzc05hbWU6InJlc2VhcmNoLWxpc3QiLGNoaWxkcmVuOmkuc3ViamVjdHMubWFwKCh0LGMpPT5lLmpzeHMoImFydGljbGUiLHtjbGFzc05hbWU6ImNhcmQgcmVzZWFyY2gtaXRlbSIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLWhlYWQiLGNoaWxkcmVuOltlLmpzeCgic3BhbiIse2NsYXNzTmFtZToicmVzZWFyY2gtaXRlbS10aXRsZSIsY2hpbGRyZW46dC5zdWJqZWN0LmlkZW50aWZpZXJ9KSxlLmpzeChoLHt0b25lOiJhY2NlbnQiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfb25seSIpfSldfSksdC5vYnNlcnZhdGlvbnMubWFwKChuLHkpPT5lLmpzeHMoImRpdiIse2NsYXNzTmFtZToic2VjdGlvbi1zdGFjayIsY2hpbGRyZW46W2UuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJjYXRhbG9nLW1ldGEiLGNoaWxkcmVuOltlLmpzeChvLHtzdGF0dXM6bi5mcmVzaG5lc3Muc3RhdHVzfSksZS5qc3goaCx7dG9uZToiYWNjZW50IixjaGlsZHJlbjpyKGByZXNlYXJjaC5zdGF0ZS4ke24ucmVzZWFyY2hfY29udGV4dC5zdGF0ZX1gKX0pXX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLXN1bW1hcnkiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfc291cmNlcyIse3ZhbHVlOm4uc291cmNlX2lkcy5qb2luKCIgwrcgIil8fHIoImNvbW1vbi51bmtub3duIil9KX0pLGUuanN4KCJwIix7Y2xhc3NOYW1lOiJyZXNlYXJjaC1pdGVtLXN1bW1hcnkiLGNoaWxkcmVuOnIoInN0cmF0ZWdpZXMucmVzZWFyY2hfYXNfb2YiLHt2YWx1ZTpuLmFzX29mfSl9KSxlLmpzeCh1LHt2YWx1ZTpuLmdlbmVyYXRlZF9hdH0pLGUuanN4KHUse3ZhbHVlOm4uZXhwaXJlc19hdCxwcmVmaXg6InN0cmF0ZWdpZXMucmVzZWFyY2hfZXhwaXJlcyJ9KV19LHkpKV19LGAke3Quc3ViamVjdC5raW5kfS8ke3Quc3ViamVjdC5pZGVudGlmaWVyfS8ke2N9YCkpfSldfSl9ZnVuY3Rpb24gRigpe2NvbnN0IGE9bCgpLFtyLHNdPWYudXNlU3RhdGUoImNhdGFsb2ciKSxbaSx0XT1mLnVzZVN0YXRlKDApO3JldHVybiBlLmpzeHMoImRpdiIse2NsYXNzTmFtZToicGFnZSIsY2hpbGRyZW46W2UuanN4cygiaGVhZGVyIix7Y2xhc3NOYW1lOiJwYWdlLWhlYWRlciIsY2hpbGRyZW46W2UuanN4KCJoMSIse2NsYXNzTmFtZToicGFnZS10aXRsZSIsY2hpbGRyZW46YSgic3RyYXRlZ2llcy50aXRsZSIpfSksZS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBhZ2UtaGVhZGVyLXNwYWNlciJ9KSxlLmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsb25DbGljazooKT0+dChjPT5jKzEpLGNoaWxkcmVuOmEoImNvbW1vbi5yZWZyZXNoIil9KV19KSxlLmpzeCh3LHtpZDoic3RyYXRlZ2llcyIsaXRlbXM6W3tpZDoiY2F0YWxvZyIsbGFiZWw6YSgic3RyYXRlZ2llcy50YWIuY2F0YWxvZyIpfSx7aWQ6InJlc2VhcmNoIixsYWJlbDphKCJzdHJhdGVnaWVzLnRhYi5yZXNlYXJjaCIpfV0sYWN0aXZlOnIsb25DaGFuZ2U6Yz0+cyhjKSxhcmlhTGFiZWw6YSgic3RyYXRlZ2llcy50aXRsZSIpfSksZS5qc3goImRpdiIse2lkOiJzdHJhdGVnaWVzLXBhbmVsIixyb2xlOiJ0YWJwYW5lbCIsImFyaWEtbGFiZWxsZWRieSI6YHN0cmF0ZWdpZXMtdGFiLSR7cn1gLHRhYkluZGV4OjAsY2hpbGRyZW46cj09PSJjYXRhbG9nIj9lLmpzeChFLHtyZWZyZXNoRXBvY2g6aX0pOmUuanN4KFQse3JlZnJlc2hFcG9jaDppfSl9KV19KX1leHBvcnR7RiBhcyBkZWZhdWx0fTsK" }, + "/v2/assets/Tabs-BwXxDvIm.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e2ogYXMgc31mcm9tIi4vaW5kZXgtQ1k2aUdQT1guanMiO2Z1bmN0aW9uIHgoe2lkOnQsaXRlbXM6bixhY3RpdmU6YSxvbkNoYW5nZTplLGFyaWFMYWJlbDpifSl7cmV0dXJuIHMuanN4KCJkaXYiLHtjbGFzc05hbWU6InRhYnMiLHJvbGU6InRhYmxpc3QiLCJhcmlhLWxhYmVsIjpiLGNoaWxkcmVuOm4ubWFwKGw9PnMuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLHJvbGU6InRhYiIsaWQ6YCR7dH0tdGFiLSR7bC5pZH1gLCJhcmlhLWNvbnRyb2xzIjpgJHt0fS1wYW5lbGAsImFyaWEtc2VsZWN0ZWQiOmwuaWQ9PT1hLHRhYkluZGV4OmwuaWQ9PT1hPzA6LTEsY2xhc3NOYW1lOmB0YWIke2wuaWQ9PT1hPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PmUobC5pZCksb25LZXlEb3duOnI9Pntjb25zdCBkPW4uZmluZEluZGV4KHU9PnUuaWQ9PT1sLmlkKSxvPXIua2V5PT09IkhvbWUiPzA6ci5rZXk9PT0iRW5kIj9uLmxlbmd0aC0xOnIua2V5PT09IkFycm93UmlnaHQiPyhkKzEpJW4ubGVuZ3RoOnIua2V5PT09IkFycm93TGVmdCI/KGQtMStuLmxlbmd0aCklbi5sZW5ndGg6bnVsbDtpZihvPT09bnVsbClyZXR1cm47ci5wcmV2ZW50RGVmYXVsdCgpLHIuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0idGFiIl0nKT8uW29dPy5mb2N1cygpLGUobltvXS5pZCl9LGNoaWxkcmVuOmwubGFiZWx9LGwuaWQpKX0pfWV4cG9ydHt4IGFzIFR9Owo=" }, + "/v2/assets/hooks-CRNkYhx7.js": { contentType: "text/javascript; charset=utf-8", base64: "aW1wb3J0e3J9ZnJvbSIuL2luZGV4LUNZNmlHUE9YLmpzIjtmdW5jdGlvbiBwKCl7bGV0IGU9MDtyZXR1cm57YmVnaW4oKXtyZXR1cm4gZSs9MSxlfSxpc0N1cnJlbnQoYSl7cmV0dXJuIGE9PT1lfSxpbnZhbGlkYXRlKCl7ZSs9MX19fWZ1bmN0aW9uIGcoZSxhKXtjb25zdFtsLHVdPXIudXNlU3RhdGUoe3BoYXNlOiJsb2FkaW5nIixkYXRhOm51bGwsZXJyb3I6bnVsbH0pLHM9ci51c2VSZWYocCgpKSxbaSxmXT1yLnVzZVN0YXRlKDApLGM9ci51c2VSZWYoZSk7Yy5jdXJyZW50PWUsci51c2VFZmZlY3QoKCk9Pntjb25zdCB0PXMuY3VycmVudC5iZWdpbigpO3Uoe3BoYXNlOiJsb2FkaW5nIixkYXRhOm51bGwsZXJyb3I6bnVsbH0pO2xldCBvPSExO3JldHVybiBjLmN1cnJlbnQoKS50aGVuKG49PnshbyYmcy5jdXJyZW50LmlzQ3VycmVudCh0KSYmdSh7cGhhc2U6InJlYWR5IixkYXRhOm4sZXJyb3I6bnVsbH0pfSkuY2F0Y2gobj0+eyFvJiZzLmN1cnJlbnQuaXNDdXJyZW50KHQpJiZ1KHtwaGFzZToiZXJyb3IiLGRhdGE6bnVsbCxlcnJvcjpuIGluc3RhbmNlb2YgRXJyb3I/bjpuZXcgRXJyb3IoInJlcXVlc3RfZmFpbGVkIil9KX0pLCgpPT57bz0hMH19LFsuLi5hLGldKTtjb25zdCBkPXIudXNlQ2FsbGJhY2soKCk9PmYodD0+dCsxKSxbXSk7cmV0dXJuey4uLmwscmVsb2FkOmR9fWV4cG9ydHtwIGFzIGMsZyBhcyB1fTsK" }, "/v2/assets/index-CUZjwt45.css": { contentType: "text/css; charset=utf-8", base64: "OnJvb3R7LS1jYW52YXM6ICNGNUY3RkE7LS1zdXJmYWNlOiAjRkZGRkZGOy0tc3VyZmFjZS0yOiAjRUVGMkY3Oy0taW5rOiAjMEYxNzJBOy0tbXV0ZWQ6ICM1MjYyN0E7LS1saW5lOiByZ2JhKDE1LCAyMywgNDIsIC4xKTstLWFjY2VudDogIzI1NjNFQjstLW9uLWFjY2VudDogI0ZGRkZGRjstLXVwLWdyZWVuOiAjMTU4MDNEOy0tZG93bi1ncmVlbjogI0RDMjYyNjstLXVwOiB2YXIoLS11cC1ncmVlbik7LS1kb3duOiB2YXIoLS1kb3duLWdyZWVuKTstLXN0YXR1cy1vazogIzBGNzY2RTstLXN0YXR1cy13YXJuOiAjOTI0MDBFOy0tb24td2FybjogI0ZGRkZGRjstLXN0YXR1cy1lcnJvcjogI0JFMTIzQzstLXN0YXR1cy11bmtub3duOiAjNjQ3NDhCOy0tZGFuZ2VyOiAjQjkxQzFDOy0tYmVuY2htYXJrLTE6ICM3QzNBRUQ7LS1iZW5jaG1hcmstMjogI0I0NTMwOTstLWJlbmNobWFyay0zOiAjMEU3NDkwOy0tYmVuY2htYXJrLTQ6ICM0NzU1Njk7LS1yYWRpdXMtczogNnB4Oy0tcmFkaXVzLW06IDEwcHg7LS1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDE1LCAyMywgNDIsIC4wNiksIDAgNHB4IDE2cHggcmdiYSgxNSwgMjMsIDQyLCAuMDgpO2NvbG9yLXNjaGVtZTpsaWdodH06cm9vdFtkYXRhLXRoZW1lPWRhcmtdey0tY2FudmFzOiAjMEIxMDE2Oy0tc3VyZmFjZTogIzEzMUIyNTstLXN1cmZhY2UtMjogIzE5MjMzMDstLWluazogI0U4RUVGNzstLW11dGVkOiAjOTNBMEI1Oy0tbGluZTogcmdiYSgxNDgsIDE2MywgMTg0LCAuMTYpOy0tYWNjZW50OiAjNjBBNUZBOy0tb24tYWNjZW50OiAjMEIxMDE2Oy0tdXAtZ3JlZW46ICMyMkM1NUU7LS1kb3duLWdyZWVuOiAjRjg3MTcxOy0tc3RhdHVzLW9rOiAjMkRENEJGOy0tc3RhdHVzLXdhcm46ICNGQkJGMjQ7LS1vbi13YXJuOiAjMEIxMDE2Oy0tc3RhdHVzLWVycm9yOiAjRkI3MTg1Oy0tc3RhdHVzLXVua25vd246ICM5NEEzQjg7LS1kYW5nZXI6ICNGODcxNzE7LS1iZW5jaG1hcmstMTogI0M0QjVGRDstLWJlbmNobWFyay0yOiAjRkJCRjI0Oy0tYmVuY2htYXJrLTM6ICM2N0U4Rjk7LS1iZW5jaG1hcmstNDogI0NCRDVFMTstLXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgLjQpLCAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgLjM1KTtjb2xvci1zY2hlbWU6ZGFya306cm9vdFtkYXRhLXVwZG93bj1yZWQtdXBdey0tdXA6IHZhcigtLWRvd24tZ3JlZW4pOy0tZG93bjogdmFyKC0tdXAtZ3JlZW4pfSp7Ym94LXNpemluZzpib3JkZXItYm94fWh0bWwsYm9keXttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1jYW52YXMpO2NvbG9yOnZhcigtLWluayk7Zm9udC1mYW1pbHk6c3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sU2Vnb2UgVUksUm9ib3RvLFBpbmdGYW5nIFNDLEhpcmFnaW5vIFNhbnMgR0IsTWljcm9zb2Z0IFlhSGVpLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MS41fS5udW0sLmtwaS12YWx1ZSx0ZC5udW0sLm1vbmV5LC5wZXJjZW50e2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc31he2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWJ1dHRvbntmb250OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmV9YnV0dG9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi41NX06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc3Itb25seXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwIDAgMCAwKTt3aGl0ZS1zcGFjZTpub3dyYXA7Ym9yZGVyOjB9LnNraXAtbGlua3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjhweDt0b3A6LTQ4cHg7cGFkZGluZzo4cHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tb24tYWNjZW50KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKTt6LWluZGV4OjEwMDt0cmFuc2l0aW9uOnRvcCAuMTVzfS5za2lwLWxpbms6Zm9jdXN7dG9wOjhweH0uc2hlbGx7ZGlzcGxheTpmbGV4O21pbi1oZWlnaHQ6MTAwdmh9LnNpZGVuYXZ7d2lkdGg6MjA4cHg7ZmxleDowIDAgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoxNnB4IDEycHg7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1saW5lKTtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO3Bvc2l0aW9uOnN0aWNreTt0b3A6MDtoZWlnaHQ6MTAwdmh9LnNpZGVuYXYuY29sbGFwc2Vke3dpZHRoOjY0cHh9LnNpZGVuYXYuY29sbGFwc2VkIC5uYXYtdGV4dCwuc2lkZW5hdi5jb2xsYXBzZWQgLmJyYW5kLW5hbWV7ZGlzcGxheTpub25lfS5icmFuZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo0cHggOHB4IDE2cHh9LmJyYW5kIGltZ3t3aWR0aDoyOHB4O2hlaWdodDoyOHB4fS5icmFuZC1uYW1le2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTRweH0ubmF2LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDt3aWR0aDoxMDAlO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXMpO2NvbG9yOnZhcigtLW11dGVkKTt0ZXh0LWFsaWduOmxlZnQ7cG9zaXRpb246cmVsYXRpdmV9Lm5hdi1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS0yKTtjb2xvcjp2YXIoLS1pbmspfS5uYXYtaXRlbS5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLTIpO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NjAwfS5uYXYtaXRlbSBzdmd7ZmxleDowIDAgYXV0b30ubmF2LWJhZGdle21hcmdpbi1sZWZ0OmF1dG87bWluLXdpZHRoOjE4cHg7cGFkZGluZzowIDVweDtib3JkZXItcmFkaXVzOjlweDtiYWNrZ3JvdW5kOnZhcigtLXN0YXR1cy13YXJuKTtjb2xvcjp2YXIoLS1vbi13YXJuKTtmb250LXNpemU6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxOHB4fS5zaWRlbmF2LWNvbGxhcHNle21hcmdpbi10b3A6YXV0bztwYWRkaW5nOjhweCAxMnB4O2NvbG9yOnZhcigtLW11dGVkKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKX0uc2lkZW5hdi1jb2xsYXBzZTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UtMil9LnNoZWxsLW1haW57ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS50b3BiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEwcHggMTZweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKTtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjIwO2ZsZXgtd3JhcDp3cmFwfS50b3BiYXIgLnNwYWNlcntmbGV4OjEgMSBhdXRvfS50b3BiYXItdXBkYXRlZHtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHg7d2hpdGUtc3BhY2U6bm93cmFwfS5jb250ZW50e2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxNnB4O21heC13aWR0aDoxMjgwcHg7d2lkdGg6MTAwJTttYXJnaW46MCBhdXRvfS5pY29uLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtcyk7Y29sb3I6dmFyKC0tbXV0ZWQpfS5pY29uLWJ1dHRvbjpob3ZlciwuaWNvbi1idXR0b25bYXJpYS1wcmVzc2VkPXRydWVde2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS0yKTtjb2xvcjp2YXIoLS1pbmspfS5ib3R0b20tdGFic3tkaXNwbGF5Om5vbmU7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKTt6LWluZGV4OjMwO3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX0uYm90dG9tLXRhYnMtaW5uZXJ7ZGlzcGxheTpmbGV4fS5ib3R0b20tdGFie2ZsZXg6MSAxIDA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtwYWRkaW5nOjhweCAwIDZweDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHg7cG9zaXRpb246cmVsYXRpdmV9LmJvdHRvbS10YWIuYWN0aXZle2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NjAwfS5ib3R0b20tdGFiIC5uYXYtYmFkZ2V7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDpjYWxjKDUwJSAtIDIwcHgpO21hcmdpbjowfS5tb3JlLXNoZWV0e3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZSk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czoxNnB4IDE2cHggMCAwO3BhZGRpbmc6OHB4IDE2cHggY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTt6LWluZGV4OjQwO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KX0ubW9yZS1zaGVldCAubmF2LWl0ZW17Zm9udC1zaXplOjE2cHh9LmJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2ZvbnQtd2VpZ2h0OjUwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmJ1dHRvbi1wcmltYXJ5e2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1vbi1hY2NlbnQpfS5idXR0b24tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKXtmaWx0ZXI6YnJpZ2h0bmVzcygxLjA4KX0uYnV0dG9uLXNlY29uZGFyeXtib3JkZXItY29sb3I6dmFyKC0tbGluZSk7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKX0uYnV0dG9uLXNlY29uZGFyeTpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UtMil9LmJ1dHRvbi1kYW5nZXJ7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXIpO2NvbG9yOiNmZmZ9LmJ1dHRvbi1kYW5nZXItb3V0bGluZXtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmJ1dHRvbi1kYW5nZXItb3V0bGluZTpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlcikgMTAlLHRyYW5zcGFyZW50KX0uYnV0dG9uLXNte3BhZGRpbmc6NHB4IDEwcHg7Zm9udC1zaXplOjEzcHh9LmNhcmR7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW0pO3BhZGRpbmc6MTZweH0uY2FyZC10aXRsZXttYXJnaW46MCAwIDEycHg7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NjAwfS5jYXJkLW5vdGV7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4O21hcmdpbjo4cHggMCAwfS5rcGktZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LG1pbm1heCgwLDFmcikpO2dhcDoxMnB4fS5rcGktY2FyZHtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbSk7cGFkZGluZzoxMnB4IDE2cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21pbi13aWR0aDowO3RleHQtYWxpZ246bGVmdH1idXR0b24ua3BpLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmtwaS10aXRsZXtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1tdXRlZCl9LmtwaS12YWx1ZXtmb250LXNpemU6MjRweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS4yO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmtwaS1zdGF0ZXtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tbXV0ZWQpfS5tZXRyaWMtbm90ZXttYXJnaW46MDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS1tdXRlZCk7bGluZS1oZWlnaHQ6MS42fS5rcGktc3Vie2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLW11dGVkKX0ua3BpLWZvb3R7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21hcmdpbi10b3A6MnB4O2ZsZXgtd3JhcDp3cmFwfS5iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE4cHg7d2hpdGUtc3BhY2U6bm93cmFwfS5iYWRnZSBzdmd7ZmxleDowIDAgYXV0b30uYmFkZ2Utb2t7Y29sb3I6dmFyKC0tc3RhdHVzLW9rKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN0YXR1cy1vaykgMTIlLHRyYW5zcGFyZW50KX0uYmFkZ2Utd2Fybntjb2xvcjp2YXIoLS1zdGF0dXMtd2Fybik7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1zdGF0dXMtd2FybikgMTQlLHRyYW5zcGFyZW50KX0uYmFkZ2UtZXJyb3J7Y29sb3I6dmFyKC0tc3RhdHVzLWVycm9yKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN0YXR1cy1lcnJvcikgMTIlLHRyYW5zcGFyZW50KX0uYmFkZ2UtdW5rbm93bntjb2xvcjp2YXIoLS1zdGF0dXMtdW5rbm93bik7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1zdGF0dXMtdW5rbm93bikgMTQlLHRyYW5zcGFyZW50KX0uYmFkZ2UtYWNjZW50e2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDEyJSx0cmFuc3BhcmVudCl9LnVwe2NvbG9yOnZhcigtLXVwKX0uZG93bntjb2xvcjp2YXIoLS1kb3duKX0uZmxhdHtjb2xvcjp2YXIoLS1tdXRlZCl9LmFzb2Z7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4fS5lbXB0eS1zdGF0ZXtwYWRkaW5nOjMycHggMTZweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS1tdXRlZCl9LmVtcHR5LXN0YXRlIC5lbXB0eS10aXRsZXtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0taW5rKTttYXJnaW4tYm90dG9tOjRweH0uZXJyb3Itc3RhdGV7cGFkZGluZzoyNHB4IDE2cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6dmFyKC0tbXV0ZWQpfS5lcnJvci1zdGF0ZSAuZXJyb3ItdGl0bGV7Y29sb3I6dmFyKC0tc3RhdHVzLWVycm9yKTtmb250LXdlaWdodDo2MDA7bWFyZ2luLWJvdHRvbTo4cHh9LnNrZWxldG9ue2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXMpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLXN1cmZhY2UtMikgMjUlLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN1cmZhY2UtMikgNjAlLHZhcigtLXN1cmZhY2UpKSA1MCUsdmFyKC0tc3VyZmFjZS0yKSA3NSUpO2JhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7YW5pbWF0aW9uOnNrZWxldG9uLXN3ZWVwIDEuNHMgaW5maW5pdGU7bWluLWhlaWdodDoxNnB4fUBrZXlmcmFtZXMgc2tlbGV0b24tc3dlZXB7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoyMDAlIDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMjAwJSAwfX0ucGFnZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNnB4fS5wYWdlLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5wYWdlLXRpdGxle21hcmdpbjowO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjcwMH0uZ3JpZC0ye2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6MTZweH0uc2VjdGlvbi1zdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNnB4fS50YWJsZS13cmFwe292ZXJmbG93LXg6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW0pO2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZSl9dGFibGUuZGF0YS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LXNpemU6MTNweH0uZGF0YS10YWJsZSB0aCwuZGF0YS10YWJsZSB0ZHtwYWRkaW5nOjhweCAxMnB4O3RleHQtYWxpZ246bGVmdDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1saW5lKX0uZGF0YS10YWJsZSB0aGVhZCB0aHtwb3NpdGlvbjpzdGlja3k7dG9wOjA7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc2l6ZToxMnB4O3otaW5kZXg6MX0uZGF0YS10YWJsZSB0Ym9keSB0cjpsYXN0LWNoaWxkIHRke2JvcmRlci1ib3R0b206bm9uZX0udGFibGUtc29ydHtib3JkZXI6MDtwYWRkaW5nOjA7YmFja2dyb3VuZDpub25lO2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0O2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246aW5oZXJpdH0udGFibGUtc29ydHttaW4taGVpZ2h0OjMycHh9LmRhdGEtdGFibGUgdGguc29ydGFibGV7Y3Vyc29yOnBvaW50ZXI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGEtdGFibGUgdGguc29ydGFibGU6aG92ZXJ7Y29sb3I6dmFyKC0taW5rKX0uZGF0YS10YWJsZSB0ZC5udW0sLmRhdGEtdGFibGUgdGgubnVte3RleHQtYWxpZ246cmlnaHR9LnRhYnN7ZGlzcGxheTpmbGV4O2dhcDo0cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tbGluZSk7ZmxleC13cmFwOndyYXB9LnRhYnttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzo4cHggMTRweDtjb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyLWJvdHRvbToycHggc29saWQgdHJhbnNwYXJlbnQ7bWFyZ2luLWJvdHRvbTotMXB4fS50YWI6aG92ZXJ7Y29sb3I6dmFyKC0taW5rKX0udGFiLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo2MDB9LnNlZ21lbnRlZHtkaXNwbGF5OmlubGluZS1mbGV4O2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS0yKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKTtwYWRkaW5nOjJweDtnYXA6MnB4O2ZsZXgtd3JhcDp3cmFwfS5zZWdtZW50ZWQgLnNlZ21lbnR7cGFkZGluZzo0cHggMTBweDtib3JkZXItcmFkaXVzOjVweDtjb2xvcjp2YXIoLS1tdXRlZCk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7bGluZS1oZWlnaHQ6MS4zfS5zZWdtZW50ZWQgLnNlZ21lbnQgLnNlZ21lbnQtc3Vie2ZvbnQtc2l6ZToxMnB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2VnbWVudGVkIC5zZWdtZW50LmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2NvbG9yOnZhcigtLWluayk7Zm9udC13ZWlnaHQ6NjAwO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KX0uZmllbGR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21hcmdpbi1ib3R0b206MTJweH0uZmllbGQ+c3Bhbntmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1tdXRlZCl9LmlucHV0LHNlbGVjdC5pbnB1dHtwYWRkaW5nOjhweCAxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtcyk7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtjb2xvcjp2YXIoLS1pbmspO2ZvbnQ6aW5oZXJpdDt3aWR0aDoxMDAlfS5pbnB1dDpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjA7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5jaGVja2JveC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjhweDtmb250LXNpemU6MTNweH0uY2hlY2tib3gtcm93IGlucHV0e21hcmdpbi10b3A6M3B4fS5kaWFsb2ctYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMwMDAwMDA3MztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoxNnB4O3otaW5kZXg6MTAwfS5kaWFsb2d7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KTttYXgtd2lkdGg6NTIwcHg7d2lkdGg6MTAwJTttYXgtaGVpZ2h0Ojg1dmg7b3ZlcmZsb3c6YXV0bztwYWRkaW5nOjIwcHh9LmRpYWxvZyBoMnttYXJnaW46MCAwIDhweDtmb250LXNpemU6MTZweH0uZGlhbG9nIC5kaWFsb2ctdGFyZ2V0e2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MCAwIDhweH0uZGlhbG9nIC5kaWFsb2ctc3VtbWFyeXtjb2xvcjp2YXIoLS1tdXRlZCk7bWFyZ2luOjAgMCA4cHh9LmRpYWxvZyAuZGlhbG9nLWNvbnNlcXVlbmNle21hcmdpbjowIDAgMTJweH0uZGlhbG9nIC5kaWFsb2ctY29uc2VxdWVuY2UuZGFuZ2Vye2NvbG9yOnZhcigtLWRhbmdlcil9LmRpYWxvZy1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjhweDttYXJnaW4tdG9wOjE2cHh9LnRvYXN0LXN0YWNre3Bvc2l0aW9uOmZpeGVkO2JvdHRvbToxNnB4O3JpZ2h0OjE2cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3otaW5kZXg6MTIwO21heC13aWR0aDptaW4oNDIwcHgsY2FsYygxMDB2dyAtIDMycHgpKX0udG9hc3R7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1hY2NlbnQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXMpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KTtwYWRkaW5nOjEwcHggMTJweDtkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZToxM3B4fS50b2FzdC5lcnJvcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1zdGF0dXMtZXJyb3IpfS50b2FzdC5zdWNjZXNze2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLXN0YXR1cy1vayl9LnRvYXN0IGJ1dHRvbntjb2xvcjp2YXIoLS1tdXRlZCk7ZmxleDowIDAgYXV0b30uZGlmZi1hZmZlY3RzLWxpdmV7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LXdlaWdodDo2MDB9LnRpbWVsaW5le2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjB9LnRpbWVsaW5lIGxpe3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MCAwIDE2cHggMjBweDtib3JkZXItbGVmdDoycHggc29saWQgdmFyKC0tbGluZSk7bWFyZ2luLWxlZnQ6NnB4fS50aW1lbGluZSBsaTpsYXN0LWNoaWxke3BhZGRpbmctYm90dG9tOjB9LnRpbWVsaW5lIGxpOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTZweDt0b3A6NHB4O3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpfS50aW1lbGluZSAudGltZWxpbmUtdGltZXtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHh9LmRhbmdlci16b25le2JvcmRlcjoxcHggc29saWQgdmFyKC0tZGFuZ2VyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tKTtwYWRkaW5nOjE2cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTJweH0uZGFuZ2VyLXpvbmUtdGl0bGV7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LXdlaWdodDo3MDA7bWFyZ2luOjA7Zm9udC1zaXplOjE0cHh9LmRhbmdlci1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE2cHg7ZmxleC13cmFwOndyYXB9LmRhbmdlci1yb3cgLmRhbmdlci1yb3ctdGV4dHtmbGV4OjEgMSAzMjBweH0uZGFuZ2VyLXJvdyAuZGFuZ2VyLXJvdy10ZXh0IHN0cm9uZ3tkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MnB4fS5kYW5nZXItcm93IC5kYW5nZXItcm93LXRleHQgcHttYXJnaW46MDtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEzcHh9LmNoYXJ0e3dpZHRoOjEwMCV9LmNoYXJ0LWxlZ2VuZHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjhweCAxNnB4O21hcmdpbi10b3A6OHB4fS5jaGFydC1sZWdlbmQgYnV0dG9ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmc6MnB4IDRweDtib3JkZXItcmFkaXVzOjRweH0uY2hhcnQtbGVnZW5kIGJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UtMil9LmNoYXJ0LWxlZ2VuZCBidXR0b24ub2Zme29wYWNpdHk6LjQ7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaH0uY2hhcnQtbGVnZW5kIC5sZWdlbmQtc3dhdGNoe3dpZHRoOjE0cHg7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ibG9ja30uY2hhcnQtdG9vbHRpcHtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtcyk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOjEycHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwO3doaXRlLXNwYWNlOm5vd3JhcH0uY2hhcnQtdG9vbHRpcCAudG9vbHRpcC1kYXRle2NvbG9yOnZhcigtLW11dGVkKTttYXJnaW4tYm90dG9tOjRweH0uY2hhcnQtdG9vbHRpcCAudG9vbHRpcC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY2hhcnQtZnJhbWV7cG9zaXRpb246cmVsYXRpdmV9LmNhbGVuZGFyLW1vbnRoLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSxtaW5tYXgoNDBweCwxZnIpKTtnYXA6NHB4fS5jYWxlbmRhci1jZWxse21pbi1oZWlnaHQ6NDBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO3BhZGRpbmc6NHB4IDZweDtmb250LXNpemU6MTJweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKX0uY2FsZW5kYXItY2VsbCAuY2VsbC1kYXRle2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTFweH0uY2FsZW5kYXItY2VsbCAuY2VsbC12YWx1ZXtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Zm9udC13ZWlnaHQ6NjAwfS5jYWxlbmRhci1jZWxsLmNlbGwtZW1wdHl7Ym9yZGVyLXN0eWxlOmRhc2hlZDtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTM1ZGVnLHRyYW5zcGFyZW50IDAgNnB4LHZhcigtLXN1cmZhY2UtMikgNnB4IDEycHgpfS5jYWxlbmRhci15ZWFyLWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCxtaW5tYXgoMCwxZnIpKTtnYXA6OHB4fS5jYWxlbmRhci1uYXZ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4fS5jYWxlbmRhci1uYXYgLmN1cnJlbnR7Zm9udC13ZWlnaHQ6NjAwO21pbi13aWR0aDoxMTBweDt0ZXh0LWFsaWduOmNlbnRlcn0uY2FsZW5kYXItd2Vla2RheXtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmJhcmxpc3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4fS5iYXJsaXN0LXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjkwcHggMWZyIDkwcHg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOjEzcHh9LmJhcmxpc3QtbGFiZWx7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5iYXJsaXN0LXRyYWNre3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoxNHB4O2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS0yKTtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdzpoaWRkZW59LmJhcmxpc3QtZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtib3JkZXItcmFkaXVzOjRweH0uYmFybGlzdC12YWx1ZXt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uaW5ib3h7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMjgwcHgsMzgwcHgpIDFmcjtnYXA6MTZweDthbGlnbi1pdGVtczpzdGFydH0uaW5ib3gtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHh9LmluYm94LWl0ZW17ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZzoxMHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW0pO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfS5pbmJveC1pdGVtOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5pbmJveC1pdGVtLmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCB2YXIoLS1hY2NlbnQpfS5wcmlvcml0eS1kb3R7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7bWFyZ2luLXRvcDo2cHg7ZmxleDowIDAgYXV0b30ucHJpb3JpdHktaGlnaHtiYWNrZ3JvdW5kOnZhcigtLXN0YXR1cy1lcnJvcil9LnByaW9yaXR5LW1lZGl1bXtiYWNrZ3JvdW5kOnZhcigtLXN0YXR1cy13YXJuKX0ucHJpb3JpdHktbm9ybWFse2JhY2tncm91bmQ6dmFyKC0tc3RhdHVzLXVua25vd24pfS5pbmJveC1pdGVtIC5pdGVtLW1haW57bWluLXdpZHRoOjA7ZmxleDoxIDEgYXV0b30uaW5ib3gtaXRlbSAuaXRlbS10aXRsZXtmb250LXdlaWdodDo2MDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0uaW5ib3gtaXRlbSAuaXRlbS1tZXRhe2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTJweDtkaXNwbGF5OmZsZXg7Z2FwOjhweDtmbGV4LXdyYXA6d3JhcH0uaW5ib3gtZGV0YWlse3Bvc2l0aW9uOnN0aWNreTt0b3A6NzJweH0uaW5ib3gtYWN0aW9uc3twb3NpdGlvbjpzdGlja3k7Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2dhcDo4cHg7cGFkZGluZy10b3A6MTJweDttYXJnaW4tdG9wOjEycHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSk7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtmbGV4LXdyYXA6d3JhcH0uYWNjb3VudC1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgoMjYwcHgsMWZyKSk7Z2FwOjEycHh9LmFjY291bnQtY2FyZHtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbSk7cGFkZGluZzoxNHB4IDE2cHg7dGV4dC1hbGlnbjpsZWZ0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweH0uYWNjb3VudC1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5hY2NvdW50LWNhcmQgLmFjY291bnQtdGl0bGV7Zm9udC13ZWlnaHQ6NzAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweH0uYWNjb3VudC1jYXJkIC5hY2NvdW50LXJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweDtmb250LXNpemU6MTNweH0uYWNjb3VudC1jYXJkIC5hY2NvdW50LXJvdyBzcGFuOmZpcnN0LWNoaWxke2NvbG9yOnZhcigtLW11dGVkKX0uYWNjb3VudHMtbGF5b3V0e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDMwMHB4LDQyMHB4KSAxZnI7Z2FwOjE2cHg7YWxpZ24taXRlbXM6c3RhcnR9LnN0cmF0ZWd5LWdyaWR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maWxsLG1pbm1heCgzMDBweCwxZnIpKTtnYXA6MTJweH0uaGVhbHRoLWdyaWR7b3ZlcmZsb3cteDphdXRvfS5oZWFsdGgtZ3JpZCB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Zm9udC1zaXplOjEycHh9LmhlYWx0aC1ncmlkIHRoLC5oZWFsdGgtZ3JpZCB0ZHtwYWRkaW5nOjRweDt0ZXh0LWFsaWduOmNlbnRlcn0uaGVhbHRoLWdyaWQgdGh7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmhlYWx0aC1jZWxse3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2ZvbnQtc2l6ZToxMXB4fS5oZWFsdGgtY2VsbC5va3tiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN0YXR1cy1vaykgMjAlLHRyYW5zcGFyZW50KTtjb2xvcjp2YXIoLS1zdGF0dXMtb2spfS5oZWFsdGgtY2VsbC5mYWlsZWR7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1zdGF0dXMtZXJyb3IpIDIwJSx0cmFuc3BhcmVudCk7Y29sb3I6dmFyKC0tc3RhdHVzLWVycm9yKX0uaGVhbHRoLWNlbGwubm90LXJ1bntiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UtMik7Y29sb3I6dmFyKC0tbXV0ZWQpfS5oZWFsdGgtY2VsbC5uby1yZWNvcmR7YmFja2dyb3VuZDpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDEzNWRlZyx0cmFuc3BhcmVudCAwIDRweCx2YXIoLS1zdXJmYWNlLTIpIDRweCA4cHgpO2NvbG9yOnZhcigtLW11dGVkKX0uaGVhbHRoLWNlbGw6aG92ZXIsLmhlYWx0aC1jZWxsOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KX0uaGVhbHRoLWxlZ2VuZHtkaXNwbGF5OmZsZXg7Z2FwOjE2cHg7ZmxleC13cmFwOndyYXA7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tbXV0ZWQpfS5oZWFsdGgtbGVnZW5kIHNwYW57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH0uc3RhdC1zdHJpcHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpO2dhcDoxMnB4fS5zY29wZS1zd2l0Y2hlcntwb3NpdGlvbjpyZWxhdGl2ZX0uc2NvcGUtcGFuZWx7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDRweCk7bGVmdDowO21pbi13aWR0aDoyMjBweDtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tbGluZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpO3BhZGRpbmc6NnB4O3otaW5kZXg6NTA7bWF4LWhlaWdodDozMjBweDtvdmVyZmxvdzphdXRvfS5zY29wZS1ncm91cHtwYWRkaW5nOjRweCA4cHg7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4fS5zY29wZS1vcHRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3dpZHRoOjEwMCU7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtcyk7dGV4dC1hbGlnbjpsZWZ0fS5zY29wZS1vcHRpb246aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLTIpfS5zY29wZS1vcHRpb24uYWN0aXZle2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NjAwfS51c2VyLW1lbnV7cG9zaXRpb246cmVsYXRpdmV9LnVzZXItbWVudT5zdW1tYXJ5e2xpc3Qtc3R5bGU6bm9uZTt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1vbi1hY2NlbnQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9LnVzZXItbWVudT5zdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2Vye2Rpc3BsYXk6bm9uZX0udXNlci1tZW51LXBhbmVse3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOmNhbGMoMTAwJSArIDRweCk7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW0pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93KTtwYWRkaW5nOjhweDttaW4td2lkdGg6MjAwcHg7ei1pbmRleDo1MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnVzZXItbWVudS1wYW5lbCAubWVudS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDt3aWR0aDoxMDAlO3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXMpO3RleHQtYWxpZ246bGVmdH0udXNlci1tZW51LXBhbmVsIC5tZW51LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLTIpfS51c2VyLW1lbnUtbmFtZXtwYWRkaW5nOjRweCA4cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpO21hcmdpbi1ib3R0b206NHB4fS5wcmVmcy1ncmlke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE2cHh9LnByZWZzLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4fS5wcmVmcy1yb3c+c3Bhbntmb250LXdlaWdodDo1MDB9LmJvb3Qtc2NyZWVuLC5hY2Nlc3Mtc2NyZWVue21pbi1oZWlnaHQ6MTAwdmg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MTJweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjI0cHh9LmFjY2Vzcy1zY3JlZW4gaW1ne3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHh9LmFjY2Vzcy1zY3JlZW4gaDF7bWFyZ2luOjA7Zm9udC1zaXplOjI0cHh9LmFjY2Vzcy1zY3JlZW4gcHtjb2xvcjp2YXIoLS1tdXRlZCk7bWF4LXdpZHRoOjQyMHB4O21hcmdpbjowfS5nbG9iYWwtbm90aWNle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo4cHggMTZweDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN0YXR1cy13YXJuKSAxMiUsdmFyKC0tc3VyZmFjZSkpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpO2ZvbnQtc2l6ZToxM3B4fUBtZWRpYShtYXgtd2lkdGg6MTAyNHB4KXsua3BpLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5ncmlkLTIsLmFjY291bnRzLWxheW91dCwuaW5ib3h7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0uaW5ib3gtZGV0YWlse3Bvc2l0aW9uOnN0YXRpY30uc3RhdC1zdHJpcHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zaWRlbmF2e2Rpc3BsYXk6bm9uZX0uYm90dG9tLXRhYnN7ZGlzcGxheTpibG9ja30uY29udGVudHtwYWRkaW5nOjEycHggMTJweCA3NnB4fS5rcGktZ3JpZHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LmtwaS12YWx1ZXtmb250LXNpemU6MjBweH0udG9wYmFyLXVwZGF0ZWR7ZGlzcGxheTpub25lfS5jYWxlbmRhci15ZWFyLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5pbmJveC1hY3Rpb25ze3Bvc2l0aW9uOnN0YXRpY319LnVwZGF0ZS1ub3RpY2V7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4O3BhZGRpbmc6MTJweCAyMHB4O2JhY2tncm91bmQ6dmFyKC0tc3VyZmFjZS0yKX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2UpeyosKjpiZWZvcmUsKjphZnRlcnthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnR9fS5hcHBlYXJhbmNlLXRvZ2dsZXtmbGV4OjAgMCBhdXRvO3doaXRlLXNwYWNlOm5vd3JhcH0uYWNjb3VudC1wbGF0Zm9ybS1ncm91cCsuYWNjb3VudC1wbGF0Zm9ybS1ncm91cHttYXJnaW4tdG9wOjIwcHh9LmFjY291bnQtcGxhdGZvcm0tdGl0bGV7bWFyZ2luOjAgMCAxMHB4O2ZvbnQtc2l6ZToxNnB4fS5hY2NvdW50LXN0cmF0ZWd5LWxpbmt7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJTtnYXA6NnB4O3BhZGRpbmc6MTBweCAwfS5hY2NvdW50LXN0cmF0ZWd5LWxpbmsrLmFjY291bnQtc3RyYXRlZ3ktbGlua3tib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1saW5lKX0uYWNjb3VudC1zdHJhdGVneS1saW5rOmhvdmVyIC5hY2NvdW50LXN0cmF0ZWd5LW5hbWV7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5hY2NvdW50LXN0cmF0ZWd5LW5hbWV7Zm9udC13ZWlnaHQ6NjAwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmFjY291bnQtYnJva2VyLXRpdGxle21hcmdpbjowIDAgOHB4O2ZvbnQtc2l6ZToxNXB4O292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmFjY291bnQtaWRlbnRpdHktbm90ZXtjb2xvcjp2YXIoLS1tdXRlZCk7Zm9udC1zaXplOjEycHh9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnRoZW1lLXRvZ2dsZS1sYWJlbHtkaXNwbGF5Om5vbmV9LnRvcGJhcntnYXA6NnB4O3BhZGRpbmctaW5saW5lOjEycHh9LnRvcGJhciAuc2NvcGUtc3dpdGNoZXJ7bWluLXdpZHRoOjA7bWF4LXdpZHRoOjQwJX0uc2NvcGUtc3dpdGNoZXI+YnV0dG9ue21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH19LmFjY291bnQtZ3JvdXAtY2FyZCAuYWNjb3VudC1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O2ZvbnQtc2l6ZToxM3B4fS5hY2NvdW50LWdyb3VwLWNhcmQgLmFjY291bnQtcm93PnNwYW46Zmlyc3QtY2hpbGR7Y29sb3I6dmFyKC0tbXV0ZWQpfS5hY2NvdW50LXN0cmF0ZWd5LWxpbms+LmJhZGdle2FsaWduLXNlbGY6ZmxleC1zdGFydH0K" }, - "/v2/assets/index-J5fqz5hv.js": { contentType: "text/javascript; charset=utf-8", base64: "Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bImFzc2V0cy9PdmVydmlld1BhZ2UtQzdWaTdBbUsuanMiLCJhc3NldHMvSW5ib3hSZWFkRmFpbGVkLUJlMDVBNW01LmpzIiwiYXNzZXRzL0xpbmVDaGFydC03U2pfdzBrRC5qcyIsImFzc2V0cy9MaW5lQ2hhcnQtRGFYSjNnWWUuY3NzIiwiYXNzZXRzL0FjY291bnRHcm91cHMtQ0NsNFdUNzUuanMiLCJhc3NldHMvaG9va3MtRDBvUzV1YkcuanMiLCJhc3NldHMvS3BpQ2FyZC0wV1VOdVhndi5qcyIsImFzc2V0cy9PdmVydmlld1BhZ2UtMVRYdzJaeWYuY3NzIiwiYXNzZXRzL1BlcmZvcm1hbmNlUGFnZS1CdmRxQ0dxdi5qcyIsImFzc2V0cy9EYXRhVGFibGUtRE02VzNRUjEuanMiLCJhc3NldHMvVGFicy1EYjd4M2h1aS5qcyIsImFzc2V0cy9QZXJmb3JtYW5jZVBhZ2UtQkZfdHlNaWcuY3NzIiwiYXNzZXRzL0RlY2lzaW9uc1BhZ2UtQkI0em81Zk0uanMiLCJhc3NldHMvcnVudGltZV9kYWlseV9jb250cmFjdC1DZjhOdTFUZS5qcyIsImFzc2V0cy9EaWFsb2ctQldmYVFMd3QuanMiLCJhc3NldHMvRGVjaXNpb25zUGFnZS1CQTNSY05fOC5jc3MiLCJhc3NldHMvQWNjb3VudHNQYWdlLVhza2VscDc2LmpzIiwiYXNzZXRzL0FjY291bnRzUGFnZS1Eckx2dkFLMS5jc3MiLCJhc3NldHMvU3RyYXRlZ2llc1BhZ2UteDB6MFFhVy0uanMiLCJhc3NldHMvU3RyYXRlZ2llc1BhZ2UtQ05yckJyRGMuY3NzIiwiYXNzZXRzL0hlYWx0aFBhZ2UtQnEyZWprVnMuanMiLCJhc3NldHMvSGVhbHRoUGFnZS16WUJDSlY0WS5jc3MiXSkpKT0+aS5tYXAoaT0+ZFtpXSk7CihmdW5jdGlvbigpe2NvbnN0IGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpLnJlbExpc3Q7aWYoZiYmZi5zdXBwb3J0cyYmZi5zdXBwb3J0cygibW9kdWxlcHJlbG9hZCIpKXJldHVybjtmb3IoY29uc3QgVCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdJykpcyhUKTtuZXcgTXV0YXRpb25PYnNlcnZlcihUPT57Zm9yKGNvbnN0IE8gb2YgVClpZihPLnR5cGU9PT0iY2hpbGRMaXN0Iilmb3IoY29uc3QgdyBvZiBPLmFkZGVkTm9kZXMpdy50YWdOYW1lPT09IkxJTksiJiZ3LnJlbD09PSJtb2R1bGVwcmVsb2FkIiYmcyh3KX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gbShUKXtjb25zdCBPPXt9O3JldHVybiBULmludGVncml0eSYmKE8uaW50ZWdyaXR5PVQuaW50ZWdyaXR5KSxULnJlZmVycmVyUG9saWN5JiYoTy5yZWZlcnJlclBvbGljeT1ULnJlZmVycmVyUG9saWN5KSxULmNyb3NzT3JpZ2luPT09InVzZS1jcmVkZW50aWFscyI/Ty5jcmVkZW50aWFscz0iaW5jbHVkZSI6VC5jcm9zc09yaWdpbj09PSJhbm9ueW1vdXMiP08uY3JlZGVudGlhbHM9Im9taXQiOk8uY3JlZGVudGlhbHM9InNhbWUtb3JpZ2luIixPfWZ1bmN0aW9uIHMoVCl7aWYoVC5lcClyZXR1cm47VC5lcD0hMDtjb25zdCBPPW0oVCk7ZmV0Y2goVC5ocmVmLE8pfX0pKCk7dmFyIF9vPXtleHBvcnRzOnt9fSxFbD17fTt2YXIgeGQ7ZnVuY3Rpb24gVV8oKXtpZih4ZClyZXR1cm4gRWw7eGQ9MTt2YXIgbz1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLGY9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTtmdW5jdGlvbiBtKHMsVCxPKXt2YXIgdz1udWxsO2lmKE8hPT12b2lkIDAmJih3PSIiK08pLFQua2V5IT09dm9pZCAwJiYodz0iIitULmtleSksImtleSJpbiBUKXtPPXt9O2Zvcih2YXIgRSBpbiBUKUUhPT0ia2V5IiYmKE9bRV09VFtFXSl9ZWxzZSBPPVQ7cmV0dXJuIFQ9Ty5yZWYseyQkdHlwZW9mOm8sdHlwZTpzLGtleTp3LHJlZjpUIT09dm9pZCAwP1Q6bnVsbCxwcm9wczpPfX1yZXR1cm4gRWwuRnJhZ21lbnQ9ZixFbC5qc3g9bSxFbC5qc3hzPW0sRWx9dmFyIHpkO2Z1bmN0aW9uIENfKCl7cmV0dXJuIHpkfHwoemQ9MSxfby5leHBvcnRzPVVfKCkpLF9vLmV4cG9ydHN9dmFyIHk9Q18oKSx2bz17ZXhwb3J0czp7fX0sQWw9e30seW89e2V4cG9ydHM6e319LHBvPXt9O3ZhciBSZDtmdW5jdGlvbiBxXygpe3JldHVybiBSZHx8KFJkPTEsKGZ1bmN0aW9uKG8pe2Z1bmN0aW9uIGYoeCxDKXt2YXIgUT14Lmxlbmd0aDt4LnB1c2goQyk7ZTpmb3IoOzA8UTspe3ZhciBtZT1RLTE+Pj4xLGQ9eFttZV07aWYoMDxUKGQsQykpeFttZV09Qyx4W1FdPWQsUT1tZTtlbHNlIGJyZWFrIGV9fWZ1bmN0aW9uIG0oeCl7cmV0dXJuIHgubGVuZ3RoPT09MD9udWxsOnhbMF19ZnVuY3Rpb24gcyh4KXtpZih4Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7dmFyIEM9eFswXSxRPXgucG9wKCk7aWYoUSE9PUMpe3hbMF09UTtlOmZvcih2YXIgbWU9MCxkPXgubGVuZ3RoLE49ZD4+PjE7bWU8Tjspe3ZhciBxPTIqKG1lKzEpLTEsVT14W3FdLEw9cSsxLGxlPXhbTF07aWYoMD5UKFUsUSkpTDxkJiYwPlQobGUsVSk/KHhbbWVdPWxlLHhbTF09USxtZT1MKTooeFttZV09VSx4W3FdPVEsbWU9cSk7ZWxzZSBpZihMPGQmJjA+VChsZSxRKSl4W21lXT1sZSx4W0xdPVEsbWU9TDtlbHNlIGJyZWFrIGV9fXJldHVybiBDfWZ1bmN0aW9uIFQoeCxDKXt2YXIgUT14LnNvcnRJbmRleC1DLnNvcnRJbmRleDtyZXR1cm4gUSE9PTA/UTp4LmlkLUMuaWR9aWYoby51bnN0YWJsZV9ub3c9dm9pZCAwLHR5cGVvZiBwZXJmb3JtYW5jZT09Im9iamVjdCImJnR5cGVvZiBwZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiIpe3ZhciBPPXBlcmZvcm1hbmNlO28udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIE8ubm93KCl9fWVsc2V7dmFyIHc9RGF0ZSxFPXcubm93KCk7by51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdy5ub3coKS1FfX12YXIgRD1bXSxTPVtdLE09MSxWPW51bGwsSD0zLGNlPSExLGhlPSExLGtlPSExLE5lPSExLHR0PXR5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP3NldFRpbWVvdXQ6bnVsbCxhdD10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDpudWxsLFNlPXR5cGVvZiBzZXRJbW1lZGlhdGU8InUiP3NldEltbWVkaWF0ZTpudWxsO2Z1bmN0aW9uIHZlKHgpe2Zvcih2YXIgQz1tKFMpO0MhPT1udWxsOyl7aWYoQy5jYWxsYmFjaz09PW51bGwpcyhTKTtlbHNlIGlmKEMuc3RhcnRUaW1lPD14KXMoUyksQy5zb3J0SW5kZXg9Qy5leHBpcmF0aW9uVGltZSxmKEQsQyk7ZWxzZSBicmVhaztDPW0oUyl9fWZ1bmN0aW9uIGVlKHgpe2lmKGtlPSExLHZlKHgpLCFoZSlpZihtKEQpIT09bnVsbCloZT0hMCxUZXx8KFRlPSEwLG5lKCkpO2Vsc2V7dmFyIEM9bShTKTtDIT09bnVsbCYmamUoZWUsQy5zdGFydFRpbWUteCl9fXZhciBUZT0hMSxPZT0tMSxXPTUseGU9LTE7ZnVuY3Rpb24gRigpe3JldHVybiBOZT8hMDohKG8udW5zdGFibGVfbm93KCkteGU8Vyl9ZnVuY3Rpb24gYWUoKXtpZihOZT0hMSxUZSl7dmFyIHg9by51bnN0YWJsZV9ub3coKTt4ZT14O3ZhciBDPSEwO3RyeXtlOntoZT0hMSxrZSYmKGtlPSExLGF0KE9lKSxPZT0tMSksY2U9ITA7dmFyIFE9SDt0cnl7dDp7Zm9yKHZlKHgpLFY9bShEKTtWIT09bnVsbCYmIShWLmV4cGlyYXRpb25UaW1lPngmJkYoKSk7KXt2YXIgbWU9Vi5jYWxsYmFjaztpZih0eXBlb2YgbWU9PSJmdW5jdGlvbiIpe1YuY2FsbGJhY2s9bnVsbCxIPVYucHJpb3JpdHlMZXZlbDt2YXIgZD1tZShWLmV4cGlyYXRpb25UaW1lPD14KTtpZih4PW8udW5zdGFibGVfbm93KCksdHlwZW9mIGQ9PSJmdW5jdGlvbiIpe1YuY2FsbGJhY2s9ZCx2ZSh4KSxDPSEwO2JyZWFrIHR9Vj09PW0oRCkmJnMoRCksdmUoeCl9ZWxzZSBzKEQpO1Y9bShEKX1pZihWIT09bnVsbClDPSEwO2Vsc2V7dmFyIE49bShTKTtOIT09bnVsbCYmamUoZWUsTi5zdGFydFRpbWUteCksQz0hMX19YnJlYWsgZX1maW5hbGx5e1Y9bnVsbCxIPVEsY2U9ITF9Qz12b2lkIDB9fWZpbmFsbHl7Qz9uZSgpOlRlPSExfX19dmFyIG5lO2lmKHR5cGVvZiBTZT09ImZ1bmN0aW9uIiluZT1mdW5jdGlvbigpe1NlKGFlKX07ZWxzZSBpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWw8InUiKXt2YXIgcWU9bmV3IE1lc3NhZ2VDaGFubmVsLCRlPXFlLnBvcnQyO3FlLnBvcnQxLm9ubWVzc2FnZT1hZSxuZT1mdW5jdGlvbigpeyRlLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIG5lPWZ1bmN0aW9uKCl7dHQoYWUsMCl9O2Z1bmN0aW9uIGplKHgsQyl7T2U9dHQoZnVuY3Rpb24oKXt4KG8udW5zdGFibGVfbm93KCkpfSxDKX1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG8udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxvLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsby51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG8udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsby51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLG8udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oeCl7eC5jYWxsYmFjaz1udWxsfSxvLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKHgpezA+eHx8MTI1PHg/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6Vz0wPHg/TWF0aC5mbG9vcigxZTMveCk6NX0sby51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBIfSxvLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oeCl7c3dpdGNoKEgpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBDPTM7YnJlYWs7ZGVmYXVsdDpDPUh9dmFyIFE9SDtIPUM7dHJ5e3JldHVybiB4KCl9ZmluYWxseXtIPVF9fSxvLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe05lPSEwfSxvLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbih4LEMpe3N3aXRjaCh4KXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6eD0zfXZhciBRPUg7SD14O3RyeXtyZXR1cm4gQygpfWZpbmFsbHl7SD1RfX0sby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKHgsQyxRKXt2YXIgbWU9by51bnN0YWJsZV9ub3coKTtzd2l0Y2godHlwZW9mIFE9PSJvYmplY3QiJiZRIT09bnVsbD8oUT1RLmRlbGF5LFE9dHlwZW9mIFE9PSJudW1iZXIiJiYwPFE/bWUrUTptZSk6UT1tZSx4KXtjYXNlIDE6dmFyIGQ9LTE7YnJlYWs7Y2FzZSAyOmQ9MjUwO2JyZWFrO2Nhc2UgNTpkPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OmQ9MWU0O2JyZWFrO2RlZmF1bHQ6ZD01ZTN9cmV0dXJuIGQ9UStkLHg9e2lkOk0rKyxjYWxsYmFjazpDLHByaW9yaXR5TGV2ZWw6eCxzdGFydFRpbWU6USxleHBpcmF0aW9uVGltZTpkLHNvcnRJbmRleDotMX0sUT5tZT8oeC5zb3J0SW5kZXg9USxmKFMseCksbShEKT09PW51bGwmJng9PT1tKFMpJiYoa2U/KGF0KE9lKSxPZT0tMSk6a2U9ITAsamUoZWUsUS1tZSkpKTooeC5zb3J0SW5kZXg9ZCxmKEQseCksaGV8fGNlfHwoaGU9ITAsVGV8fChUZT0hMCxuZSgpKSkpLHh9LG8udW5zdGFibGVfc2hvdWxkWWllbGQ9RixvLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbih4KXt2YXIgQz1IO3JldHVybiBmdW5jdGlvbigpe3ZhciBRPUg7SD1DO3RyeXtyZXR1cm4geC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtIPVF9fX19KShwbykpLHBvfXZhciBEZDtmdW5jdGlvbiBqXygpe3JldHVybiBEZHx8KERkPTEseW8uZXhwb3J0cz1xXygpKSx5by5leHBvcnRzfXZhciBnbz17ZXhwb3J0czp7fX0sSz17fTt2YXIgTmQ7ZnVuY3Rpb24gSF8oKXtpZihOZClyZXR1cm4gSztOZD0xO3ZhciBvPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksZj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxtPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iikscz1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLFQ9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxPPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksdz1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksRT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEQ9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxTPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxNPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxWPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBIKGQpe3JldHVybiBkPT09bnVsbHx8dHlwZW9mIGQhPSJvYmplY3QiP251bGw6KGQ9ViYmZFtWXXx8ZFsiQEBpdGVyYXRvciJdLHR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6bnVsbCl9dmFyIGNlPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxoZT1PYmplY3QuYXNzaWduLGtlPXt9O2Z1bmN0aW9uIE5lKGQsTixxKXt0aGlzLnByb3BzPWQsdGhpcy5jb250ZXh0PU4sdGhpcy5yZWZzPWtlLHRoaXMudXBkYXRlcj1xfHxjZX1OZS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxOZS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZCxOKXtpZih0eXBlb2YgZCE9Im9iamVjdCImJnR5cGVvZiBkIT0iZnVuY3Rpb24iJiZkIT1udWxsKXRocm93IEVycm9yKCJ0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZCxOLCJzZXRTdGF0ZSIpfSxOZS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZCl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGQsImZvcmNlVXBkYXRlIil9O2Z1bmN0aW9uIHR0KCl7fXR0LnByb3RvdHlwZT1OZS5wcm90b3R5cGU7ZnVuY3Rpb24gYXQoZCxOLHEpe3RoaXMucHJvcHM9ZCx0aGlzLmNvbnRleHQ9Tix0aGlzLnJlZnM9a2UsdGhpcy51cGRhdGVyPXF8fGNlfXZhciBTZT1hdC5wcm90b3R5cGU9bmV3IHR0O1NlLmNvbnN0cnVjdG9yPWF0LGhlKFNlLE5lLnByb3RvdHlwZSksU2UuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHZlPUFycmF5LmlzQXJyYXksZWU9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbCxWOm51bGx9LFRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gT2UoZCxOLHEsVSxMLGxlKXtyZXR1cm4gcT1sZS5yZWYseyQkdHlwZW9mOm8sdHlwZTpkLGtleTpOLHJlZjpxIT09dm9pZCAwP3E6bnVsbCxwcm9wczpsZX19ZnVuY3Rpb24gVyhkLE4pe3JldHVybiBPZShkLnR5cGUsTix2b2lkIDAsdm9pZCAwLHZvaWQgMCxkLnByb3BzKX1mdW5jdGlvbiB4ZShkKXtyZXR1cm4gdHlwZW9mIGQ9PSJvYmplY3QiJiZkIT09bnVsbCYmZC4kJHR5cGVvZj09PW99ZnVuY3Rpb24gRihkKXt2YXIgTj17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitkLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihxKXtyZXR1cm4gTltxXX0pfXZhciBhZT0vXC8rL2c7ZnVuY3Rpb24gbmUoZCxOKXtyZXR1cm4gdHlwZW9mIGQ9PSJvYmplY3QiJiZkIT09bnVsbCYmZC5rZXkhPW51bGw/RigiIitkLmtleSk6Ti50b1N0cmluZygzNil9ZnVuY3Rpb24gcWUoKXt9ZnVuY3Rpb24gJGUoZCl7c3dpdGNoKGQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZC5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIGQuc3RhdHVzPT0ic3RyaW5nIj9kLnRoZW4ocWUscWUpOihkLnN0YXR1cz0icGVuZGluZyIsZC50aGVuKGZ1bmN0aW9uKE4pe2Quc3RhdHVzPT09InBlbmRpbmciJiYoZC5zdGF0dXM9ImZ1bGZpbGxlZCIsZC52YWx1ZT1OKX0sZnVuY3Rpb24oTil7ZC5zdGF0dXM9PT0icGVuZGluZyImJihkLnN0YXR1cz0icmVqZWN0ZWQiLGQucmVhc29uPU4pfSkpLGQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZC5yZWFzb259fXRocm93IGR9ZnVuY3Rpb24gamUoZCxOLHEsVSxMKXt2YXIgbGU9dHlwZW9mIGQ7KGxlPT09InVuZGVmaW5lZCJ8fGxlPT09ImJvb2xlYW4iKSYmKGQ9bnVsbCk7dmFyIFo9ITE7aWYoZD09PW51bGwpWj0hMDtlbHNlIHN3aXRjaChsZSl7Y2FzZSJiaWdpbnQiOmNhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Wj0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgbzpjYXNlIGY6Wj0hMDticmVhaztjYXNlIE06cmV0dXJuIFo9ZC5faW5pdCxqZShaKGQuX3BheWxvYWQpLE4scSxVLEwpfX1pZihaKXJldHVybiBMPUwoZCksWj1VPT09IiI/Ii4iK25lKGQsMCk6VSx2ZShMKT8ocT0iIixaIT1udWxsJiYocT1aLnJlcGxhY2UoYWUsIiQmLyIpKyIvIiksamUoTCxOLHEsIiIsZnVuY3Rpb24oSnQpe3JldHVybiBKdH0pKTpMIT1udWxsJiYoeGUoTCkmJihMPVcoTCxxKyhMLmtleT09bnVsbHx8ZCYmZC5rZXk9PT1MLmtleT8iIjooIiIrTC5rZXkpLnJlcGxhY2UoYWUsIiQmLyIpKyIvIikrWikpLE4ucHVzaChMKSksMTtaPTA7dmFyIG50PVU9PT0iIj8iLiI6VSsiOiI7aWYodmUoZCkpZm9yKHZhciBwZT0wO3BlPGQubGVuZ3RoO3BlKyspVT1kW3BlXSxsZT1udCtuZShVLHBlKSxaKz1qZShVLE4scSxsZSxMKTtlbHNlIGlmKHBlPUgoZCksdHlwZW9mIHBlPT0iZnVuY3Rpb24iKWZvcihkPXBlLmNhbGwoZCkscGU9MDshKFU9ZC5uZXh0KCkpLmRvbmU7KVU9VS52YWx1ZSxsZT1udCtuZShVLHBlKyspLForPWplKFUsTixxLGxlLEwpO2Vsc2UgaWYobGU9PT0ib2JqZWN0Iil7aWYodHlwZW9mIGQudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gamUoJGUoZCksTixxLFUsTCk7dGhyb3cgTj1TdHJpbmcoZCksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoTj09PSJbb2JqZWN0IE9iamVjdF0iPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGQpLmpvaW4oIiwgIikrIn0iOk4pKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIil9cmV0dXJuIFp9ZnVuY3Rpb24geChkLE4scSl7aWYoZD09bnVsbClyZXR1cm4gZDt2YXIgVT1bXSxMPTA7cmV0dXJuIGplKGQsVSwiIiwiIixmdW5jdGlvbihsZSl7cmV0dXJuIE4uY2FsbChxLGxlLEwrKyl9KSxVfWZ1bmN0aW9uIEMoZCl7aWYoZC5fc3RhdHVzPT09LTEpe3ZhciBOPWQuX3Jlc3VsdDtOPU4oKSxOLnRoZW4oZnVuY3Rpb24ocSl7KGQuX3N0YXR1cz09PTB8fGQuX3N0YXR1cz09PS0xKSYmKGQuX3N0YXR1cz0xLGQuX3Jlc3VsdD1xKX0sZnVuY3Rpb24ocSl7KGQuX3N0YXR1cz09PTB8fGQuX3N0YXR1cz09PS0xKSYmKGQuX3N0YXR1cz0yLGQuX3Jlc3VsdD1xKX0pLGQuX3N0YXR1cz09PS0xJiYoZC5fc3RhdHVzPTAsZC5fcmVzdWx0PU4pfWlmKGQuX3N0YXR1cz09PTEpcmV0dXJuIGQuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGQuX3Jlc3VsdH12YXIgUT10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZCl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIE49bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBkPT0ib2JqZWN0IiYmZCE9PW51bGwmJnR5cGVvZiBkLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhkLm1lc3NhZ2UpOlN0cmluZyhkKSxlcnJvcjpkfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KE4pKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsZCk7cmV0dXJufWNvbnNvbGUuZXJyb3IoZCl9O2Z1bmN0aW9uIG1lKCl7fXJldHVybiBLLkNoaWxkcmVuPXttYXA6eCxmb3JFYWNoOmZ1bmN0aW9uKGQsTixxKXt4KGQsZnVuY3Rpb24oKXtOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scSl9LGNvdW50OmZ1bmN0aW9uKGQpe3ZhciBOPTA7cmV0dXJuIHgoZCxmdW5jdGlvbigpe04rK30pLE59LHRvQXJyYXk6ZnVuY3Rpb24oZCl7cmV0dXJuIHgoZCxmdW5jdGlvbihOKXtyZXR1cm4gTn0pfHxbXX0sb25seTpmdW5jdGlvbihkKXtpZigheGUoZCkpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBkfX0sSy5Db21wb25lbnQ9TmUsSy5GcmFnbWVudD1tLEsuUHJvZmlsZXI9VCxLLlB1cmVDb21wb25lbnQ9YXQsSy5TdHJpY3RNb2RlPXMsSy5TdXNwZW5zZT1ELEsuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWVlLEsuX19DT01QSUxFUl9SVU5USU1FPXtfX3Byb3RvX186bnVsbCxjOmZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZU1lbW9DYWNoZShkKX19LEsuY2FjaGU9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGQuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sSy5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oZCxOLHEpe2lmKGQ9PW51bGwpdGhyb3cgRXJyb3IoIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitkKyIuIik7dmFyIFU9aGUoe30sZC5wcm9wcyksTD1kLmtleSxsZT12b2lkIDA7aWYoTiE9bnVsbClmb3IoWiBpbiBOLnJlZiE9PXZvaWQgMCYmKGxlPXZvaWQgMCksTi5rZXkhPT12b2lkIDAmJihMPSIiK04ua2V5KSxOKSFUZS5jYWxsKE4sWil8fFo9PT0ia2V5Inx8Wj09PSJfX3NlbGYifHxaPT09Il9fc291cmNlInx8Wj09PSJyZWYiJiZOLnJlZj09PXZvaWQgMHx8KFVbWl09TltaXSk7dmFyIFo9YXJndW1lbnRzLmxlbmd0aC0yO2lmKFo9PT0xKVUuY2hpbGRyZW49cTtlbHNlIGlmKDE8Wil7Zm9yKHZhciBudD1BcnJheShaKSxwZT0wO3BlPFo7cGUrKyludFtwZV09YXJndW1lbnRzW3BlKzJdO1UuY2hpbGRyZW49bnR9cmV0dXJuIE9lKGQudHlwZSxMLHZvaWQgMCx2b2lkIDAsbGUsVSl9LEsuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihkKXtyZXR1cm4gZD17JCR0eXBlb2Y6dyxfY3VycmVudFZhbHVlOmQsX2N1cnJlbnRWYWx1ZTI6ZCxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9LGQuUHJvdmlkZXI9ZCxkLkNvbnN1bWVyPXskJHR5cGVvZjpPLF9jb250ZXh0OmR9LGR9LEsuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihkLE4scSl7dmFyIFUsTD17fSxsZT1udWxsO2lmKE4hPW51bGwpZm9yKFUgaW4gTi5rZXkhPT12b2lkIDAmJihsZT0iIitOLmtleSksTilUZS5jYWxsKE4sVSkmJlUhPT0ia2V5IiYmVSE9PSJfX3NlbGYiJiZVIT09Il9fc291cmNlIiYmKExbVV09TltVXSk7dmFyIFo9YXJndW1lbnRzLmxlbmd0aC0yO2lmKFo9PT0xKUwuY2hpbGRyZW49cTtlbHNlIGlmKDE8Wil7Zm9yKHZhciBudD1BcnJheShaKSxwZT0wO3BlPFo7cGUrKyludFtwZV09YXJndW1lbnRzW3BlKzJdO0wuY2hpbGRyZW49bnR9aWYoZCYmZC5kZWZhdWx0UHJvcHMpZm9yKFUgaW4gWj1kLmRlZmF1bHRQcm9wcyxaKUxbVV09PT12b2lkIDAmJihMW1VdPVpbVV0pO3JldHVybiBPZShkLGxlLHZvaWQgMCx2b2lkIDAsbnVsbCxMKX0sSy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sSy5mb3J3YXJkUmVmPWZ1bmN0aW9uKGQpe3JldHVybnskJHR5cGVvZjpFLHJlbmRlcjpkfX0sSy5pc1ZhbGlkRWxlbWVudD14ZSxLLmxhenk9ZnVuY3Rpb24oZCl7cmV0dXJueyQkdHlwZW9mOk0sX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpkfSxfaW5pdDpDfX0sSy5tZW1vPWZ1bmN0aW9uKGQsTil7cmV0dXJueyQkdHlwZW9mOlMsdHlwZTpkLGNvbXBhcmU6Tj09PXZvaWQgMD9udWxsOk59fSxLLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihkKXt2YXIgTj1lZS5ULHE9e307ZWUuVD1xO3RyeXt2YXIgVT1kKCksTD1lZS5TO0whPT1udWxsJiZMKHEsVSksdHlwZW9mIFU9PSJvYmplY3QiJiZVIT09bnVsbCYmdHlwZW9mIFUudGhlbj09ImZ1bmN0aW9uIiYmVS50aGVuKG1lLFEpfWNhdGNoKGxlKXtRKGxlKX1maW5hbGx5e2VlLlQ9Tn19LEsudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlLkgudXNlQ2FjaGVSZWZyZXNoKCl9LEsudXNlPWZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZShkKX0sSy51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihkLE4scSl7cmV0dXJuIGVlLkgudXNlQWN0aW9uU3RhdGUoZCxOLHEpfSxLLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlQ2FsbGJhY2soZCxOKX0sSy51c2VDb250ZXh0PWZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZUNvbnRleHQoZCl9LEsudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sSy51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlRGVmZXJyZWRWYWx1ZShkLE4pfSxLLnVzZUVmZmVjdD1mdW5jdGlvbihkLE4scSl7dmFyIFU9ZWUuSDtpZih0eXBlb2YgcT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigidXNlRWZmZWN0IENSVUQgb3ZlcmxvYWQgaXMgbm90IGVuYWJsZWQgaW4gdGhpcyBidWlsZCBvZiBSZWFjdC4iKTtyZXR1cm4gVS51c2VFZmZlY3QoZCxOKX0sSy51c2VJZD1mdW5jdGlvbigpe3JldHVybiBlZS5ILnVzZUlkKCl9LEsudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihkLE4scSl7cmV0dXJuIGVlLkgudXNlSW1wZXJhdGl2ZUhhbmRsZShkLE4scSl9LEsudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlSW5zZXJ0aW9uRWZmZWN0KGQsTil9LEsudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlTGF5b3V0RWZmZWN0KGQsTil9LEsudXNlTWVtbz1mdW5jdGlvbihkLE4pe3JldHVybiBlZS5ILnVzZU1lbW8oZCxOKX0sSy51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlT3B0aW1pc3RpYyhkLE4pfSxLLnVzZVJlZHVjZXI9ZnVuY3Rpb24oZCxOLHEpe3JldHVybiBlZS5ILnVzZVJlZHVjZXIoZCxOLHEpfSxLLnVzZVJlZj1mdW5jdGlvbihkKXtyZXR1cm4gZWUuSC51c2VSZWYoZCl9LEsudXNlU3RhdGU9ZnVuY3Rpb24oZCl7cmV0dXJuIGVlLkgudXNlU3RhdGUoZCl9LEsudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oZCxOLHEpe3JldHVybiBlZS5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGQsTixxKX0sSy51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGVlLkgudXNlVHJhbnNpdGlvbigpfSxLLnZlcnNpb249IjE5LjEuMSIsS312YXIgT2Q7ZnVuY3Rpb24gem8oKXtyZXR1cm4gT2R8fChPZD0xLGdvLmV4cG9ydHM9SF8oKSksZ28uZXhwb3J0c312YXIgYm89e2V4cG9ydHM6e319LEtlPXt9O3ZhciBNZDtmdW5jdGlvbiBCXygpe2lmKE1kKXJldHVybiBLZTtNZD0xO3ZhciBvPXpvKCk7ZnVuY3Rpb24gZihEKXt2YXIgUz0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrRDtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe1MrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBNPTI7TTxhcmd1bWVudHMubGVuZ3RoO00rKylTKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbTV0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitEKyI7IHZpc2l0ICIrUysiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIG0oKXt9dmFyIHM9e2Q6e2Y6bSxyOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoZig1MjIpKX0sRDptLEM6bSxMOm0sbSxYOm0sUzptLE06bX0scDowLGZpbmRET01Ob2RlOm51bGx9LFQ9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik7ZnVuY3Rpb24gTyhELFMsTSl7dmFyIFY9Mzxhcmd1bWVudHMubGVuZ3RoJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOlQsa2V5OlY9PW51bGw/bnVsbDoiIitWLGNoaWxkcmVuOkQsY29udGFpbmVySW5mbzpTLGltcGxlbWVudGF0aW9uOk19fXZhciB3PW8uX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFO2Z1bmN0aW9uIEUoRCxTKXtpZihEPT09ImZvbnQiKXJldHVybiIiO2lmKHR5cGVvZiBTPT0ic3RyaW5nIilyZXR1cm4gUz09PSJ1c2UtY3JlZGVudGlhbHMiP1M6IiJ9cmV0dXJuIEtlLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1zLEtlLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihELFMpe3ZhciBNPTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFTfHxTLm5vZGVUeXBlIT09MSYmUy5ub2RlVHlwZSE9PTkmJlMubm9kZVR5cGUhPT0xMSl0aHJvdyBFcnJvcihmKDI5OSkpO3JldHVybiBPKEQsUyxudWxsLE0pfSxLZS5mbHVzaFN5bmM9ZnVuY3Rpb24oRCl7dmFyIFM9dy5ULE09cy5wO3RyeXtpZih3LlQ9bnVsbCxzLnA9MixEKXJldHVybiBEKCl9ZmluYWxseXt3LlQ9UyxzLnA9TSxzLmQuZigpfX0sS2UucHJlY29ubmVjdD1mdW5jdGlvbihELFMpe3R5cGVvZiBEPT0ic3RyaW5nIiYmKFM/KFM9Uy5jcm9zc09yaWdpbixTPXR5cGVvZiBTPT0ic3RyaW5nIj9TPT09InVzZS1jcmVkZW50aWFscyI/UzoiIjp2b2lkIDApOlM9bnVsbCxzLmQuQyhELFMpKX0sS2UucHJlZmV0Y2hETlM9ZnVuY3Rpb24oRCl7dHlwZW9mIEQ9PSJzdHJpbmciJiZzLmQuRChEKX0sS2UucHJlaW5pdD1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIiYmUyYmdHlwZW9mIFMuYXM9PSJzdHJpbmciKXt2YXIgTT1TLmFzLFY9RShNLFMuY3Jvc3NPcmlnaW4pLEg9dHlwZW9mIFMuaW50ZWdyaXR5PT0ic3RyaW5nIj9TLmludGVncml0eTp2b2lkIDAsY2U9dHlwZW9mIFMuZmV0Y2hQcmlvcml0eT09InN0cmluZyI/Uy5mZXRjaFByaW9yaXR5OnZvaWQgMDtNPT09InN0eWxlIj9zLmQuUyhELHR5cGVvZiBTLnByZWNlZGVuY2U9PSJzdHJpbmciP1MucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOlYsaW50ZWdyaXR5OkgsZmV0Y2hQcmlvcml0eTpjZX0pOk09PT0ic2NyaXB0IiYmcy5kLlgoRCx7Y3Jvc3NPcmlnaW46VixpbnRlZ3JpdHk6SCxmZXRjaFByaW9yaXR5OmNlLG5vbmNlOnR5cGVvZiBTLm5vbmNlPT0ic3RyaW5nIj9TLm5vbmNlOnZvaWQgMH0pfX0sS2UucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIilpZih0eXBlb2YgUz09Im9iamVjdCImJlMhPT1udWxsKXtpZihTLmFzPT1udWxsfHxTLmFzPT09InNjcmlwdCIpe3ZhciBNPUUoUy5hcyxTLmNyb3NzT3JpZ2luKTtzLmQuTShELHtjcm9zc09yaWdpbjpNLGludGVncml0eTp0eXBlb2YgUy5pbnRlZ3JpdHk9PSJzdHJpbmciP1MuaW50ZWdyaXR5OnZvaWQgMCxub25jZTp0eXBlb2YgUy5ub25jZT09InN0cmluZyI/Uy5ub25jZTp2b2lkIDB9KX19ZWxzZSBTPT1udWxsJiZzLmQuTShEKX0sS2UucHJlbG9hZD1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIiYmdHlwZW9mIFM9PSJvYmplY3QiJiZTIT09bnVsbCYmdHlwZW9mIFMuYXM9PSJzdHJpbmciKXt2YXIgTT1TLmFzLFY9RShNLFMuY3Jvc3NPcmlnaW4pO3MuZC5MKEQsTSx7Y3Jvc3NPcmlnaW46VixpbnRlZ3JpdHk6dHlwZW9mIFMuaW50ZWdyaXR5PT0ic3RyaW5nIj9TLmludGVncml0eTp2b2lkIDAsbm9uY2U6dHlwZW9mIFMubm9uY2U9PSJzdHJpbmciP1Mubm9uY2U6dm9pZCAwLHR5cGU6dHlwZW9mIFMudHlwZT09InN0cmluZyI/Uy50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5OnR5cGVvZiBTLmZldGNoUHJpb3JpdHk9PSJzdHJpbmciP1MuZmV0Y2hQcmlvcml0eTp2b2lkIDAscmVmZXJyZXJQb2xpY3k6dHlwZW9mIFMucmVmZXJyZXJQb2xpY3k9PSJzdHJpbmciP1MucmVmZXJyZXJQb2xpY3k6dm9pZCAwLGltYWdlU3JjU2V0OnR5cGVvZiBTLmltYWdlU3JjU2V0PT0ic3RyaW5nIj9TLmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOnR5cGVvZiBTLmltYWdlU2l6ZXM9PSJzdHJpbmciP1MuaW1hZ2VTaXplczp2b2lkIDAsbWVkaWE6dHlwZW9mIFMubWVkaWE9PSJzdHJpbmciP1MubWVkaWE6dm9pZCAwfSl9fSxLZS5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKEQsUyl7aWYodHlwZW9mIEQ9PSJzdHJpbmciKWlmKFMpe3ZhciBNPUUoUy5hcyxTLmNyb3NzT3JpZ2luKTtzLmQubShELHthczp0eXBlb2YgUy5hcz09InN0cmluZyImJlMuYXMhPT0ic2NyaXB0Ij9TLmFzOnZvaWQgMCxjcm9zc09yaWdpbjpNLGludGVncml0eTp0eXBlb2YgUy5pbnRlZ3JpdHk9PSJzdHJpbmciP1MuaW50ZWdyaXR5OnZvaWQgMH0pfWVsc2Ugcy5kLm0oRCl9LEtlLnJlcXVlc3RGb3JtUmVzZXQ9ZnVuY3Rpb24oRCl7cy5kLnIoRCl9LEtlLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKEQsUyl7cmV0dXJuIEQoUyl9LEtlLnVzZUZvcm1TdGF0ZT1mdW5jdGlvbihELFMsTSl7cmV0dXJuIHcuSC51c2VGb3JtU3RhdGUoRCxTLE0pfSxLZS51c2VGb3JtU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIHcuSC51c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpfSxLZS52ZXJzaW9uPSIxOS4xLjEiLEtlfXZhciB3ZDtmdW5jdGlvbiBZXygpe2lmKHdkKXJldHVybiBiby5leHBvcnRzO3dkPTE7ZnVuY3Rpb24gbygpe2lmKCEodHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXz4idSJ8fHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UhPSJmdW5jdGlvbiIpKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0Uobyl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihmKX19cmV0dXJuIG8oKSxiby5leHBvcnRzPUJfKCksYm8uZXhwb3J0c312YXIgVWQ7ZnVuY3Rpb24gTF8oKXtpZihVZClyZXR1cm4gQWw7VWQ9MTt2YXIgbz1qXygpLGY9em8oKSxtPVlfKCk7ZnVuY3Rpb24gcyhlKXt2YXIgdD0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe3QrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBhPTI7YTxhcmd1bWVudHMubGVuZ3RoO2ErKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbYV0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIFQoZSl7cmV0dXJuISghZXx8ZS5ub2RlVHlwZSE9PTEmJmUubm9kZVR5cGUhPT05JiZlLm5vZGVUeXBlIT09MTEpfWZ1bmN0aW9uIE8oZSl7dmFyIHQ9ZSxhPWU7aWYoZS5hbHRlcm5hdGUpZm9yKDt0LnJldHVybjspdD10LnJldHVybjtlbHNle2U9dDtkbyB0PWUsKHQuZmxhZ3MmNDA5OCkhPT0wJiYoYT10LnJldHVybiksZT10LnJldHVybjt3aGlsZShlKX1yZXR1cm4gdC50YWc9PT0zP2E6bnVsbH1mdW5jdGlvbiB3KGUpe2lmKGUudGFnPT09MTMpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZih0PT09bnVsbCYmKGU9ZS5hbHRlcm5hdGUsZSE9PW51bGwmJih0PWUubWVtb2l6ZWRTdGF0ZSkpLHQhPT1udWxsKXJldHVybiB0LmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRShlKXtpZihPKGUpIT09ZSl0aHJvdyBFcnJvcihzKDE4OCkpfWZ1bmN0aW9uIEQoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpe2lmKHQ9TyhlKSx0PT09bnVsbCl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiB0IT09ZT9udWxsOmV9Zm9yKHZhciBhPWUsbj10Ozspe3ZhciBsPWEucmV0dXJuO2lmKGw9PT1udWxsKWJyZWFrO3ZhciBpPWwuYWx0ZXJuYXRlO2lmKGk9PT1udWxsKXtpZihuPWwucmV0dXJuLG4hPT1udWxsKXthPW47Y29udGludWV9YnJlYWt9aWYobC5jaGlsZD09PWkuY2hpbGQpe2ZvcihpPWwuY2hpbGQ7aTspe2lmKGk9PT1hKXJldHVybiBFKGwpLGU7aWYoaT09PW4pcmV0dXJuIEUobCksdDtpPWkuc2libGluZ310aHJvdyBFcnJvcihzKDE4OCkpfWlmKGEucmV0dXJuIT09bi5yZXR1cm4pYT1sLG49aTtlbHNle2Zvcih2YXIgdT0hMSxjPWwuY2hpbGQ7Yzspe2lmKGM9PT1hKXt1PSEwLGE9bCxuPWk7YnJlYWt9aWYoYz09PW4pe3U9ITAsbj1sLGE9aTticmVha31jPWMuc2libGluZ31pZighdSl7Zm9yKGM9aS5jaGlsZDtjOyl7aWYoYz09PWEpe3U9ITAsYT1pLG49bDticmVha31pZihjPT09bil7dT0hMCxuPWksYT1sO2JyZWFrfWM9Yy5zaWJsaW5nfWlmKCF1KXRocm93IEVycm9yKHMoMTg5KSl9fWlmKGEuYWx0ZXJuYXRlIT09bil0aHJvdyBFcnJvcihzKDE5MCkpfWlmKGEudGFnIT09Myl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiBhLnN0YXRlTm9kZS5jdXJyZW50PT09YT9lOnR9ZnVuY3Rpb24gUyhlKXt2YXIgdD1lLnRhZztpZih0PT09NXx8dD09PTI2fHx0PT09Mjd8fHQ9PT02KXJldHVybiBlO2ZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXtpZih0PVMoZSksdCE9PW51bGwpcmV0dXJuIHQ7ZT1lLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE09T2JqZWN0LmFzc2lnbixWPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxIPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksY2U9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaGU9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxrZT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLE5lPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksdHQ9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxhdD1TeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLFNlPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSx2ZT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGVlPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksVGU9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLE9lPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxXPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSx4ZT1TeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLEY9U3ltYm9sLmZvcigicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbCIpLGFlPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBuZShlKXtyZXR1cm4gZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Ij9udWxsOihlPWFlJiZlW2FlXXx8ZVsiQEBpdGVyYXRvciJdLHR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6bnVsbCl9dmFyIHFlPVN5bWJvbC5mb3IoInJlYWN0LmNsaWVudC5yZWZlcmVuY2UiKTtmdW5jdGlvbiAkZShlKXtpZihlPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlLiQkdHlwZW9mPT09cWU/bnVsbDplLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO3N3aXRjaChlKXtjYXNlIGhlOnJldHVybiJGcmFnbWVudCI7Y2FzZSBOZTpyZXR1cm4iUHJvZmlsZXIiO2Nhc2Uga2U6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgZWU6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIFRlOnJldHVybiJTdXNwZW5zZUxpc3QiO2Nhc2UgeGU6cmV0dXJuIkFjdGl2aXR5In1pZih0eXBlb2YgZT09Im9iamVjdCIpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgY2U6cmV0dXJuIlBvcnRhbCI7Y2FzZSBTZTpyZXR1cm4oZS5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIGF0OnJldHVybihlLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgdmU6dmFyIHQ9ZS5yZW5kZXI7cmV0dXJuIGU9ZS5kaXNwbGF5TmFtZSxlfHwoZT10LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fCIiLGU9ZSE9PSIiPyJGb3J3YXJkUmVmKCIrZSsiKSI6IkZvcndhcmRSZWYiKSxlO2Nhc2UgT2U6cmV0dXJuIHQ9ZS5kaXNwbGF5TmFtZXx8bnVsbCx0IT09bnVsbD90OiRlKGUudHlwZSl8fCJNZW1vIjtjYXNlIFc6dD1lLl9wYXlsb2FkLGU9ZS5faW5pdDt0cnl7cmV0dXJuICRlKGUodCkpfWNhdGNoe319cmV0dXJuIG51bGx9dmFyIGplPUFycmF5LmlzQXJyYXkseD1mLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxDPW0uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFE9e3BlbmRpbmc6ITEsZGF0YTpudWxsLG1ldGhvZDpudWxsLGFjdGlvbjpudWxsfSxtZT1bXSxkPS0xO2Z1bmN0aW9uIE4oZSl7cmV0dXJue2N1cnJlbnQ6ZX19ZnVuY3Rpb24gcShlKXswPmR8fChlLmN1cnJlbnQ9bWVbZF0sbWVbZF09bnVsbCxkLS0pfWZ1bmN0aW9uIFUoZSx0KXtkKyssbWVbZF09ZS5jdXJyZW50LGUuY3VycmVudD10fXZhciBMPU4obnVsbCksbGU9TihudWxsKSxaPU4obnVsbCksbnQ9TihudWxsKTtmdW5jdGlvbiBwZShlLHQpe3N3aXRjaChVKFosdCksVShsZSxlKSxVKEwsbnVsbCksdC5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6ZT0oZT10LmRvY3VtZW50RWxlbWVudCkmJihlPWUubmFtZXNwYWNlVVJJKT9JZihlKTowO2JyZWFrO2RlZmF1bHQ6aWYoZT10LnRhZ05hbWUsdD10Lm5hbWVzcGFjZVVSSSl0PUlmKHQpLGU9ZWQodCxlKTtlbHNlIHN3aXRjaChlKXtjYXNlInN2ZyI6ZT0xO2JyZWFrO2Nhc2UibWF0aCI6ZT0yO2JyZWFrO2RlZmF1bHQ6ZT0wfX1xKEwpLFUoTCxlKX1mdW5jdGlvbiBKdCgpe3EoTCkscShsZSkscShaKX1mdW5jdGlvbiBJaShlKXtlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZVKG50LGUpO3ZhciB0PUwuY3VycmVudCxhPWVkKHQsZS50eXBlKTt0IT09YSYmKFUobGUsZSksVShMLGEpKX1mdW5jdGlvbiBPbChlKXtsZS5jdXJyZW50PT09ZSYmKHEoTCkscShsZSkpLG50LmN1cnJlbnQ9PT1lJiYocShudCkscGwuX2N1cnJlbnRWYWx1ZT1RKX12YXIgZXU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx0dT1vLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssYXU9by51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxmaD1vLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGRoPW8udW5zdGFibGVfcmVxdWVzdFBhaW50LHp0PW8udW5zdGFibGVfbm93LGhoPW8udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsd289by51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxVbz1vLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LE1sPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksbWg9by51bnN0YWJsZV9Mb3dQcmlvcml0eSxDbz1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxfaD1vLmxvZyx2aD1vLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLHpuPW51bGwsbHQ9bnVsbDtmdW5jdGlvbiAkdChlKXtpZih0eXBlb2YgX2g9PSJmdW5jdGlvbiImJnZoKGUpLGx0JiZ0eXBlb2YgbHQuc2V0U3RyaWN0TW9kZT09ImZ1bmN0aW9uIil0cnl7bHQuc2V0U3RyaWN0TW9kZSh6bixlKX1jYXRjaHt9fXZhciBpdD1NYXRoLmNsejMyP01hdGguY2x6MzI6Z2gseWg9TWF0aC5sb2cscGg9TWF0aC5MTjI7ZnVuY3Rpb24gZ2goZSl7cmV0dXJuIGU+Pj49MCxlPT09MD8zMjozMS0oeWgoZSkvcGh8MCl8MH12YXIgd2w9MjU2LFVsPTQxOTQzMDQ7ZnVuY3Rpb24gZ2EoZSl7dmFyIHQ9ZSY0MjtpZih0IT09MClyZXR1cm4gdDtzd2l0Y2goZSYtZSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGUmNDE5NDA0ODtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpyZXR1cm4gZSY2MjkxNDU2MDtjYXNlIDY3MTA4ODY0OnJldHVybiA2NzEwODg2NDtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDA7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gQ2woZSx0LGEpe3ZhciBuPWUucGVuZGluZ0xhbmVzO2lmKG49PT0wKXJldHVybiAwO3ZhciBsPTAsaT1lLnN1c3BlbmRlZExhbmVzLHU9ZS5waW5nZWRMYW5lcztlPWUud2FybUxhbmVzO3ZhciBjPW4mMTM0MjE3NzI3O3JldHVybiBjIT09MD8obj1jJn5pLG4hPT0wP2w9Z2Eobik6KHUmPWMsdSE9PTA/bD1nYSh1KTphfHwoYT1jJn5lLGEhPT0wJiYobD1nYShhKSkpKSk6KGM9biZ+aSxjIT09MD9sPWdhKGMpOnUhPT0wP2w9Z2EodSk6YXx8KGE9biZ+ZSxhIT09MCYmKGw9Z2EoYSkpKSksbD09PTA/MDp0IT09MCYmdCE9PWwmJih0JmkpPT09MCYmKGk9bCYtbCxhPXQmLXQsaT49YXx8aT09PTMyJiYoYSY0MTk0MDQ4KSE9PTApP3Q6bH1mdW5jdGlvbiBSbihlLHQpe3JldHVybihlLnBlbmRpbmdMYW5lcyZ+KGUuc3VzcGVuZGVkTGFuZXMmfmUucGluZ2VkTGFuZXMpJnQpPT09MH1mdW5jdGlvbiBiaChlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpyZXR1cm4tMTtjYXNlIDY3MTA4ODY0OmNhc2UgMTM0MjE3NzI4OmNhc2UgMjY4NDM1NDU2OmNhc2UgNTM2ODcwOTEyOmNhc2UgMTA3Mzc0MTgyNDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiBxbygpe3ZhciBlPXdsO3JldHVybiB3bDw8PTEsKHdsJjQxOTQwNDgpPT09MCYmKHdsPTI1NiksZX1mdW5jdGlvbiBqbygpe3ZhciBlPVVsO3JldHVybiBVbDw8PTEsKFVsJjYyOTE0NTYwKT09PTAmJihVbD00MTk0MzA0KSxlfWZ1bmN0aW9uIG51KGUpe2Zvcih2YXIgdD1bXSxhPTA7MzE+YTthKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIERuKGUsdCl7ZS5wZW5kaW5nTGFuZXN8PXQsdCE9PTI2ODQzNTQ1NiYmKGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS53YXJtTGFuZXM9MCl9ZnVuY3Rpb24gU2goZSx0LGEsbixsLGkpe3ZhciB1PWUucGVuZGluZ0xhbmVzO2UucGVuZGluZ0xhbmVzPWEsZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wLGUuZXhwaXJlZExhbmVzJj1hLGUuZW50YW5nbGVkTGFuZXMmPWEsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyY9YSxlLnNoZWxsU3VzcGVuZENvdW50ZXI9MDt2YXIgYz1lLmVudGFuZ2xlbWVudHMscj1lLmV4cGlyYXRpb25UaW1lcyxwPWUuaGlkZGVuVXBkYXRlcztmb3IoYT11Jn5hOzA8YTspe3ZhciBBPTMxLWl0KGEpLFI9MTw8QTtjW0FdPTAscltBXT0tMTt2YXIgZz1wW0FdO2lmKGchPT1udWxsKWZvcihwW0FdPW51bGwsQT0wO0E8Zy5sZW5ndGg7QSsrKXt2YXIgYj1nW0FdO2IhPT1udWxsJiYoYi5sYW5lJj0tNTM2ODcwOTEzKX1hJj1+Un1uIT09MCYmSG8oZSxuLDApLGkhPT0wJiZsPT09MCYmZS50YWchPT0wJiYoZS5zdXNwZW5kZWRMYW5lc3w9aSZ+KHUmfnQpKX1mdW5jdGlvbiBIbyhlLHQsYSl7ZS5wZW5kaW5nTGFuZXN8PXQsZS5zdXNwZW5kZWRMYW5lcyY9fnQ7dmFyIG49MzEtaXQodCk7ZS5lbnRhbmdsZWRMYW5lc3w9dCxlLmVudGFuZ2xlbWVudHNbbl09ZS5lbnRhbmdsZW1lbnRzW25dfDEwNzM3NDE4MjR8YSY0MTk0MDkwfWZ1bmN0aW9uIEJvKGUsdCl7dmFyIGE9ZS5lbnRhbmdsZWRMYW5lc3w9dDtmb3IoZT1lLmVudGFuZ2xlbWVudHM7YTspe3ZhciBuPTMxLWl0KGEpLGw9MTw8bjtsJnR8ZVtuXSZ0JiYoZVtuXXw9dCksYSY9fmx9fWZ1bmN0aW9uIGx1KGUpe3N3aXRjaChlKXtjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgODplPTQ7YnJlYWs7Y2FzZSAzMjplPTE2O2JyZWFrO2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmU9MTI4O2JyZWFrO2Nhc2UgMjY4NDM1NDU2OmU9MTM0MjE3NzI4O2JyZWFrO2RlZmF1bHQ6ZT0wfXJldHVybiBlfWZ1bmN0aW9uIGl1KGUpe3JldHVybiBlJj0tZSwyPGU/ODxlPyhlJjEzNDIxNzcyNykhPT0wPzMyOjI2ODQzNTQ1Njo4OjJ9ZnVuY3Rpb24gWW8oKXt2YXIgZT1DLnA7cmV0dXJuIGUhPT0wP2U6KGU9d2luZG93LmV2ZW50LGU9PT12b2lkIDA/MzI6Z2QoZS50eXBlKSl9ZnVuY3Rpb24gVGgoZSx0KXt2YXIgYT1DLnA7dHJ5e3JldHVybiBDLnA9ZSx0KCl9ZmluYWxseXtDLnA9YX19dmFyIFd0PU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLFplPSJfX3JlYWN0RmliZXIkIitXdCxXZT0iX19yZWFjdFByb3BzJCIrV3QsQmE9Il9fcmVhY3RDb250YWluZXIkIitXdCx1dT0iX19yZWFjdEV2ZW50cyQiK1d0LEVoPSJfX3JlYWN0TGlzdGVuZXJzJCIrV3QsQWg9Il9fcmVhY3RIYW5kbGVzJCIrV3QsTG89Il9fcmVhY3RSZXNvdXJjZXMkIitXdCxObj0iX19yZWFjdE1hcmtlciQiK1d0O2Z1bmN0aW9uIGN1KGUpe2RlbGV0ZSBlW1plXSxkZWxldGUgZVtXZV0sZGVsZXRlIGVbdXVdLGRlbGV0ZSBlW0VoXSxkZWxldGUgZVtBaF19ZnVuY3Rpb24gWWEoZSl7dmFyIHQ9ZVtaZV07aWYodClyZXR1cm4gdDtmb3IodmFyIGE9ZS5wYXJlbnROb2RlO2E7KXtpZih0PWFbQmFdfHxhW1plXSl7aWYoYT10LmFsdGVybmF0ZSx0LmNoaWxkIT09bnVsbHx8YSE9PW51bGwmJmEuY2hpbGQhPT1udWxsKWZvcihlPWxkKGUpO2UhPT1udWxsOyl7aWYoYT1lW1plXSlyZXR1cm4gYTtlPWxkKGUpfXJldHVybiB0fWU9YSxhPWUucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBMYShlKXtpZihlPWVbWmVdfHxlW0JhXSl7dmFyIHQ9ZS50YWc7aWYodD09PTV8fHQ9PT02fHx0PT09MTN8fHQ9PT0yNnx8dD09PTI3fHx0PT09MylyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBPbihlKXt2YXIgdD1lLnRhZztpZih0PT09NXx8dD09PTI2fHx0PT09Mjd8fHQ9PT02KXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihzKDMzKSl9ZnVuY3Rpb24gR2EoZSl7dmFyIHQ9ZVtMb107cmV0dXJuIHR8fCh0PWVbTG9dPXtob2lzdGFibGVTdHlsZXM6bmV3IE1hcCxob2lzdGFibGVTY3JpcHRzOm5ldyBNYXB9KSx0fWZ1bmN0aW9uIEhlKGUpe2VbTm5dPSEwfXZhciBHbz1uZXcgU2V0LFhvPXt9O2Z1bmN0aW9uIGJhKGUsdCl7WGEoZSx0KSxYYShlKyJDYXB0dXJlIix0KX1mdW5jdGlvbiBYYShlLHQpe2ZvcihYb1tlXT10LGU9MDtlPHQubGVuZ3RoO2UrKylHby5hZGQodFtlXSl9dmFyIHhoPVJlZ0V4cCgiXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJCIpLFFvPXt9LGtvPXt9O2Z1bmN0aW9uIHpoKGUpe3JldHVybiBldS5jYWxsKGtvLGUpPyEwOmV1LmNhbGwoUW8sZSk/ITE6eGgudGVzdChlKT9rb1tlXT0hMDooUW9bZV09ITAsITEpfWZ1bmN0aW9uIHFsKGUsdCxhKXtpZih6aCh0KSlpZihhPT09bnVsbCllLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjplLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm47Y2FzZSJib29sZWFuIjp2YXIgbj10LnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZihuIT09ImRhdGEtIiYmbiE9PSJhcmlhLSIpe2UucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn19ZS5zZXRBdHRyaWJ1dGUodCwiIithKX19ZnVuY3Rpb24gamwoZSx0LGEpe2lmKGE9PT1udWxsKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJufWUuc2V0QXR0cmlidXRlKHQsIiIrYSl9fWZ1bmN0aW9uIFV0KGUsdCxhLG4pe2lmKG49PT1udWxsKWUucmVtb3ZlQXR0cmlidXRlKGEpO2Vsc2V7c3dpdGNoKHR5cGVvZiBuKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7cmV0dXJufWUuc2V0QXR0cmlidXRlTlModCxhLCIiK24pfX12YXIgb3UsWm87ZnVuY3Rpb24gUWEoZSl7aWYob3U9PT12b2lkIDApdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goYSl7dmFyIHQ9YS5zdGFjay50cmltKCkubWF0Y2goL1xuKCAqKGF0ICk/KS8pO291PXQmJnRbMV18fCIiLFpvPS0xPGEuc3RhY2suaW5kZXhPZihgCiAgICBhdGApPyIgKDxhbm9ueW1vdXM+KSI6LTE8YS5zdGFjay5pbmRleE9mKCJAIik/IkB1bmtub3duOjA6MCI6IiJ9cmV0dXJuYApgK291K2UrWm99dmFyIHN1PSExO2Z1bmN0aW9uIHJ1KGUsdCl7aWYoIWV8fHN1KXJldHVybiIiO3N1PSEwO3ZhciBhPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIG49e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZih0KXt2YXIgUj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChSLFtdKX1jYXRjaChiKXt2YXIgZz1ifVJlZmxlY3QuY29uc3RydWN0KGUsW10sUil9ZWxzZXt0cnl7Ui5jYWxsKCl9Y2F0Y2goYil7Zz1ifWUuY2FsbChSLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goYil7Zz1ifShSPWUoKSkmJnR5cGVvZiBSLmNhdGNoPT0iZnVuY3Rpb24iJiZSLmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGIpe2lmKGImJmcmJnR5cGVvZiBiLnN0YWNrPT0ic3RyaW5nIilyZXR1cm5bYi5zdGFjayxnLnN0YWNrXX1yZXR1cm5bbnVsbCxudWxsXX19O24uRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lPSJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiO3ZhciBsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobi5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiKTtsJiZsLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIix7dmFsdWU6IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCJ9KTt2YXIgaT1uLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLHU9aVswXSxjPWlbMV07aWYodSYmYyl7dmFyIHI9dS5zcGxpdChgCmApLHA9Yy5zcGxpdChgCmApO2ZvcihsPW49MDtuPHIubGVuZ3RoJiYhcltuXS5pbmNsdWRlcygiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Iik7KW4rKztmb3IoO2w8cC5sZW5ndGgmJiFwW2xdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspbCsrO2lmKG49PT1yLmxlbmd0aHx8bD09PXAubGVuZ3RoKWZvcihuPXIubGVuZ3RoLTEsbD1wLmxlbmd0aC0xOzE8PW4mJjA8PWwmJnJbbl0hPT1wW2xdOylsLS07Zm9yKDsxPD1uJiYwPD1sO24tLSxsLS0paWYocltuXSE9PXBbbF0pe2lmKG4hPT0xfHxsIT09MSlkbyBpZihuLS0sbC0tLDA+bHx8cltuXSE9PXBbbF0pe3ZhciBBPWAKYCtyW25dLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZBLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoQT1BLnJlcGxhY2UoIjxhbm9ueW1vdXM+IixlLmRpc3BsYXlOYW1lKSksQX13aGlsZSgxPD1uJiYwPD1sKTticmVha319fWZpbmFsbHl7c3U9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9YX1yZXR1cm4oYT1lP2UuZGlzcGxheU5hbWV8fGUubmFtZToiIik/UWEoYSk6IiJ9ZnVuY3Rpb24gUmgoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBRYShlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIFFhKCJMYXp5Iik7Y2FzZSAxMzpyZXR1cm4gUWEoIlN1c3BlbnNlIik7Y2FzZSAxOTpyZXR1cm4gUWEoIlN1c3BlbnNlTGlzdCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBydShlLnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIHJ1KGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gcnUoZS50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBRYSgiQWN0aXZpdHkiKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBWbyhlKXt0cnl7dmFyIHQ9IiI7ZG8gdCs9UmgoZSksZT1lLnJldHVybjt3aGlsZShlKTtyZXR1cm4gdH1jYXRjaChhKXtyZXR1cm5gCkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IGArYS5tZXNzYWdlK2AKYCthLnN0YWNrfX1mdW5jdGlvbiBodChlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UiYmlnaW50IjpjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBlO2Nhc2Uib2JqZWN0IjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBLbyhlKXt2YXIgdD1lLnR5cGU7cmV0dXJuKGU9ZS5ub2RlTmFtZSkmJmUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJih0PT09ImNoZWNrYm94Inx8dD09PSJyYWRpbyIpfWZ1bmN0aW9uIERoKGUpe3ZhciB0PUtvKGUpPyJjaGVja2VkIjoidmFsdWUiLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxuPSIiK2VbdF07aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJnR5cGVvZiBhPCJ1IiYmdHlwZW9mIGEuZ2V0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYS5zZXQ9PSJmdW5jdGlvbiIpe3ZhciBsPWEuZ2V0LGk9YS5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24odSl7bj0iIit1LGkuY2FsbCh0aGlzLHUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6YS5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldFZhbHVlOmZ1bmN0aW9uKHUpe249IiIrdX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19ZnVuY3Rpb24gSGwoZSl7ZS5fdmFsdWVUcmFja2VyfHwoZS5fdmFsdWVUcmFja2VyPURoKGUpKX1mdW5jdGlvbiBKbyhlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLl92YWx1ZVRyYWNrZXI7aWYoIXQpcmV0dXJuITA7dmFyIGE9dC5nZXRWYWx1ZSgpLG49IiI7cmV0dXJuIGUmJihuPUtvKGUpP2UuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIjplLnZhbHVlKSxlPW4sZSE9PWE/KHQuc2V0VmFsdWUoZSksITApOiExfWZ1bmN0aW9uIEJsKGUpe2lmKGU9ZXx8KHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6dm9pZCAwKSx0eXBlb2YgZT4idSIpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaHtyZXR1cm4gZS5ib2R5fX12YXIgTmg9L1tcbiJcXF0vZztmdW5jdGlvbiBtdChlKXtyZXR1cm4gZS5yZXBsYWNlKE5oLGZ1bmN0aW9uKHQpe3JldHVybiJcXCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiICJ9KX1mdW5jdGlvbiBmdShlLHQsYSxuLGwsaSx1LGMpe2UubmFtZT0iIix1IT1udWxsJiZ0eXBlb2YgdSE9ImZ1bmN0aW9uIiYmdHlwZW9mIHUhPSJzeW1ib2wiJiZ0eXBlb2YgdSE9ImJvb2xlYW4iP2UudHlwZT11OmUucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksdCE9bnVsbD91PT09Im51bWJlciI/KHQ9PT0wJiZlLnZhbHVlPT09IiJ8fGUudmFsdWUhPXQpJiYoZS52YWx1ZT0iIitodCh0KSk6ZS52YWx1ZSE9PSIiK2h0KHQpJiYoZS52YWx1ZT0iIitodCh0KSk6dSE9PSJzdWJtaXQiJiZ1IT09InJlc2V0Inx8ZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksdCE9bnVsbD9kdShlLHUsaHQodCkpOmEhPW51bGw/ZHUoZSx1LGh0KGEpKTpuIT1udWxsJiZlLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSxsPT1udWxsJiZpIT1udWxsJiYoZS5kZWZhdWx0Q2hlY2tlZD0hIWkpLGwhPW51bGwmJihlLmNoZWNrZWQ9bCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIiksYyE9bnVsbCYmdHlwZW9mIGMhPSJmdW5jdGlvbiImJnR5cGVvZiBjIT0ic3ltYm9sIiYmdHlwZW9mIGMhPSJib29sZWFuIj9lLm5hbWU9IiIraHQoYyk6ZS5yZW1vdmVBdHRyaWJ1dGUoIm5hbWUiKX1mdW5jdGlvbiAkbyhlLHQsYSxuLGwsaSx1LGMpe2lmKGkhPW51bGwmJnR5cGVvZiBpIT0iZnVuY3Rpb24iJiZ0eXBlb2YgaSE9InN5bWJvbCImJnR5cGVvZiBpIT0iYm9vbGVhbiImJihlLnR5cGU9aSksdCE9bnVsbHx8YSE9bnVsbCl7aWYoIShpIT09InN1Ym1pdCImJmkhPT0icmVzZXQifHx0IT1udWxsKSlyZXR1cm47YT1hIT1udWxsPyIiK2h0KGEpOiIiLHQ9dCE9bnVsbD8iIitodCh0KTphLGN8fHQ9PT1lLnZhbHVlfHwoZS52YWx1ZT10KSxlLmRlZmF1bHRWYWx1ZT10fW49bj8/bCxuPXR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCImJiEhbixlLmNoZWNrZWQ9Yz9lLmNoZWNrZWQ6ISFuLGUuZGVmYXVsdENoZWNrZWQ9ISFuLHUhPW51bGwmJnR5cGVvZiB1IT0iZnVuY3Rpb24iJiZ0eXBlb2YgdSE9InN5bWJvbCImJnR5cGVvZiB1IT0iYm9vbGVhbiImJihlLm5hbWU9dSl9ZnVuY3Rpb24gZHUoZSx0LGEpe3Q9PT0ibnVtYmVyIiYmQmwoZS5vd25lckRvY3VtZW50KT09PWV8fGUuZGVmYXVsdFZhbHVlPT09IiIrYXx8KGUuZGVmYXVsdFZhbHVlPSIiK2EpfWZ1bmN0aW9uIGthKGUsdCxhLG4pe2lmKGU9ZS5vcHRpb25zLHQpe3Q9e307Zm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspdFsiJCIrYVtsXV09ITA7Zm9yKGE9MDthPGUubGVuZ3RoO2ErKylsPXQuaGFzT3duUHJvcGVydHkoIiQiK2VbYV0udmFsdWUpLGVbYV0uc2VsZWN0ZWQhPT1sJiYoZVthXS5zZWxlY3RlZD1sKSxsJiZuJiYoZVthXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKGE9IiIraHQoYSksdD1udWxsLGw9MDtsPGUubGVuZ3RoO2wrKyl7aWYoZVtsXS52YWx1ZT09PWEpe2VbbF0uc2VsZWN0ZWQ9ITAsbiYmKGVbbF0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59dCE9PW51bGx8fGVbbF0uZGlzYWJsZWR8fCh0PWVbbF0pfXQhPT1udWxsJiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIFdvKGUsdCxhKXtpZih0IT1udWxsJiYodD0iIitodCh0KSx0IT09ZS52YWx1ZSYmKGUudmFsdWU9dCksYT09bnVsbCkpe2UuZGVmYXVsdFZhbHVlIT09dCYmKGUuZGVmYXVsdFZhbHVlPXQpO3JldHVybn1lLmRlZmF1bHRWYWx1ZT1hIT1udWxsPyIiK2h0KGEpOiIifWZ1bmN0aW9uIEZvKGUsdCxhLG4pe2lmKHQ9PW51bGwpe2lmKG4hPW51bGwpe2lmKGEhPW51bGwpdGhyb3cgRXJyb3Iocyg5MikpO2lmKGplKG4pKXtpZigxPG4ubGVuZ3RoKXRocm93IEVycm9yKHMoOTMpKTtuPW5bMF19YT1ufWE9PW51bGwmJihhPSIiKSx0PWF9YT1odCh0KSxlLmRlZmF1bHRWYWx1ZT1hLG49ZS50ZXh0Q29udGVudCxuPT09YSYmbiE9PSIiJiZuIT09bnVsbCYmKGUudmFsdWU9bil9ZnVuY3Rpb24gWmEoZSx0KXtpZih0KXt2YXIgYT1lLmZpcnN0Q2hpbGQ7aWYoYSYmYT09PWUubGFzdENoaWxkJiZhLm5vZGVUeXBlPT09Myl7YS5ub2RlVmFsdWU9dDtyZXR1cm59fWUudGV4dENvbnRlbnQ9dH12YXIgT2g9bmV3IFNldCgiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgYXNwZWN0UmF0aW8gYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVdpZHRoIGJveEZsZXggYm94RmxleEdyb3VwIGJveE9yZGluYWxHcm91cCBjb2x1bW5Db3VudCBjb2x1bW5zIGZsZXggZmxleEdyb3cgZmxleFBvc2l0aXZlIGZsZXhTaHJpbmsgZmxleE5lZ2F0aXZlIGZsZXhPcmRlciBncmlkQXJlYSBncmlkUm93IGdyaWRSb3dFbmQgZ3JpZFJvd1NwYW4gZ3JpZFJvd1N0YXJ0IGdyaWRDb2x1bW4gZ3JpZENvbHVtbkVuZCBncmlkQ29sdW1uU3BhbiBncmlkQ29sdW1uU3RhcnQgZm9udFdlaWdodCBsaW5lQ2xhbXAgbGluZUhlaWdodCBvcGFjaXR5IG9yZGVyIG9ycGhhbnMgc2NhbGUgdGFiU2l6ZSB3aWRvd3MgekluZGV4IHpvb20gZmlsbE9wYWNpdHkgZmxvb2RPcGFjaXR5IHN0b3BPcGFjaXR5IHN0cm9rZURhc2hhcnJheSBzdHJva2VEYXNob2Zmc2V0IHN0cm9rZU1pdGVybGltaXQgc3Ryb2tlT3BhY2l0eSBzdHJva2VXaWR0aCBNb3pBbmltYXRpb25JdGVyYXRpb25Db3VudCBNb3pCb3hGbGV4IE1vekJveEZsZXhHcm91cCBNb3pMaW5lQ2xhbXAgbXNBbmltYXRpb25JdGVyYXRpb25Db3VudCBtc0ZsZXggbXNab29tIG1zRmxleEdyb3cgbXNGbGV4TmVnYXRpdmUgbXNGbGV4T3JkZXIgbXNGbGV4UG9zaXRpdmUgbXNGbGV4U2hyaW5rIG1zR3JpZENvbHVtbiBtc0dyaWRDb2x1bW5TcGFuIG1zR3JpZFJvdyBtc0dyaWRSb3dTcGFuIFdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IFdlYmtpdEJveEZsZXggV2ViS2l0Qm94RmxleEdyb3VwIFdlYmtpdEJveE9yZGluYWxHcm91cCBXZWJraXRDb2x1bW5Db3VudCBXZWJraXRDb2x1bW5zIFdlYmtpdEZsZXggV2Via2l0RmxleEdyb3cgV2Via2l0RmxleFBvc2l0aXZlIFdlYmtpdEZsZXhTaHJpbmsgV2Via2l0TGluZUNsYW1wIi5zcGxpdCgiICIpKTtmdW5jdGlvbiBQbyhlLHQsYSl7dmFyIG49dC5pbmRleE9mKCItLSIpPT09MDthPT1udWxsfHx0eXBlb2YgYT09ImJvb2xlYW4ifHxhPT09IiI/bj9lLnNldFByb3BlcnR5KHQsIiIpOnQ9PT0iZmxvYXQiP2UuY3NzRmxvYXQ9IiI6ZVt0XT0iIjpuP2Uuc2V0UHJvcGVydHkodCxhKTp0eXBlb2YgYSE9Im51bWJlciJ8fGE9PT0wfHxPaC5oYXModCk/dD09PSJmbG9hdCI/ZS5jc3NGbG9hdD1hOmVbdF09KCIiK2EpLnRyaW0oKTplW3RdPWErInB4In1mdW5jdGlvbiBJbyhlLHQsYSl7aWYodCE9bnVsbCYmdHlwZW9mIHQhPSJvYmplY3QiKXRocm93IEVycm9yKHMoNjIpKTtpZihlPWUuc3R5bGUsYSE9bnVsbCl7Zm9yKHZhciBuIGluIGEpIWEuaGFzT3duUHJvcGVydHkobil8fHQhPW51bGwmJnQuaGFzT3duUHJvcGVydHkobil8fChuLmluZGV4T2YoIi0tIik9PT0wP2Uuc2V0UHJvcGVydHkobiwiIik6bj09PSJmbG9hdCI/ZS5jc3NGbG9hdD0iIjplW25dPSIiKTtmb3IodmFyIGwgaW4gdCluPXRbbF0sdC5oYXNPd25Qcm9wZXJ0eShsKSYmYVtsXSE9PW4mJlBvKGUsbCxuKX1lbHNlIGZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJlBvKGUsaSx0W2ldKX1mdW5jdGlvbiBodShlKXtpZihlLmluZGV4T2YoIi0iKT09PS0xKXJldHVybiExO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBNaD1uZXcgTWFwKFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdLFsiY3Jvc3NPcmlnaW4iLCJjcm9zc29yaWdpbiJdLFsiYWNjZW50SGVpZ2h0IiwiYWNjZW50LWhlaWdodCJdLFsiYWxpZ25tZW50QmFzZWxpbmUiLCJhbGlnbm1lbnQtYmFzZWxpbmUiXSxbImFyYWJpY0Zvcm0iLCJhcmFiaWMtZm9ybSJdLFsiYmFzZWxpbmVTaGlmdCIsImJhc2VsaW5lLXNoaWZ0Il0sWyJjYXBIZWlnaHQiLCJjYXAtaGVpZ2h0Il0sWyJjbGlwUGF0aCIsImNsaXAtcGF0aCJdLFsiY2xpcFJ1bGUiLCJjbGlwLXJ1bGUiXSxbImNvbG9ySW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24iXSxbImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMiLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiXSxbImNvbG9yUHJvZmlsZSIsImNvbG9yLXByb2ZpbGUiXSxbImNvbG9yUmVuZGVyaW5nIiwiY29sb3ItcmVuZGVyaW5nIl0sWyJkb21pbmFudEJhc2VsaW5lIiwiZG9taW5hbnQtYmFzZWxpbmUiXSxbImVuYWJsZUJhY2tncm91bmQiLCJlbmFibGUtYmFja2dyb3VuZCJdLFsiZmlsbE9wYWNpdHkiLCJmaWxsLW9wYWNpdHkiXSxbImZpbGxSdWxlIiwiZmlsbC1ydWxlIl0sWyJmbG9vZENvbG9yIiwiZmxvb2QtY29sb3IiXSxbImZsb29kT3BhY2l0eSIsImZsb29kLW9wYWNpdHkiXSxbImZvbnRGYW1pbHkiLCJmb250LWZhbWlseSJdLFsiZm9udFNpemUiLCJmb250LXNpemUiXSxbImZvbnRTaXplQWRqdXN0IiwiZm9udC1zaXplLWFkanVzdCJdLFsiZm9udFN0cmV0Y2giLCJmb250LXN0cmV0Y2giXSxbImZvbnRTdHlsZSIsImZvbnQtc3R5bGUiXSxbImZvbnRWYXJpYW50IiwiZm9udC12YXJpYW50Il0sWyJmb250V2VpZ2h0IiwiZm9udC13ZWlnaHQiXSxbImdseXBoTmFtZSIsImdseXBoLW5hbWUiXSxbImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCJdLFsiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsIiwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwiXSxbImhvcml6QWR2WCIsImhvcml6LWFkdi14Il0sWyJob3Jpek9yaWdpblgiLCJob3Jpei1vcmlnaW4teCJdLFsiaW1hZ2VSZW5kZXJpbmciLCJpbWFnZS1yZW5kZXJpbmciXSxbImxldHRlclNwYWNpbmciLCJsZXR0ZXItc3BhY2luZyJdLFsibGlnaHRpbmdDb2xvciIsImxpZ2h0aW5nLWNvbG9yIl0sWyJtYXJrZXJFbmQiLCJtYXJrZXItZW5kIl0sWyJtYXJrZXJNaWQiLCJtYXJrZXItbWlkIl0sWyJtYXJrZXJTdGFydCIsIm1hcmtlci1zdGFydCJdLFsib3ZlcmxpbmVQb3NpdGlvbiIsIm92ZXJsaW5lLXBvc2l0aW9uIl0sWyJvdmVybGluZVRoaWNrbmVzcyIsIm92ZXJsaW5lLXRoaWNrbmVzcyJdLFsicGFpbnRPcmRlciIsInBhaW50LW9yZGVyIl0sWyJwYW5vc2UtMSIsInBhbm9zZS0xIl0sWyJwb2ludGVyRXZlbnRzIiwicG9pbnRlci1ldmVudHMiXSxbInJlbmRlcmluZ0ludGVudCIsInJlbmRlcmluZy1pbnRlbnQiXSxbInNoYXBlUmVuZGVyaW5nIiwic2hhcGUtcmVuZGVyaW5nIl0sWyJzdG9wQ29sb3IiLCJzdG9wLWNvbG9yIl0sWyJzdG9wT3BhY2l0eSIsInN0b3Atb3BhY2l0eSJdLFsic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwic3RyaWtldGhyb3VnaC1wb3NpdGlvbiJdLFsic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIl0sWyJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2UtZGFzaGFycmF5Il0sWyJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hvZmZzZXQiXSxbInN0cm9rZUxpbmVjYXAiLCJzdHJva2UtbGluZWNhcCJdLFsic3Ryb2tlTGluZWpvaW4iLCJzdHJva2UtbGluZWpvaW4iXSxbInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2UtbWl0ZXJsaW1pdCJdLFsic3Ryb2tlT3BhY2l0eSIsInN0cm9rZS1vcGFjaXR5Il0sWyJzdHJva2VXaWR0aCIsInN0cm9rZS13aWR0aCJdLFsidGV4dEFuY2hvciIsInRleHQtYW5jaG9yIl0sWyJ0ZXh0RGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbiJdLFsidGV4dFJlbmRlcmluZyIsInRleHQtcmVuZGVyaW5nIl0sWyJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2Zvcm0tb3JpZ2luIl0sWyJ1bmRlcmxpbmVQb3NpdGlvbiIsInVuZGVybGluZS1wb3NpdGlvbiJdLFsidW5kZXJsaW5lVGhpY2tuZXNzIiwidW5kZXJsaW5lLXRoaWNrbmVzcyJdLFsidW5pY29kZUJpZGkiLCJ1bmljb2RlLWJpZGkiXSxbInVuaWNvZGVSYW5nZSIsInVuaWNvZGUtcmFuZ2UiXSxbInVuaXRzUGVyRW0iLCJ1bml0cy1wZXItZW0iXSxbInZBbHBoYWJldGljIiwidi1hbHBoYWJldGljIl0sWyJ2SGFuZ2luZyIsInYtaGFuZ2luZyJdLFsidklkZW9ncmFwaGljIiwidi1pZGVvZ3JhcGhpYyJdLFsidk1hdGhlbWF0aWNhbCIsInYtbWF0aGVtYXRpY2FsIl0sWyJ2ZWN0b3JFZmZlY3QiLCJ2ZWN0b3ItZWZmZWN0Il0sWyJ2ZXJ0QWR2WSIsInZlcnQtYWR2LXkiXSxbInZlcnRPcmlnaW5YIiwidmVydC1vcmlnaW4teCJdLFsidmVydE9yaWdpblkiLCJ2ZXJ0LW9yaWdpbi15Il0sWyJ3b3JkU3BhY2luZyIsIndvcmQtc3BhY2luZyJdLFsid3JpdGluZ01vZGUiLCJ3cml0aW5nLW1vZGUiXSxbInhtbG5zWGxpbmsiLCJ4bWxuczp4bGluayJdLFsieEhlaWdodCIsIngtaGVpZ2h0Il1dKSx3aD0vXltcdTAwMDAtXHUwMDFGIF0qaltcclxuXHRdKmFbXHJcblx0XSp2W1xyXG5cdF0qYVtcclxuXHRdKnNbXHJcblx0XSpjW1xyXG5cdF0qcltcclxuXHRdKmlbXHJcblx0XSpwW1xyXG5cdF0qdFtcclxuXHRdKjovaTtmdW5jdGlvbiBZbChlKXtyZXR1cm4gd2gudGVzdCgiIitlKT8iamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKSI6ZX12YXIgbXU9bnVsbDtmdW5jdGlvbiBfdShlKXtyZXR1cm4gZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3csZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksZS5ub2RlVHlwZT09PTM/ZS5wYXJlbnROb2RlOmV9dmFyIFZhPW51bGwsS2E9bnVsbDtmdW5jdGlvbiBlcyhlKXt2YXIgdD1MYShlKTtpZih0JiYoZT10LnN0YXRlTm9kZSkpe3ZhciBhPWVbV2VdfHxudWxsO2U6c3dpdGNoKGU9dC5zdGF0ZU5vZGUsdC50eXBlKXtjYXNlImlucHV0IjppZihmdShlLGEudmFsdWUsYS5kZWZhdWx0VmFsdWUsYS5kZWZhdWx0VmFsdWUsYS5jaGVja2VkLGEuZGVmYXVsdENoZWNrZWQsYS50eXBlLGEubmFtZSksdD1hLm5hbWUsYS50eXBlPT09InJhZGlvIiYmdCE9bnVsbCl7Zm9yKGE9ZTthLnBhcmVudE5vZGU7KWE9YS5wYXJlbnROb2RlO2ZvcihhPWEucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJyttdCgiIit0KSsnIl1bdHlwZT0icmFkaW8iXScpLHQ9MDt0PGEubGVuZ3RoO3QrKyl7dmFyIG49YVt0XTtpZihuIT09ZSYmbi5mb3JtPT09ZS5mb3JtKXt2YXIgbD1uW1dlXXx8bnVsbDtpZighbCl0aHJvdyBFcnJvcihzKDkwKSk7ZnUobixsLnZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuY2hlY2tlZCxsLmRlZmF1bHRDaGVja2VkLGwudHlwZSxsLm5hbWUpfX1mb3IodD0wO3Q8YS5sZW5ndGg7dCsrKW49YVt0XSxuLmZvcm09PT1lLmZvcm0mJkpvKG4pfWJyZWFrIGU7Y2FzZSJ0ZXh0YXJlYSI6V28oZSxhLnZhbHVlLGEuZGVmYXVsdFZhbHVlKTticmVhayBlO2Nhc2Uic2VsZWN0Ijp0PWEudmFsdWUsdCE9bnVsbCYma2EoZSwhIWEubXVsdGlwbGUsdCwhMSl9fX12YXIgdnU9ITE7ZnVuY3Rpb24gdHMoZSx0LGEpe2lmKHZ1KXJldHVybiBlKHQsYSk7dnU9ITA7dHJ5e3ZhciBuPWUodCk7cmV0dXJuIG59ZmluYWxseXtpZih2dT0hMSwoVmEhPT1udWxsfHxLYSE9PW51bGwpJiYoQWkoKSxWYSYmKHQ9VmEsZT1LYSxLYT1WYT1udWxsLGVzKHQpLGUpKSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKWVzKGVbdF0pfX1mdW5jdGlvbiBNbihlLHQpe3ZhciBhPWUuc3RhdGVOb2RlO2lmKGE9PT1udWxsKXJldHVybiBudWxsO3ZhciBuPWFbV2VdfHxudWxsO2lmKG49PT1udWxsKXJldHVybiBudWxsO2E9blt0XTtlOnN3aXRjaCh0KXtjYXNlIm9uQ2xpY2siOmNhc2Uib25DbGlja0NhcHR1cmUiOmNhc2Uib25Eb3VibGVDbGljayI6Y2FzZSJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRG93biI6Y2FzZSJvbk1vdXNlRG93bkNhcHR1cmUiOmNhc2Uib25Nb3VzZU1vdmUiOmNhc2Uib25Nb3VzZU1vdmVDYXB0dXJlIjpjYXNlIm9uTW91c2VVcCI6Y2FzZSJvbk1vdXNlVXBDYXB0dXJlIjpjYXNlIm9uTW91c2VFbnRlciI6KG49IW4uZGlzYWJsZWQpfHwoZT1lLnR5cGUsbj0hKGU9PT0iYnV0dG9uInx8ZT09PSJpbnB1dCJ8fGU9PT0ic2VsZWN0Inx8ZT09PSJ0ZXh0YXJlYSIpKSxlPSFuO2JyZWFrIGU7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYoYSYmdHlwZW9mIGEhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IocygyMzEsdCx0eXBlb2YgYSkpO3JldHVybiBhfXZhciBDdD0hKHR5cGVvZiB3aW5kb3c+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50PiJ1Inx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50PiJ1IikseXU9ITE7aWYoQ3QpdHJ5e3ZhciB3bj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkod24sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt5dT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsd24sd24pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0Iix3bix3bil9Y2F0Y2h7eXU9ITF9dmFyIEZ0PW51bGwscHU9bnVsbCxMbD1udWxsO2Z1bmN0aW9uIGFzKCl7aWYoTGwpcmV0dXJuIExsO3ZhciBlLHQ9cHUsYT10Lmxlbmd0aCxuLGw9InZhbHVlImluIEZ0P0Z0LnZhbHVlOkZ0LnRleHRDb250ZW50LGk9bC5sZW5ndGg7Zm9yKGU9MDtlPGEmJnRbZV09PT1sW2VdO2UrKyk7dmFyIHU9YS1lO2ZvcihuPTE7bjw9dSYmdFthLW5dPT09bFtpLW5dO24rKyk7cmV0dXJuIExsPWwuc2xpY2UoZSwxPG4/MS1uOnZvaWQgMCl9ZnVuY3Rpb24gR2woZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPyhlPWUuY2hhckNvZGUsZT09PTAmJnQ9PT0xMyYmKGU9MTMpKTplPXQsZT09PTEwJiYoZT0xMyksMzI8PWV8fGU9PT0xMz9lOjB9ZnVuY3Rpb24gWGwoKXtyZXR1cm4hMH1mdW5jdGlvbiBucygpe3JldHVybiExfWZ1bmN0aW9uIEZlKGUpe2Z1bmN0aW9uIHQoYSxuLGwsaSx1KXt0aGlzLl9yZWFjdE5hbWU9YSx0aGlzLl90YXJnZXRJbnN0PWwsdGhpcy50eXBlPW4sdGhpcy5uYXRpdmVFdmVudD1pLHRoaXMudGFyZ2V0PXUsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShjKSYmKGE9ZVtjXSx0aGlzW2NdPWE/YShpKTppW2NdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KGkuZGVmYXVsdFByZXZlbnRlZCE9bnVsbD9pLmRlZmF1bHRQcmV2ZW50ZWQ6aS5yZXR1cm5WYWx1ZT09PSExKT9YbDpucyx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPW5zLHRoaXN9cmV0dXJuIE0odC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOnR5cGVvZiBhLnJldHVyblZhbHVlIT0idW5rbm93biImJihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1YbCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6dHlwZW9mIGEuY2FuY2VsQnViYmxlIT0idW5rbm93biImJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1YbCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpYbH0pLHR9dmFyIFNhPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LFFsPUZlKFNhKSxVbj1NKHt9LFNhLHt2aWV3OjAsZGV0YWlsOjB9KSxVaD1GZShVbiksZ3UsYnUsQ24sa2w9TSh7fSxVbix7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpUdSxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWxhdGVkVGFyZ2V0PT09dm9pZCAwP2UuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudDplLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRYImluIGU/ZS5tb3ZlbWVudFg6KGUhPT1DbiYmKENuJiZlLnR5cGU9PT0ibW91c2Vtb3ZlIj8oZ3U9ZS5zY3JlZW5YLUNuLnNjcmVlblgsYnU9ZS5zY3JlZW5ZLUNuLnNjcmVlblkpOmJ1PWd1PTAsQ249ZSksZ3UpfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuIm1vdmVtZW50WSJpbiBlP2UubW92ZW1lbnRZOmJ1fX0pLGxzPUZlKGtsKSxDaD1NKHt9LGtsLHtkYXRhVHJhbnNmZXI6MH0pLHFoPUZlKENoKSxqaD1NKHt9LFVuLHtyZWxhdGVkVGFyZ2V0OjB9KSxTdT1GZShqaCksSGg9TSh7fSxTYSx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksQmg9RmUoSGgpLFloPU0oe30sU2Ese2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksTGg9RmUoWWgpLEdoPU0oe30sU2Ese2RhdGE6MH0pLGlzPUZlKEdoKSxYaD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sUWg9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxraD17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIFpoKGUpe3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIHQuZ2V0TW9kaWZpZXJTdGF0ZT90LmdldE1vZGlmaWVyU3RhdGUoZSk6KGU9a2hbZV0pPyEhdFtlXTohMX1mdW5jdGlvbiBUdSgpe3JldHVybiBaaH12YXIgVmg9TSh7fSxVbix7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgdD1YaFtlLmtleV18fGUua2V5O2lmKHQhPT0iVW5pZGVudGlmaWVkIilyZXR1cm4gdH1yZXR1cm4gZS50eXBlPT09ImtleXByZXNzIj8oZT1HbChlKSxlPT09MTM/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTplLnR5cGU9PT0ia2V5ZG93biJ8fGUudHlwZT09PSJrZXl1cCI/UWhbZS5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOlR1LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0ia2V5cHJlc3MiP0dsKGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJrZXlkb3duInx8ZS50eXBlPT09ImtleXVwIj9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJrZXlwcmVzcyI/R2woZSk6ZS50eXBlPT09ImtleWRvd24ifHxlLnR5cGU9PT0ia2V5dXAiP2Uua2V5Q29kZTowfX0pLEtoPUZlKFZoKSxKaD1NKHt9LGtsLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLHVzPUZlKEpoKSwkaD1NKHt9LFVuLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6VHV9KSxXaD1GZSgkaCksRmg9TSh7fSxTYSx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxQaD1GZShGaCksSWg9TSh7fSxrbCx7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVgiaW4gZT9lLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWSJpbiBlP2UuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBlPy1lLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLGVtPUZlKEloKSx0bT1NKHt9LFNhLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSxhbT1GZSh0bSksbm09WzksMTMsMjcsMzJdLEV1PUN0JiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3cscW49bnVsbDtDdCYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKHFuPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGxtPUN0JiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIXFuLGNzPUN0JiYoIUV1fHxxbiYmODxxbiYmMTE+PXFuKSxvcz0iICIsc3M9ITE7ZnVuY3Rpb24gcnMoZSx0KXtzd2l0Y2goZSl7Y2FzZSJrZXl1cCI6cmV0dXJuIG5tLmluZGV4T2YodC5rZXlDb2RlKSE9PS0xO2Nhc2Uia2V5ZG93biI6cmV0dXJuIHQua2V5Q29kZSE9PTIyOTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gZnMoZSl7cmV0dXJuIGU9ZS5kZXRhaWwsdHlwZW9mIGU9PSJvYmplY3QiJiYiZGF0YSJpbiBlP2UuZGF0YTpudWxsfXZhciBKYT0hMTtmdW5jdGlvbiBpbShlLHQpe3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gZnModCk7Y2FzZSJrZXlwcmVzcyI6cmV0dXJuIHQud2hpY2ghPT0zMj9udWxsOihzcz0hMCxvcyk7Y2FzZSJ0ZXh0SW5wdXQiOnJldHVybiBlPXQuZGF0YSxlPT09b3MmJnNzP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiB1bShlLHQpe2lmKEphKXJldHVybiBlPT09ImNvbXBvc2l0aW9uZW5kInx8IUV1JiZycyhlLHQpPyhlPWFzKCksTGw9cHU9RnQ9bnVsbCxKYT0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKHQuY3RybEtleXx8dC5hbHRLZXl8fHQubWV0YUtleSl8fHQuY3RybEtleSYmdC5hbHRLZXkpe2lmKHQuY2hhciYmMTx0LmNoYXIubGVuZ3RoKXJldHVybiB0LmNoYXI7aWYodC53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0LndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gY3MmJnQubG9jYWxlIT09ImtvIj9udWxsOnQuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgY209e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIGRzKGUpe3ZhciB0PWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PSJpbnB1dCI/ISFjbVtlLnR5cGVdOnQ9PT0idGV4dGFyZWEifWZ1bmN0aW9uIGhzKGUsdCxhLG4pe1ZhP0thP0thLnB1c2gobik6S2E9W25dOlZhPW4sdD1PaSh0LCJvbkNoYW5nZSIpLDA8dC5sZW5ndGgmJihhPW5ldyBRbCgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsYSxuKSxlLnB1c2goe2V2ZW50OmEsbGlzdGVuZXJzOnR9KSl9dmFyIGpuPW51bGwsSG49bnVsbDtmdW5jdGlvbiBvbShlKXtKZihlLDApfWZ1bmN0aW9uIFpsKGUpe3ZhciB0PU9uKGUpO2lmKEpvKHQpKXJldHVybiBlfWZ1bmN0aW9uIG1zKGUsdCl7aWYoZT09PSJjaGFuZ2UiKXJldHVybiB0fXZhciBfcz0hMTtpZihDdCl7dmFyIEF1O2lmKEN0KXt2YXIgeHU9Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIXh1KXt2YXIgdnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dnMuc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLHh1PXR5cGVvZiB2cy5vbmlucHV0PT0iZnVuY3Rpb24ifUF1PXh1fWVsc2UgQXU9ITE7X3M9QXUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24geXMoKXtqbiYmKGpuLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixwcyksSG49am49bnVsbCl9ZnVuY3Rpb24gcHMoZSl7aWYoZS5wcm9wZXJ0eU5hbWU9PT0idmFsdWUiJiZabChIbikpe3ZhciB0PVtdO2hzKHQsSG4sZSxfdShlKSksdHMob20sdCl9fWZ1bmN0aW9uIHNtKGUsdCxhKXtlPT09ImZvY3VzaW4iPyh5cygpLGpuPXQsSG49YSxqbi5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIscHMpKTplPT09ImZvY3Vzb3V0IiYmeXMoKX1mdW5jdGlvbiBybShlKXtpZihlPT09InNlbGVjdGlvbmNoYW5nZSJ8fGU9PT0ia2V5dXAifHxlPT09ImtleWRvd24iKXJldHVybiBabChIbil9ZnVuY3Rpb24gZm0oZSx0KXtpZihlPT09ImNsaWNrIilyZXR1cm4gWmwodCl9ZnVuY3Rpb24gZG0oZSx0KXtpZihlPT09ImlucHV0Inx8ZT09PSJjaGFuZ2UiKXJldHVybiBabCh0KX1mdW5jdGlvbiBobShlLHQpe3JldHVybiBlPT09dCYmKGUhPT0wfHwxL2U9PT0xL3QpfHxlIT09ZSYmdCE9PXR9dmFyIHV0PXR5cGVvZiBPYmplY3QuaXM9PSJmdW5jdGlvbiI/T2JqZWN0LmlzOmhtO2Z1bmN0aW9uIEJuKGUsdCl7aWYodXQoZSx0KSlyZXR1cm4hMDtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXJldHVybiExO3ZhciBhPU9iamVjdC5rZXlzKGUpLG49T2JqZWN0LmtleXModCk7aWYoYS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3Iobj0wO248YS5sZW5ndGg7bisrKXt2YXIgbD1hW25dO2lmKCFldS5jYWxsKHQsbCl8fCF1dChlW2xdLHRbbF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGdzKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBicyhlLHQpe3ZhciBhPWdzKGUpO2U9MDtmb3IodmFyIG47YTspe2lmKGEubm9kZVR5cGU9PT0zKXtpZihuPWUrYS50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmbj49dClyZXR1cm57bm9kZTphLG9mZnNldDp0LWV9O2U9bn1lOntmb3IoO2E7KXtpZihhLm5leHRTaWJsaW5nKXthPWEubmV4dFNpYmxpbmc7YnJlYWsgZX1hPWEucGFyZW50Tm9kZX1hPXZvaWQgMH1hPWdzKGEpfX1mdW5jdGlvbiBTcyhlLHQpe3JldHVybiBlJiZ0P2U9PT10PyEwOmUmJmUubm9kZVR5cGU9PT0zPyExOnQmJnQubm9kZVR5cGU9PT0zP1NzKGUsdC5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gZT9lLmNvbnRhaW5zKHQpOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSYxNik6ITE6ITF9ZnVuY3Rpb24gVHMoZSl7ZT1lIT1udWxsJiZlLm93bmVyRG9jdW1lbnQhPW51bGwmJmUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyE9bnVsbD9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6d2luZG93O2Zvcih2YXIgdD1CbChlLmRvY3VtZW50KTt0IGluc3RhbmNlb2YgZS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYT10eXBlb2YgdC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY9PSJzdHJpbmcifWNhdGNoe2E9ITF9aWYoYSllPXQuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO3Q9QmwoZS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24genUoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYodD09PSJpbnB1dCImJihlLnR5cGU9PT0idGV4dCJ8fGUudHlwZT09PSJzZWFyY2gifHxlLnR5cGU9PT0idGVsInx8ZS50eXBlPT09InVybCJ8fGUudHlwZT09PSJwYXNzd29yZCIpfHx0PT09InRleHRhcmVhInx8ZS5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpfXZhciBtbT1DdCYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSwkYT1udWxsLFJ1PW51bGwsWW49bnVsbCxEdT0hMTtmdW5jdGlvbiBFcyhlLHQsYSl7dmFyIG49YS53aW5kb3c9PT1hP2EuZG9jdW1lbnQ6YS5ub2RlVHlwZT09PTk/YTphLm93bmVyRG9jdW1lbnQ7RHV8fCRhPT1udWxsfHwkYSE9PUJsKG4pfHwobj0kYSwic2VsZWN0aW9uU3RhcnQiaW4gbiYmenUobik/bj17c3RhcnQ6bi5zZWxlY3Rpb25TdGFydCxlbmQ6bi5zZWxlY3Rpb25FbmR9OihuPShuLm93bmVyRG9jdW1lbnQmJm4ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxuPXthbmNob3JOb2RlOm4uYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6bi5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOm4uZm9jdXNOb2RlLGZvY3VzT2Zmc2V0Om4uZm9jdXNPZmZzZXR9KSxZbiYmQm4oWW4sbil8fChZbj1uLG49T2koUnUsIm9uU2VsZWN0IiksMDxuLmxlbmd0aCYmKHQ9bmV3IFFsKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCx0LGEpLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6bn0pLHQudGFyZ2V0PSRhKSkpfWZ1bmN0aW9uIFRhKGUsdCl7dmFyIGE9e307cmV0dXJuIGFbZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksYVsiV2Via2l0IitlXT0id2Via2l0Iit0LGFbIk1veiIrZV09Im1veiIrdCxhfXZhciBXYT17YW5pbWF0aW9uZW5kOlRhKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246VGEoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OlRhKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25ydW46VGEoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uUnVuIiksdHJhbnNpdGlvbnN0YXJ0OlRhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblN0YXJ0IiksdHJhbnNpdGlvbmNhbmNlbDpUYSgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25DYW5jZWwiKSx0cmFuc2l0aW9uZW5kOlRhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxOdT17fSxBcz17fTtDdCYmKEFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgV2EuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgV2EuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgV2EuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIFdhLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gRWEoZSl7aWYoTnVbZV0pcmV0dXJuIE51W2VdO2lmKCFXYVtlXSlyZXR1cm4gZTt2YXIgdD1XYVtlXSxhO2ZvcihhIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShhKSYmYSBpbiBBcylyZXR1cm4gTnVbZV09dFthXTtyZXR1cm4gZX12YXIgeHM9RWEoImFuaW1hdGlvbmVuZCIpLHpzPUVhKCJhbmltYXRpb25pdGVyYXRpb24iKSxScz1FYSgiYW5pbWF0aW9uc3RhcnQiKSxfbT1FYSgidHJhbnNpdGlvbnJ1biIpLHZtPUVhKCJ0cmFuc2l0aW9uc3RhcnQiKSx5bT1FYSgidHJhbnNpdGlvbmNhbmNlbCIpLERzPUVhKCJ0cmFuc2l0aW9uZW5kIiksTnM9bmV3IE1hcCxPdT0iYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO091LnB1c2goInNjcm9sbEVuZCIpO2Z1bmN0aW9uIEV0KGUsdCl7TnMuc2V0KGUsdCksYmEodCxbZV0pfXZhciBPcz1uZXcgV2Vha01hcDtmdW5jdGlvbiBfdChlLHQpe2lmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwpe3ZhciBhPU9zLmdldChlKTtyZXR1cm4gYSE9PXZvaWQgMD9hOih0PXt2YWx1ZTplLHNvdXJjZTp0LHN0YWNrOlZvKHQpfSxPcy5zZXQoZSx0KSx0KX1yZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazpWbyh0KX19dmFyIHZ0PVtdLEZhPTAsTXU9MDtmdW5jdGlvbiBWbCgpe2Zvcih2YXIgZT1GYSx0PU11PUZhPTA7dDxlOyl7dmFyIGE9dnRbdF07dnRbdCsrXT1udWxsO3ZhciBuPXZ0W3RdO3Z0W3QrK109bnVsbDt2YXIgbD12dFt0XTt2dFt0KytdPW51bGw7dmFyIGk9dnRbdF07aWYodnRbdCsrXT1udWxsLG4hPT1udWxsJiZsIT09bnVsbCl7dmFyIHU9bi5wZW5kaW5nO3U9PT1udWxsP2wubmV4dD1sOihsLm5leHQ9dS5uZXh0LHUubmV4dD1sKSxuLnBlbmRpbmc9bH1pIT09MCYmTXMoYSxsLGkpfX1mdW5jdGlvbiBLbChlLHQsYSxuKXt2dFtGYSsrXT1lLHZ0W0ZhKytdPXQsdnRbRmErK109YSx2dFtGYSsrXT1uLE11fD1uLGUubGFuZXN8PW4sZT1lLmFsdGVybmF0ZSxlIT09bnVsbCYmKGUubGFuZXN8PW4pfWZ1bmN0aW9uIHd1KGUsdCxhLG4pe3JldHVybiBLbChlLHQsYSxuKSxKbChlKX1mdW5jdGlvbiBQYShlLHQpe3JldHVybiBLbChlLG51bGwsbnVsbCx0KSxKbChlKX1mdW5jdGlvbiBNcyhlLHQsYSl7ZS5sYW5lc3w9YTt2YXIgbj1lLmFsdGVybmF0ZTtuIT09bnVsbCYmKG4ubGFuZXN8PWEpO2Zvcih2YXIgbD0hMSxpPWUucmV0dXJuO2khPT1udWxsOylpLmNoaWxkTGFuZXN8PWEsbj1pLmFsdGVybmF0ZSxuIT09bnVsbCYmKG4uY2hpbGRMYW5lc3w9YSksaS50YWc9PT0yMiYmKGU9aS5zdGF0ZU5vZGUsZT09PW51bGx8fGUuX3Zpc2liaWxpdHkmMXx8KGw9ITApKSxlPWksaT1pLnJldHVybjtyZXR1cm4gZS50YWc9PT0zPyhpPWUuc3RhdGVOb2RlLGwmJnQhPT1udWxsJiYobD0zMS1pdChhKSxlPWkuaGlkZGVuVXBkYXRlcyxuPWVbbF0sbj09PW51bGw/ZVtsXT1bdF06bi5wdXNoKHQpLHQubGFuZT1hfDUzNjg3MDkxMiksaSk6bnVsbH1mdW5jdGlvbiBKbChlKXtpZig1MDxybCl0aHJvdyBybD0wLEJjPW51bGwsRXJyb3IocygxODUpKTtmb3IodmFyIHQ9ZS5yZXR1cm47dCE9PW51bGw7KWU9dCx0PWUucmV0dXJuO3JldHVybiBlLnRhZz09PTM/ZS5zdGF0ZU5vZGU6bnVsbH12YXIgSWE9e307ZnVuY3Rpb24gcG0oZSx0LGEsbil7dGhpcy50YWc9ZSx0aGlzLmtleT1hLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmQ2xlYW51cD10aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPW4sdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIGN0KGUsdCxhLG4pe3JldHVybiBuZXcgcG0oZSx0LGEsbil9ZnVuY3Rpb24gVXUoZSl7cmV0dXJuIGU9ZS5wcm90b3R5cGUsISghZXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gcXQoZSx0KXt2YXIgYT1lLmFsdGVybmF0ZTtyZXR1cm4gYT09PW51bGw/KGE9Y3QoZS50YWcsdCxlLmtleSxlLm1vZGUpLGEuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSxhLnR5cGU9ZS50eXBlLGEuc3RhdGVOb2RlPWUuc3RhdGVOb2RlLGEuYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9YSk6KGEucGVuZGluZ1Byb3BzPXQsYS50eXBlPWUudHlwZSxhLmZsYWdzPTAsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsKSxhLmZsYWdzPWUuZmxhZ3MmNjUwMTE3MTIsYS5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyxhLmxhbmVzPWUubGFuZXMsYS5jaGlsZD1lLmNoaWxkLGEubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsYS5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxhLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdD1lLmRlcGVuZGVuY2llcyxhLmRlcGVuZGVuY2llcz10PT09bnVsbD9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0sYS5zaWJsaW5nPWUuc2libGluZyxhLmluZGV4PWUuaW5kZXgsYS5yZWY9ZS5yZWYsYS5yZWZDbGVhbnVwPWUucmVmQ2xlYW51cCxhfWZ1bmN0aW9uIHdzKGUsdCl7ZS5mbGFncyY9NjUwMTE3MTQ7dmFyIGE9ZS5hbHRlcm5hdGU7cmV0dXJuIGE9PT1udWxsPyhlLmNoaWxkTGFuZXM9MCxlLmxhbmVzPXQsZS5jaGlsZD1udWxsLGUuc3VidHJlZUZsYWdzPTAsZS5tZW1vaXplZFByb3BzPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCk6KGUuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMsZS5sYW5lcz1hLmxhbmVzLGUuY2hpbGQ9YS5jaGlsZCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGwsZS5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxlLnR5cGU9YS50eXBlLHQ9YS5kZXBlbmRlbmNpZXMsZS5kZXBlbmRlbmNpZXM9dD09PW51bGw/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9KSxlfWZ1bmN0aW9uICRsKGUsdCxhLG4sbCxpKXt2YXIgdT0wO2lmKG49ZSx0eXBlb2YgZT09ImZ1bmN0aW9uIilVdShlKSYmKHU9MSk7ZWxzZSBpZih0eXBlb2YgZT09InN0cmluZyIpdT1iXyhlLGEsTC5jdXJyZW50KT8yNjplPT09Imh0bWwifHxlPT09ImhlYWQifHxlPT09ImJvZHkiPzI3OjU7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIHhlOnJldHVybiBlPWN0KDMxLGEsdCxsKSxlLmVsZW1lbnRUeXBlPXhlLGUubGFuZXM9aSxlO2Nhc2UgaGU6cmV0dXJuIEFhKGEuY2hpbGRyZW4sbCxpLHQpO2Nhc2Uga2U6dT04LGx8PTI0O2JyZWFrO2Nhc2UgTmU6cmV0dXJuIGU9Y3QoMTIsYSx0LGx8MiksZS5lbGVtZW50VHlwZT1OZSxlLmxhbmVzPWksZTtjYXNlIGVlOnJldHVybiBlPWN0KDEzLGEsdCxsKSxlLmVsZW1lbnRUeXBlPWVlLGUubGFuZXM9aSxlO2Nhc2UgVGU6cmV0dXJuIGU9Y3QoMTksYSx0LGwpLGUuZWxlbWVudFR5cGU9VGUsZS5sYW5lcz1pLGU7ZGVmYXVsdDppZih0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIHR0OmNhc2UgU2U6dT0xMDticmVhayBlO2Nhc2UgYXQ6dT05O2JyZWFrIGU7Y2FzZSB2ZTp1PTExO2JyZWFrIGU7Y2FzZSBPZTp1PTE0O2JyZWFrIGU7Y2FzZSBXOnU9MTYsbj1udWxsO2JyZWFrIGV9dT0yOSxhPUVycm9yKHMoMTMwLGU9PT1udWxsPyJudWxsIjp0eXBlb2YgZSwiIikpLG49bnVsbH1yZXR1cm4gdD1jdCh1LGEsdCxsKSx0LmVsZW1lbnRUeXBlPWUsdC50eXBlPW4sdC5sYW5lcz1pLHR9ZnVuY3Rpb24gQWEoZSx0LGEsbil7cmV0dXJuIGU9Y3QoNyxlLG4sdCksZS5sYW5lcz1hLGV9ZnVuY3Rpb24gQ3UoZSx0LGEpe3JldHVybiBlPWN0KDYsZSxudWxsLHQpLGUubGFuZXM9YSxlfWZ1bmN0aW9uIHF1KGUsdCxhKXtyZXR1cm4gdD1jdCg0LGUuY2hpbGRyZW4hPT1udWxsP2UuY2hpbGRyZW46W10sZS5rZXksdCksdC5sYW5lcz1hLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fXZhciBlbj1bXSx0bj0wLFdsPW51bGwsRmw9MCx5dD1bXSxwdD0wLHhhPW51bGwsanQ9MSxIdD0iIjtmdW5jdGlvbiB6YShlLHQpe2VuW3RuKytdPUZsLGVuW3RuKytdPVdsLFdsPWUsRmw9dH1mdW5jdGlvbiBVcyhlLHQsYSl7eXRbcHQrK109anQseXRbcHQrK109SHQseXRbcHQrK109eGEseGE9ZTt2YXIgbj1qdDtlPUh0O3ZhciBsPTMyLWl0KG4pLTE7biY9figxPDxsKSxhKz0xO3ZhciBpPTMyLWl0KHQpK2w7aWYoMzA8aSl7dmFyIHU9bC1sJTU7aT0obiYoMTw8dSktMSkudG9TdHJpbmcoMzIpLG4+Pj11LGwtPXUsanQ9MTw8MzItaXQodCkrbHxhPDxsfG4sSHQ9aStlfWVsc2UganQ9MTw8aXxhPDxsfG4sSHQ9ZX1mdW5jdGlvbiBqdShlKXtlLnJldHVybiE9PW51bGwmJih6YShlLDEpLFVzKGUsMSwwKSl9ZnVuY3Rpb24gSHUoZSl7Zm9yKDtlPT09V2w7KVdsPWVuWy0tdG5dLGVuW3RuXT1udWxsLEZsPWVuWy0tdG5dLGVuW3RuXT1udWxsO2Zvcig7ZT09PXhhOyl4YT15dFstLXB0XSx5dFtwdF09bnVsbCxIdD15dFstLXB0XSx5dFtwdF09bnVsbCxqdD15dFstLXB0XSx5dFtwdF09bnVsbH12YXIgSmU9bnVsbCxFZT1udWxsLHVlPSExLFJhPW51bGwsUnQ9ITEsQnU9RXJyb3Iocyg1MTkpKTtmdW5jdGlvbiBEYShlKXt2YXIgdD1FcnJvcihzKDQxOCwiIikpO3Rocm93IFhuKF90KHQsZSkpLEJ1fWZ1bmN0aW9uIENzKGUpe3ZhciB0PWUuc3RhdGVOb2RlLGE9ZS50eXBlLG49ZS5tZW1vaXplZFByb3BzO3N3aXRjaCh0W1plXT1lLHRbV2VdPW4sYSl7Y2FzZSJkaWFsb2ciOkkoImNhbmNlbCIsdCksSSgiY2xvc2UiLHQpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6SSgibG9hZCIsdCk7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKGE9MDthPGRsLmxlbmd0aDthKyspSShkbFthXSx0KTticmVhaztjYXNlInNvdXJjZSI6SSgiZXJyb3IiLHQpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOkkoImVycm9yIix0KSxJKCJsb2FkIix0KTticmVhaztjYXNlImRldGFpbHMiOkkoInRvZ2dsZSIsdCk7YnJlYWs7Y2FzZSJpbnB1dCI6SSgiaW52YWxpZCIsdCksJG8odCxuLnZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uY2hlY2tlZCxuLmRlZmF1bHRDaGVja2VkLG4udHlwZSxuLm5hbWUsITApLEhsKHQpO2JyZWFrO2Nhc2Uic2VsZWN0IjpJKCJpbnZhbGlkIix0KTticmVhaztjYXNlInRleHRhcmVhIjpJKCJpbnZhbGlkIix0KSxGbyh0LG4udmFsdWUsbi5kZWZhdWx0VmFsdWUsbi5jaGlsZHJlbiksSGwodCl9YT1uLmNoaWxkcmVuLHR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGEhPSJudW1iZXIiJiZ0eXBlb2YgYSE9ImJpZ2ludCJ8fHQudGV4dENvbnRlbnQ9PT0iIithfHxuLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxQZih0LnRleHRDb250ZW50LGEpPyhuLnBvcG92ZXIhPW51bGwmJihJKCJiZWZvcmV0b2dnbGUiLHQpLEkoInRvZ2dsZSIsdCkpLG4ub25TY3JvbGwhPW51bGwmJkkoInNjcm9sbCIsdCksbi5vblNjcm9sbEVuZCE9bnVsbCYmSSgic2Nyb2xsZW5kIix0KSxuLm9uQ2xpY2shPW51bGwmJih0Lm9uY2xpY2s9TWkpLHQ9ITApOnQ9ITEsdHx8RGEoZSl9ZnVuY3Rpb24gcXMoZSl7Zm9yKEplPWUucmV0dXJuO0plOylzd2l0Y2goSmUudGFnKXtjYXNlIDU6Y2FzZSAxMzpSdD0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6UnQ9ITA7cmV0dXJuO2RlZmF1bHQ6SmU9SmUucmV0dXJufX1mdW5jdGlvbiBMbihlKXtpZihlIT09SmUpcmV0dXJuITE7aWYoIXVlKXJldHVybiBxcyhlKSx1ZT0hMCwhMTt2YXIgdD1lLnRhZyxhO2lmKChhPXQhPT0zJiZ0IT09MjcpJiYoKGE9dD09PTUpJiYoYT1lLnR5cGUsYT0hKGEhPT0iZm9ybSImJmEhPT0iYnV0dG9uIil8fGVvKGUudHlwZSxlLm1lbW9pemVkUHJvcHMpKSxhPSFhKSxhJiZFZSYmRGEoZSkscXMoZSksdD09PTEzKXtpZihlPWUubWVtb2l6ZWRTdGF0ZSxlPWUhPT1udWxsP2UuZGVoeWRyYXRlZDpudWxsLCFlKXRocm93IEVycm9yKHMoMzE3KSk7ZTp7Zm9yKGU9ZS5uZXh0U2libGluZyx0PTA7ZTspe2lmKGUubm9kZVR5cGU9PT04KWlmKGE9ZS5kYXRhLGE9PT0iLyQiKXtpZih0PT09MCl7RWU9eHQoZS5uZXh0U2libGluZyk7YnJlYWsgZX10LS19ZWxzZSBhIT09IiQiJiZhIT09IiQhIiYmYSE9PSIkPyJ8fHQrKztlPWUubmV4dFNpYmxpbmd9RWU9bnVsbH19ZWxzZSB0PT09Mjc/KHQ9RWUsaGEoZS50eXBlKT8oZT1sbyxsbz1udWxsLEVlPWUpOkVlPXQpOkVlPUplP3h0KGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEduKCl7RWU9SmU9bnVsbCx1ZT0hMX1mdW5jdGlvbiBqcygpe3ZhciBlPVJhO3JldHVybiBlIT09bnVsbCYmKGV0PT09bnVsbD9ldD1lOmV0LnB1c2guYXBwbHkoZXQsZSksUmE9bnVsbCksZX1mdW5jdGlvbiBYbihlKXtSYT09PW51bGw/UmE9W2VdOlJhLnB1c2goZSl9dmFyIFl1PU4obnVsbCksTmE9bnVsbCxCdD1udWxsO2Z1bmN0aW9uIFB0KGUsdCxhKXtVKFl1LHQuX2N1cnJlbnRWYWx1ZSksdC5fY3VycmVudFZhbHVlPWF9ZnVuY3Rpb24gWXQoZSl7ZS5fY3VycmVudFZhbHVlPVl1LmN1cnJlbnQscShZdSl9ZnVuY3Rpb24gTHUoZSx0LGEpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpIT09dD8oZS5jaGlsZExhbmVzfD10LG4hPT1udWxsJiYobi5jaGlsZExhbmVzfD10KSk6biE9PW51bGwmJihuLmNoaWxkTGFuZXMmdCkhPT10JiYobi5jaGlsZExhbmVzfD10KSxlPT09YSlicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBHdShlLHQsYSxuKXt2YXIgbD1lLmNoaWxkO2ZvcihsIT09bnVsbCYmKGwucmV0dXJuPWUpO2whPT1udWxsOyl7dmFyIGk9bC5kZXBlbmRlbmNpZXM7aWYoaSE9PW51bGwpe3ZhciB1PWwuY2hpbGQ7aT1pLmZpcnN0Q29udGV4dDtlOmZvcig7aSE9PW51bGw7KXt2YXIgYz1pO2k9bDtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylpZihjLmNvbnRleHQ9PT10W3JdKXtpLmxhbmVzfD1hLGM9aS5hbHRlcm5hdGUsYyE9PW51bGwmJihjLmxhbmVzfD1hKSxMdShpLnJldHVybixhLGUpLG58fCh1PW51bGwpO2JyZWFrIGV9aT1jLm5leHR9fWVsc2UgaWYobC50YWc9PT0xOCl7aWYodT1sLnJldHVybix1PT09bnVsbCl0aHJvdyBFcnJvcihzKDM0MSkpO3UubGFuZXN8PWEsaT11LmFsdGVybmF0ZSxpIT09bnVsbCYmKGkubGFuZXN8PWEpLEx1KHUsYSxlKSx1PW51bGx9ZWxzZSB1PWwuY2hpbGQ7aWYodSE9PW51bGwpdS5yZXR1cm49bDtlbHNlIGZvcih1PWw7dSE9PW51bGw7KXtpZih1PT09ZSl7dT1udWxsO2JyZWFrfWlmKGw9dS5zaWJsaW5nLGwhPT1udWxsKXtsLnJldHVybj11LnJldHVybix1PWw7YnJlYWt9dT11LnJldHVybn1sPXV9fWZ1bmN0aW9uIFFuKGUsdCxhLG4pe2U9bnVsbDtmb3IodmFyIGw9dCxpPSExO2whPT1udWxsOyl7aWYoIWkpe2lmKChsLmZsYWdzJjUyNDI4OCkhPT0wKWk9ITA7ZWxzZSBpZigobC5mbGFncyYyNjIxNDQpIT09MClicmVha31pZihsLnRhZz09PTEwKXt2YXIgdT1sLmFsdGVybmF0ZTtpZih1PT09bnVsbCl0aHJvdyBFcnJvcihzKDM4NykpO2lmKHU9dS5tZW1vaXplZFByb3BzLHUhPT1udWxsKXt2YXIgYz1sLnR5cGU7dXQobC5wZW5kaW5nUHJvcHMudmFsdWUsdS52YWx1ZSl8fChlIT09bnVsbD9lLnB1c2goYyk6ZT1bY10pfX1lbHNlIGlmKGw9PT1udC5jdXJyZW50KXtpZih1PWwuYWx0ZXJuYXRlLHU9PT1udWxsKXRocm93IEVycm9yKHMoMzg3KSk7dS5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUhPT1sLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSYmKGUhPT1udWxsP2UucHVzaChwbCk6ZT1bcGxdKX1sPWwucmV0dXJufWUhPT1udWxsJiZHdSh0LGUsYSxuKSx0LmZsYWdzfD0yNjIxNDR9ZnVuY3Rpb24gUGwoZSl7Zm9yKGU9ZS5maXJzdENvbnRleHQ7ZSE9PW51bGw7KXtpZighdXQoZS5jb250ZXh0Ll9jdXJyZW50VmFsdWUsZS5tZW1vaXplZFZhbHVlKSlyZXR1cm4hMDtlPWUubmV4dH1yZXR1cm4hMX1mdW5jdGlvbiBPYShlKXtOYT1lLEJ0PW51bGwsZT1lLmRlcGVuZGVuY2llcyxlIT09bnVsbCYmKGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIFZlKGUpe3JldHVybiBIcyhOYSxlKX1mdW5jdGlvbiBJbChlLHQpe3JldHVybiBOYT09PW51bGwmJk9hKGUpLEhzKGUsdCl9ZnVuY3Rpb24gSHMoZSx0KXt2YXIgYT10Ll9jdXJyZW50VmFsdWU7aWYodD17Y29udGV4dDp0LG1lbW9pemVkVmFsdWU6YSxuZXh0Om51bGx9LEJ0PT09bnVsbCl7aWYoZT09PW51bGwpdGhyb3cgRXJyb3IocygzMDgpKTtCdD10LGUuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDp0fSxlLmZsYWdzfD01MjQyODh9ZWxzZSBCdD1CdC5uZXh0PXQ7cmV0dXJuIGF9dmFyIGdtPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI8InUiP0Fib3J0Q29udHJvbGxlcjpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhLG4pe2UucHVzaChuKX19O3RoaXMuYWJvcnQ9ZnVuY3Rpb24oKXt0LmFib3J0ZWQ9ITAsZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKCl9KX19LGJtPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxTbT1vLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LFVlPXskJHR5cGVvZjpTZSxDb25zdW1lcjpudWxsLFByb3ZpZGVyOm51bGwsX2N1cnJlbnRWYWx1ZTpudWxsLF9jdXJyZW50VmFsdWUyOm51bGwsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIFh1KCl7cmV0dXJue2NvbnRyb2xsZXI6bmV3IGdtLGRhdGE6bmV3IE1hcCxyZWZDb3VudDowfX1mdW5jdGlvbiBrbihlKXtlLnJlZkNvdW50LS0sZS5yZWZDb3VudD09PTAmJmJtKFNtLGZ1bmN0aW9uKCl7ZS5jb250cm9sbGVyLmFib3J0KCl9KX12YXIgWm49bnVsbCxRdT0wLGFuPTAsbm49bnVsbDtmdW5jdGlvbiBUbShlLHQpe2lmKFpuPT09bnVsbCl7dmFyIGE9Wm49W107UXU9MCxhbj1aYygpLG5uPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKG4pe2EucHVzaChuKX19fXJldHVybiBRdSsrLHQudGhlbihCcyxCcyksdH1mdW5jdGlvbiBCcygpe2lmKC0tUXU9PT0wJiZabiE9PW51bGwpe25uIT09bnVsbCYmKG5uLnN0YXR1cz0iZnVsZmlsbGVkIik7dmFyIGU9Wm47Wm49bnVsbCxhbj0wLG5uPW51bGw7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspKDAsZVt0XSkoKX19ZnVuY3Rpb24gRW0oZSx0KXt2YXIgYT1bXSxuPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbihsKXthLnB1c2gobCl9fTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKCl7bi5zdGF0dXM9ImZ1bGZpbGxlZCIsbi52YWx1ZT10O2Zvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKSgwLGFbbF0pKHQpfSxmdW5jdGlvbihsKXtmb3Iobi5zdGF0dXM9InJlamVjdGVkIixuLnJlYXNvbj1sLGw9MDtsPGEubGVuZ3RoO2wrKykoMCxhW2xdKSh2b2lkIDApfSksbn12YXIgWXM9eC5TO3guUz1mdW5jdGlvbihlLHQpe3R5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwmJnR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiImJlRtKGUsdCksWXMhPT1udWxsJiZZcyhlLHQpfTt2YXIgTWE9TihudWxsKTtmdW5jdGlvbiBrdSgpe3ZhciBlPU1hLmN1cnJlbnQ7cmV0dXJuIGUhPT1udWxsP2U6eWUucG9vbGVkQ2FjaGV9ZnVuY3Rpb24gZWkoZSx0KXt0PT09bnVsbD9VKE1hLE1hLmN1cnJlbnQpOlUoTWEsdC5wb29sKX1mdW5jdGlvbiBMcygpe3ZhciBlPWt1KCk7cmV0dXJuIGU9PT1udWxsP251bGw6e3BhcmVudDpVZS5fY3VycmVudFZhbHVlLHBvb2w6ZX19dmFyIFZuPUVycm9yKHMoNDYwKSksR3M9RXJyb3Iocyg0NzQpKSx0aT1FcnJvcihzKDU0MikpLFp1PXt0aGVuOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIGU9ZS5zdGF0dXMsZT09PSJmdWxmaWxsZWQifHxlPT09InJlamVjdGVkIn1mdW5jdGlvbiBhaSgpe31mdW5jdGlvbiBRcyhlLHQsYSl7c3dpdGNoKGE9ZVthXSxhPT09dm9pZCAwP2UucHVzaCh0KTphIT09dCYmKHQudGhlbihhaSxhaSksdD1hKSx0LnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiB0LnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IGU9dC5yZWFzb24sWnMoZSksZTtkZWZhdWx0OmlmKHR5cGVvZiB0LnN0YXR1cz09InN0cmluZyIpdC50aGVuKGFpLGFpKTtlbHNle2lmKGU9eWUsZSE9PW51bGwmJjEwMDxlLnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3Iocyg0ODIpKTtlPXQsZS5zdGF0dXM9InBlbmRpbmciLGUudGhlbihmdW5jdGlvbihuKXtpZih0LnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIGw9dDtsLnN0YXR1cz0iZnVsZmlsbGVkIixsLnZhbHVlPW59fSxmdW5jdGlvbihuKXtpZih0LnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIGw9dDtsLnN0YXR1cz0icmVqZWN0ZWQiLGwucmVhc29uPW59fSl9c3dpdGNoKHQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZT10LnJlYXNvbixacyhlKSxlfXRocm93IEtuPXQsVm59fXZhciBLbj1udWxsO2Z1bmN0aW9uIGtzKCl7aWYoS249PT1udWxsKXRocm93IEVycm9yKHMoNDU5KSk7dmFyIGU9S247cmV0dXJuIEtuPW51bGwsZX1mdW5jdGlvbiBacyhlKXtpZihlPT09Vm58fGU9PT10aSl0aHJvdyBFcnJvcihzKDQ4MykpfXZhciBJdD0hMTtmdW5jdGlvbiBWdShlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsbGFuZXM6MCxoaWRkZW5DYWxsYmFja3M6bnVsbH0sY2FsbGJhY2tzOm51bGx9fWZ1bmN0aW9uIEt1KGUsdCl7ZT1lLnVwZGF0ZVF1ZXVlLHQudXBkYXRlUXVldWU9PT1lJiYodC51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTplLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTplLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDplLnNoYXJlZCxjYWxsYmFja3M6bnVsbH0pfWZ1bmN0aW9uIGVhKGUpe3JldHVybntsYW5lOmUsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiB0YShlLHQsYSl7dmFyIG49ZS51cGRhdGVRdWV1ZTtpZihuPT09bnVsbClyZXR1cm4gbnVsbDtpZihuPW4uc2hhcmVkLChvZSYyKSE9PTApe3ZhciBsPW4ucGVuZGluZztyZXR1cm4gbD09PW51bGw/dC5uZXh0PXQ6KHQubmV4dD1sLm5leHQsbC5uZXh0PXQpLG4ucGVuZGluZz10LHQ9SmwoZSksTXMoZSxudWxsLGEpLHR9cmV0dXJuIEtsKGUsbix0LGEpLEpsKGUpfWZ1bmN0aW9uIEpuKGUsdCxhKXtpZih0PXQudXBkYXRlUXVldWUsdCE9PW51bGwmJih0PXQuc2hhcmVkLChhJjQxOTQwNDgpIT09MCkpe3ZhciBuPXQubGFuZXM7biY9ZS5wZW5kaW5nTGFuZXMsYXw9bix0LmxhbmVzPWEsQm8oZSxhKX19ZnVuY3Rpb24gSnUoZSx0KXt2YXIgYT1lLnVwZGF0ZVF1ZXVlLG49ZS5hbHRlcm5hdGU7aWYobiE9PW51bGwmJihuPW4udXBkYXRlUXVldWUsYT09PW4pKXt2YXIgbD1udWxsLGk9bnVsbDtpZihhPWEuZmlyc3RCYXNlVXBkYXRlLGEhPT1udWxsKXtkb3t2YXIgdT17bGFuZTphLmxhbmUsdGFnOmEudGFnLHBheWxvYWQ6YS5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfTtpPT09bnVsbD9sPWk9dTppPWkubmV4dD11LGE9YS5uZXh0fXdoaWxlKGEhPT1udWxsKTtpPT09bnVsbD9sPWk9dDppPWkubmV4dD10fWVsc2UgbD1pPXQ7YT17YmFzZVN0YXRlOm4uYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpsLGxhc3RCYXNlVXBkYXRlOmksc2hhcmVkOm4uc2hhcmVkLGNhbGxiYWNrczpuLmNhbGxiYWNrc30sZS51cGRhdGVRdWV1ZT1hO3JldHVybn1lPWEubGFzdEJhc2VVcGRhdGUsZT09PW51bGw/YS5maXJzdEJhc2VVcGRhdGU9dDplLm5leHQ9dCxhLmxhc3RCYXNlVXBkYXRlPXR9dmFyICR1PSExO2Z1bmN0aW9uICRuKCl7aWYoJHUpe3ZhciBlPW5uO2lmKGUhPT1udWxsKXRocm93IGV9fWZ1bmN0aW9uIFduKGUsdCxhLG4peyR1PSExO3ZhciBsPWUudXBkYXRlUXVldWU7SXQ9ITE7dmFyIGk9bC5maXJzdEJhc2VVcGRhdGUsdT1sLmxhc3RCYXNlVXBkYXRlLGM9bC5zaGFyZWQucGVuZGluZztpZihjIT09bnVsbCl7bC5zaGFyZWQucGVuZGluZz1udWxsO3ZhciByPWMscD1yLm5leHQ7ci5uZXh0PW51bGwsdT09PW51bGw/aT1wOnUubmV4dD1wLHU9cjt2YXIgQT1lLmFsdGVybmF0ZTtBIT09bnVsbCYmKEE9QS51cGRhdGVRdWV1ZSxjPUEubGFzdEJhc2VVcGRhdGUsYyE9PXUmJihjPT09bnVsbD9BLmZpcnN0QmFzZVVwZGF0ZT1wOmMubmV4dD1wLEEubGFzdEJhc2VVcGRhdGU9cikpfWlmKGkhPT1udWxsKXt2YXIgUj1sLmJhc2VTdGF0ZTt1PTAsQT1wPXI9bnVsbCxjPWk7ZG97dmFyIGc9Yy5sYW5lJi01MzY4NzA5MTMsYj1nIT09Yy5sYW5lO2lmKGI/KHRlJmcpPT09ZzoobiZnKT09PWcpe2chPT0wJiZnPT09YW4mJigkdT0hMCksQSE9PW51bGwmJihBPUEubmV4dD17bGFuZTowLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH0pO2U6e3ZhciBrPWUsRz1jO2c9dDt2YXIgZGU9YTtzd2l0Y2goRy50YWcpe2Nhc2UgMTppZihrPUcucGF5bG9hZCx0eXBlb2Ygaz09ImZ1bmN0aW9uIil7Uj1rLmNhbGwoZGUsUixnKTticmVhayBlfVI9azticmVhayBlO2Nhc2UgMzprLmZsYWdzPWsuZmxhZ3MmLTY1NTM3fDEyODtjYXNlIDA6aWYoaz1HLnBheWxvYWQsZz10eXBlb2Ygaz09ImZ1bmN0aW9uIj9rLmNhbGwoZGUsUixnKTprLGc9PW51bGwpYnJlYWsgZTtSPU0oe30sUixnKTticmVhayBlO2Nhc2UgMjpJdD0hMH19Zz1jLmNhbGxiYWNrLGchPT1udWxsJiYoZS5mbGFnc3w9NjQsYiYmKGUuZmxhZ3N8PTgxOTIpLGI9bC5jYWxsYmFja3MsYj09PW51bGw/bC5jYWxsYmFja3M9W2ddOmIucHVzaChnKSl9ZWxzZSBiPXtsYW5lOmcsdGFnOmMudGFnLHBheWxvYWQ6Yy5wYXlsb2FkLGNhbGxiYWNrOmMuY2FsbGJhY2ssbmV4dDpudWxsfSxBPT09bnVsbD8ocD1BPWIscj1SKTpBPUEubmV4dD1iLHV8PWc7aWYoYz1jLm5leHQsYz09PW51bGwpe2lmKGM9bC5zaGFyZWQucGVuZGluZyxjPT09bnVsbClicmVhaztiPWMsYz1iLm5leHQsYi5uZXh0PW51bGwsbC5sYXN0QmFzZVVwZGF0ZT1iLGwuc2hhcmVkLnBlbmRpbmc9bnVsbH19d2hpbGUoITApO0E9PT1udWxsJiYocj1SKSxsLmJhc2VTdGF0ZT1yLGwuZmlyc3RCYXNlVXBkYXRlPXAsbC5sYXN0QmFzZVVwZGF0ZT1BLGk9PT1udWxsJiYobC5zaGFyZWQubGFuZXM9MCksc2F8PXUsZS5sYW5lcz11LGUubWVtb2l6ZWRTdGF0ZT1SfX1mdW5jdGlvbiBWcyhlLHQpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKHMoMTkxLGUpKTtlLmNhbGwodCl9ZnVuY3Rpb24gS3MoZSx0KXt2YXIgYT1lLmNhbGxiYWNrcztpZihhIT09bnVsbClmb3IoZS5jYWxsYmFja3M9bnVsbCxlPTA7ZTxhLmxlbmd0aDtlKyspVnMoYVtlXSx0KX12YXIgbG49TihudWxsKSxuaT1OKDApO2Z1bmN0aW9uIEpzKGUsdCl7ZT1WdCxVKG5pLGUpLFUobG4sdCksVnQ9ZXx0LmJhc2VMYW5lc31mdW5jdGlvbiBXdSgpe1UobmksVnQpLFUobG4sbG4uY3VycmVudCl9ZnVuY3Rpb24gRnUoKXtWdD1uaS5jdXJyZW50LHEobG4pLHEobmkpfXZhciBhYT0wLEo9bnVsbCxyZT1udWxsLE1lPW51bGwsbGk9ITEsdW49ITEsd2E9ITEsaWk9MCxGbj0wLGNuPW51bGwsQW09MDtmdW5jdGlvbiB6ZSgpe3Rocm93IEVycm9yKHMoMzIxKSl9ZnVuY3Rpb24gUHUoZSx0KXtpZih0PT09bnVsbClyZXR1cm4hMTtmb3IodmFyIGE9MDthPHQubGVuZ3RoJiZhPGUubGVuZ3RoO2ErKylpZighdXQoZVthXSx0W2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJdShlLHQsYSxuLGwsaSl7cmV0dXJuIGFhPWksSj10LHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmxhbmVzPTAseC5IPWU9PT1udWxsfHxlLm1lbW9pemVkU3RhdGU9PT1udWxsP01yOndyLHdhPSExLGk9YShuLGwpLHdhPSExLHVuJiYoaT1Xcyh0LGEsbixsKSksJHMoZSksaX1mdW5jdGlvbiAkcyhlKXt4Lkg9Zmk7dmFyIHQ9cmUhPT1udWxsJiZyZS5uZXh0IT09bnVsbDtpZihhYT0wLE1lPXJlPUo9bnVsbCxsaT0hMSxGbj0wLGNuPW51bGwsdCl0aHJvdyBFcnJvcihzKDMwMCkpO2U9PT1udWxsfHxCZXx8KGU9ZS5kZXBlbmRlbmNpZXMsZSE9PW51bGwmJlBsKGUpJiYoQmU9ITApKX1mdW5jdGlvbiBXcyhlLHQsYSxuKXtKPWU7dmFyIGw9MDtkb3tpZih1biYmKGNuPW51bGwpLEZuPTAsdW49ITEsMjU8PWwpdGhyb3cgRXJyb3IocygzMDEpKTtpZihsKz0xLE1lPXJlPW51bGwsZS51cGRhdGVRdWV1ZSE9bnVsbCl7dmFyIGk9ZS51cGRhdGVRdWV1ZTtpLmxhc3RFZmZlY3Q9bnVsbCxpLmV2ZW50cz1udWxsLGkuc3RvcmVzPW51bGwsaS5tZW1vQ2FjaGUhPW51bGwmJihpLm1lbW9DYWNoZS5pbmRleD0wKX14Lkg9TW0saT10KGEsbil9d2hpbGUodW4pO3JldHVybiBpfWZ1bmN0aW9uIHhtKCl7dmFyIGU9eC5ILHQ9ZS51c2VTdGF0ZSgpWzBdO3JldHVybiB0PXR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiI/UG4odCk6dCxlPWUudXNlU3RhdGUoKVswXSwocmUhPT1udWxsP3JlLm1lbW9pemVkU3RhdGU6bnVsbCkhPT1lJiYoSi5mbGFnc3w9MTAyNCksdH1mdW5jdGlvbiBlYygpe3ZhciBlPWlpIT09MDtyZXR1cm4gaWk9MCxlfWZ1bmN0aW9uIHRjKGUsdCxhKXt0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fmF9ZnVuY3Rpb24gYWMoZSl7aWYobGkpe2ZvcihlPWUubWVtb2l6ZWRTdGF0ZTtlIT09bnVsbDspe3ZhciB0PWUucXVldWU7dCE9PW51bGwmJih0LnBlbmRpbmc9bnVsbCksZT1lLm5leHR9bGk9ITF9YWE9MCxNZT1yZT1KPW51bGwsdW49ITEsRm49aWk9MCxjbj1udWxsfWZ1bmN0aW9uIFBlKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIE1lPT09bnVsbD9KLm1lbW9pemVkU3RhdGU9TWU9ZTpNZT1NZS5uZXh0PWUsTWV9ZnVuY3Rpb24gd2UoKXtpZihyZT09PW51bGwpe3ZhciBlPUouYWx0ZXJuYXRlO2U9ZSE9PW51bGw/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPXJlLm5leHQ7dmFyIHQ9TWU9PT1udWxsP0oubWVtb2l6ZWRTdGF0ZTpNZS5uZXh0O2lmKHQhPT1udWxsKU1lPXQscmU9ZTtlbHNle2lmKGU9PT1udWxsKXRocm93IEouYWx0ZXJuYXRlPT09bnVsbD9FcnJvcihzKDQ2NykpOkVycm9yKHMoMzEwKSk7cmU9ZSxlPXttZW1vaXplZFN0YXRlOnJlLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOnJlLmJhc2VTdGF0ZSxiYXNlUXVldWU6cmUuYmFzZVF1ZXVlLHF1ZXVlOnJlLnF1ZXVlLG5leHQ6bnVsbH0sTWU9PT1udWxsP0oubWVtb2l6ZWRTdGF0ZT1NZT1lOk1lPU1lLm5leHQ9ZX1yZXR1cm4gTWV9ZnVuY3Rpb24gbmMoKXtyZXR1cm57bGFzdEVmZmVjdDpudWxsLGV2ZW50czpudWxsLHN0b3JlczpudWxsLG1lbW9DYWNoZTpudWxsfX1mdW5jdGlvbiBQbihlKXt2YXIgdD1GbjtyZXR1cm4gRm4rPTEsY249PT1udWxsJiYoY249W10pLGU9UXMoY24sZSx0KSx0PUosKE1lPT09bnVsbD90Lm1lbW9pemVkU3RhdGU6TWUubmV4dCk9PT1udWxsJiYodD10LmFsdGVybmF0ZSx4Lkg9dD09PW51bGx8fHQubWVtb2l6ZWRTdGF0ZT09PW51bGw/TXI6d3IpLGV9ZnVuY3Rpb24gdWkoZSl7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYodHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gUG4oZSk7aWYoZS4kJHR5cGVvZj09PVNlKXJldHVybiBWZShlKX10aHJvdyBFcnJvcihzKDQzOCxTdHJpbmcoZSkpKX1mdW5jdGlvbiBsYyhlKXt2YXIgdD1udWxsLGE9Si51cGRhdGVRdWV1ZTtpZihhIT09bnVsbCYmKHQ9YS5tZW1vQ2FjaGUpLHQ9PW51bGwpe3ZhciBuPUouYWx0ZXJuYXRlO24hPT1udWxsJiYobj1uLnVwZGF0ZVF1ZXVlLG4hPT1udWxsJiYobj1uLm1lbW9DYWNoZSxuIT1udWxsJiYodD17ZGF0YTpuLmRhdGEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLnNsaWNlKCl9KSxpbmRleDowfSkpKX1pZih0PT1udWxsJiYodD17ZGF0YTpbXSxpbmRleDowfSksYT09PW51bGwmJihhPW5jKCksSi51cGRhdGVRdWV1ZT1hKSxhLm1lbW9DYWNoZT10LGE9dC5kYXRhW3QuaW5kZXhdLGE9PT12b2lkIDApZm9yKGE9dC5kYXRhW3QuaW5kZXhdPUFycmF5KGUpLG49MDtuPGU7bisrKWFbbl09RjtyZXR1cm4gdC5pbmRleCsrLGF9ZnVuY3Rpb24gTHQoZSx0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0fWZ1bmN0aW9uIGNpKGUpe3ZhciB0PXdlKCk7cmV0dXJuIGljKHQscmUsZSl9ZnVuY3Rpb24gaWMoZSx0LGEpe3ZhciBuPWUucXVldWU7aWYobj09PW51bGwpdGhyb3cgRXJyb3IocygzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgbD1lLmJhc2VRdWV1ZSxpPW4ucGVuZGluZztpZihpIT09bnVsbCl7aWYobCE9PW51bGwpe3ZhciB1PWwubmV4dDtsLm5leHQ9aS5uZXh0LGkubmV4dD11fXQuYmFzZVF1ZXVlPWw9aSxuLnBlbmRpbmc9bnVsbH1pZihpPWUuYmFzZVN0YXRlLGw9PT1udWxsKWUubWVtb2l6ZWRTdGF0ZT1pO2Vsc2V7dD1sLm5leHQ7dmFyIGM9dT1udWxsLHI9bnVsbCxwPXQsQT0hMTtkb3t2YXIgUj1wLmxhbmUmLTUzNjg3MDkxMztpZihSIT09cC5sYW5lPyh0ZSZSKT09PVI6KGFhJlIpPT09Uil7dmFyIGc9cC5yZXZlcnRMYW5lO2lmKGc9PT0wKXIhPT1udWxsJiYocj1yLm5leHQ9e2xhbmU6MCxyZXZlcnRMYW5lOjAsYWN0aW9uOnAuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6cC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6cC5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLFI9PT1hbiYmKEE9ITApO2Vsc2UgaWYoKGFhJmcpPT09Zyl7cD1wLm5leHQsZz09PWFuJiYoQT0hMCk7Y29udGludWV9ZWxzZSBSPXtsYW5lOjAscmV2ZXJ0TGFuZTpwLnJldmVydExhbmUsYWN0aW9uOnAuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6cC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6cC5lYWdlclN0YXRlLG5leHQ6bnVsbH0scj09PW51bGw/KGM9cj1SLHU9aSk6cj1yLm5leHQ9UixKLmxhbmVzfD1nLHNhfD1nO1I9cC5hY3Rpb24sd2EmJmEoaSxSKSxpPXAuaGFzRWFnZXJTdGF0ZT9wLmVhZ2VyU3RhdGU6YShpLFIpfWVsc2UgZz17bGFuZTpSLHJldmVydExhbmU6cC5yZXZlcnRMYW5lLGFjdGlvbjpwLmFjdGlvbixoYXNFYWdlclN0YXRlOnAuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnAuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LHI9PT1udWxsPyhjPXI9Zyx1PWkpOnI9ci5uZXh0PWcsSi5sYW5lc3w9UixzYXw9UjtwPXAubmV4dH13aGlsZShwIT09bnVsbCYmcCE9PXQpO2lmKHI9PT1udWxsP3U9aTpyLm5leHQ9YywhdXQoaSxlLm1lbW9pemVkU3RhdGUpJiYoQmU9ITAsQSYmKGE9bm4sYSE9PW51bGwpKSl0aHJvdyBhO2UubWVtb2l6ZWRTdGF0ZT1pLGUuYmFzZVN0YXRlPXUsZS5iYXNlUXVldWU9cixuLmxhc3RSZW5kZXJlZFN0YXRlPWl9cmV0dXJuIGw9PT1udWxsJiYobi5sYW5lcz0wKSxbZS5tZW1vaXplZFN0YXRlLG4uZGlzcGF0Y2hdfWZ1bmN0aW9uIHVjKGUpe3ZhciB0PXdlKCksYT10LnF1ZXVlO2lmKGE9PT1udWxsKXRocm93IEVycm9yKHMoMzExKSk7YS5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIG49YS5kaXNwYXRjaCxsPWEucGVuZGluZyxpPXQubWVtb2l6ZWRTdGF0ZTtpZihsIT09bnVsbCl7YS5wZW5kaW5nPW51bGw7dmFyIHU9bD1sLm5leHQ7ZG8gaT1lKGksdS5hY3Rpb24pLHU9dS5uZXh0O3doaWxlKHUhPT1sKTt1dChpLHQubWVtb2l6ZWRTdGF0ZSl8fChCZT0hMCksdC5tZW1vaXplZFN0YXRlPWksdC5iYXNlUXVldWU9PT1udWxsJiYodC5iYXNlU3RhdGU9aSksYS5sYXN0UmVuZGVyZWRTdGF0ZT1pfXJldHVybltpLG5dfWZ1bmN0aW9uIEZzKGUsdCxhKXt2YXIgbj1KLGw9d2UoKSxpPXVlO2lmKGkpe2lmKGE9PT12b2lkIDApdGhyb3cgRXJyb3Iocyg0MDcpKTthPWEoKX1lbHNlIGE9dCgpO3ZhciB1PSF1dCgocmV8fGwpLm1lbW9pemVkU3RhdGUsYSk7dSYmKGwubWVtb2l6ZWRTdGF0ZT1hLEJlPSEwKSxsPWwucXVldWU7dmFyIGM9ZXIuYmluZChudWxsLG4sbCxlKTtpZihJbigyMDQ4LDgsYyxbZV0pLGwuZ2V0U25hcHNob3QhPT10fHx1fHxNZSE9PW51bGwmJk1lLm1lbW9pemVkU3RhdGUudGFnJjEpe2lmKG4uZmxhZ3N8PTIwNDgsb24oOSxvaSgpLElzLmJpbmQobnVsbCxuLGwsYSx0KSxudWxsKSx5ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDkpKTtpfHwoYWEmMTI0KSE9PTB8fFBzKG4sdCxhKX1yZXR1cm4gYX1mdW5jdGlvbiBQcyhlLHQsYSl7ZS5mbGFnc3w9MTYzODQsZT17Z2V0U25hcHNob3Q6dCx2YWx1ZTphfSx0PUoudXBkYXRlUXVldWUsdD09PW51bGw/KHQ9bmMoKSxKLnVwZGF0ZVF1ZXVlPXQsdC5zdG9yZXM9W2VdKTooYT10LnN0b3JlcyxhPT09bnVsbD90LnN0b3Jlcz1bZV06YS5wdXNoKGUpKX1mdW5jdGlvbiBJcyhlLHQsYSxuKXt0LnZhbHVlPWEsdC5nZXRTbmFwc2hvdD1uLHRyKHQpJiZhcihlKX1mdW5jdGlvbiBlcihlLHQsYSl7cmV0dXJuIGEoZnVuY3Rpb24oKXt0cih0KSYmYXIoZSl9KX1mdW5jdGlvbiB0cihlKXt2YXIgdD1lLmdldFNuYXBzaG90O2U9ZS52YWx1ZTt0cnl7dmFyIGE9dCgpO3JldHVybiF1dChlLGEpfWNhdGNoe3JldHVybiEwfX1mdW5jdGlvbiBhcihlKXt2YXIgdD1QYShlLDIpO3QhPT1udWxsJiZkdCh0LGUsMil9ZnVuY3Rpb24gY2MoZSl7dmFyIHQ9UGUoKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIil7dmFyIGE9ZTtpZihlPWEoKSx3YSl7JHQoITApO3RyeXthKCl9ZmluYWxseXskdCghMSl9fX1yZXR1cm4gdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsdC5xdWV1ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkx0LGxhc3RSZW5kZXJlZFN0YXRlOmV9LHR9ZnVuY3Rpb24gbnIoZSx0LGEsbil7cmV0dXJuIGUuYmFzZVN0YXRlPWEsaWMoZSxyZSx0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uOkx0KX1mdW5jdGlvbiB6bShlLHQsYSxuLGwpe2lmKHJpKGUpKXRocm93IEVycm9yKHMoNDg1KSk7aWYoZT10LmFjdGlvbixlIT09bnVsbCl7dmFyIGk9e3BheWxvYWQ6bCxhY3Rpb246ZSxuZXh0Om51bGwsaXNUcmFuc2l0aW9uOiEwLHN0YXR1czoicGVuZGluZyIsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxsaXN0ZW5lcnM6W10sdGhlbjpmdW5jdGlvbih1KXtpLmxpc3RlbmVycy5wdXNoKHUpfX07eC5UIT09bnVsbD9hKCEwKTppLmlzVHJhbnNpdGlvbj0hMSxuKGkpLGE9dC5wZW5kaW5nLGE9PT1udWxsPyhpLm5leHQ9dC5wZW5kaW5nPWksbHIodCxpKSk6KGkubmV4dD1hLm5leHQsdC5wZW5kaW5nPWEubmV4dD1pKX19ZnVuY3Rpb24gbHIoZSx0KXt2YXIgYT10LmFjdGlvbixuPXQucGF5bG9hZCxsPWUuc3RhdGU7aWYodC5pc1RyYW5zaXRpb24pe3ZhciBpPXguVCx1PXt9O3guVD11O3RyeXt2YXIgYz1hKGwsbikscj14LlM7ciE9PW51bGwmJnIodSxjKSxpcihlLHQsYyl9Y2F0Y2gocCl7b2MoZSx0LHApfWZpbmFsbHl7eC5UPWl9fWVsc2UgdHJ5e2k9YShsLG4pLGlyKGUsdCxpKX1jYXRjaChwKXtvYyhlLHQscCl9fWZ1bmN0aW9uIGlyKGUsdCxhKXthIT09bnVsbCYmdHlwZW9mIGE9PSJvYmplY3QiJiZ0eXBlb2YgYS50aGVuPT0iZnVuY3Rpb24iP2EudGhlbihmdW5jdGlvbihuKXt1cihlLHQsbil9LGZ1bmN0aW9uKG4pe3JldHVybiBvYyhlLHQsbil9KTp1cihlLHQsYSl9ZnVuY3Rpb24gdXIoZSx0LGEpe3Quc3RhdHVzPSJmdWxmaWxsZWQiLHQudmFsdWU9YSxjcih0KSxlLnN0YXRlPWEsdD1lLnBlbmRpbmcsdCE9PW51bGwmJihhPXQubmV4dCxhPT09dD9lLnBlbmRpbmc9bnVsbDooYT1hLm5leHQsdC5uZXh0PWEsbHIoZSxhKSkpfWZ1bmN0aW9uIG9jKGUsdCxhKXt2YXIgbj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbiE9PW51bGwpe249bi5uZXh0O2RvIHQuc3RhdHVzPSJyZWplY3RlZCIsdC5yZWFzb249YSxjcih0KSx0PXQubmV4dDt3aGlsZSh0IT09bil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBjcihlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKSgwLGVbdF0pKCl9ZnVuY3Rpb24gb3IoZSx0KXtyZXR1cm4gdH1mdW5jdGlvbiBzcihlLHQpe2lmKHVlKXt2YXIgYT15ZS5mb3JtU3RhdGU7aWYoYSE9PW51bGwpe2U6e3ZhciBuPUo7aWYodWUpe2lmKEVlKXt0Ontmb3IodmFyIGw9RWUsaT1SdDtsLm5vZGVUeXBlIT09ODspe2lmKCFpKXtsPW51bGw7YnJlYWsgdH1pZihsPXh0KGwubmV4dFNpYmxpbmcpLGw9PT1udWxsKXtsPW51bGw7YnJlYWsgdH19aT1sLmRhdGEsbD1pPT09IkYhInx8aT09PSJGIj9sOm51bGx9aWYobCl7RWU9eHQobC5uZXh0U2libGluZyksbj1sLmRhdGE9PT0iRiEiO2JyZWFrIGV9fURhKG4pfW49ITF9biYmKHQ9YVswXSl9fXJldHVybiBhPVBlKCksYS5tZW1vaXplZFN0YXRlPWEuYmFzZVN0YXRlPXQsbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm9yLGxhc3RSZW5kZXJlZFN0YXRlOnR9LGEucXVldWU9bixhPURyLmJpbmQobnVsbCxKLG4pLG4uZGlzcGF0Y2g9YSxuPWNjKCExKSxpPWhjLmJpbmQobnVsbCxKLCExLG4ucXVldWUpLG49UGUoKSxsPXtzdGF0ZTp0LGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxuLnF1ZXVlPWwsYT16bS5iaW5kKG51bGwsSixsLGksYSksbC5kaXNwYXRjaD1hLG4ubWVtb2l6ZWRTdGF0ZT1lLFt0LGEsITFdfWZ1bmN0aW9uIHJyKGUpe3ZhciB0PXdlKCk7cmV0dXJuIGZyKHQscmUsZSl9ZnVuY3Rpb24gZnIoZSx0LGEpe2lmKHQ9aWMoZSx0LG9yKVswXSxlPWNpKEx0KVswXSx0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iKXRyeXt2YXIgbj1Qbih0KX1jYXRjaCh1KXt0aHJvdyB1PT09Vm4/dGk6dX1lbHNlIG49dDt0PXdlKCk7dmFyIGw9dC5xdWV1ZSxpPWwuZGlzcGF0Y2g7cmV0dXJuIGEhPT10Lm1lbW9pemVkU3RhdGUmJihKLmZsYWdzfD0yMDQ4LG9uKDksb2koKSxSbS5iaW5kKG51bGwsbCxhKSxudWxsKSksW24saSxlXX1mdW5jdGlvbiBSbShlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gZHIoZSl7dmFyIHQ9d2UoKSxhPXJlO2lmKGEhPT1udWxsKXJldHVybiBmcih0LGEsZSk7d2UoKSx0PXQubWVtb2l6ZWRTdGF0ZSxhPXdlKCk7dmFyIG49YS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gYS5tZW1vaXplZFN0YXRlPWUsW3QsbiwhMV19ZnVuY3Rpb24gb24oZSx0LGEsbil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTphLGRlcHM6bixpbnN0OnQsbmV4dDpudWxsfSx0PUoudXBkYXRlUXVldWUsdD09PW51bGwmJih0PW5jKCksSi51cGRhdGVRdWV1ZT10KSxhPXQubGFzdEVmZmVjdCxhPT09bnVsbD90Lmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KG49YS5uZXh0LGEubmV4dD1lLGUubmV4dD1uLHQubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIG9pKCl7cmV0dXJue2Rlc3Ryb3k6dm9pZCAwLHJlc291cmNlOnZvaWQgMH19ZnVuY3Rpb24gaHIoKXtyZXR1cm4gd2UoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHNpKGUsdCxhLG4pe3ZhciBsPVBlKCk7bj1uPT09dm9pZCAwP251bGw6bixKLmZsYWdzfD1lLGwubWVtb2l6ZWRTdGF0ZT1vbigxfHQsb2koKSxhLG4pfWZ1bmN0aW9uIEluKGUsdCxhLG4pe3ZhciBsPXdlKCk7bj1uPT09dm9pZCAwP251bGw6bjt2YXIgaT1sLm1lbW9pemVkU3RhdGUuaW5zdDtyZSE9PW51bGwmJm4hPT1udWxsJiZQdShuLHJlLm1lbW9pemVkU3RhdGUuZGVwcyk/bC5tZW1vaXplZFN0YXRlPW9uKHQsaSxhLG4pOihKLmZsYWdzfD1lLGwubWVtb2l6ZWRTdGF0ZT1vbigxfHQsaSxhLG4pKX1mdW5jdGlvbiBtcihlLHQpe3NpKDgzOTA2NTYsOCxlLHQpfWZ1bmN0aW9uIF9yKGUsdCl7SW4oMjA0OCw4LGUsdCl9ZnVuY3Rpb24gdnIoZSx0KXtyZXR1cm4gSW4oNCwyLGUsdCl9ZnVuY3Rpb24geXIoZSx0KXtyZXR1cm4gSW4oNCw0LGUsdCl9ZnVuY3Rpb24gcHIoZSx0KXtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIil7ZT1lKCk7dmFyIGE9dChlKTtyZXR1cm4gZnVuY3Rpb24oKXt0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKCk6dChudWxsKX19aWYodCE9bnVsbClyZXR1cm4gZT1lKCksdC5jdXJyZW50PWUsZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gZ3IoZSx0LGEpe2E9YSE9bnVsbD9hLmNvbmNhdChbZV0pOm51bGwsSW4oNCw0LHByLmJpbmQobnVsbCx0LGUpLGEpfWZ1bmN0aW9uIHNjKCl7fWZ1bmN0aW9uIGJyKGUsdCl7dmFyIGE9d2UoKTt0PXQ9PT12b2lkIDA/bnVsbDp0O3ZhciBuPWEubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gdCE9PW51bGwmJlB1KHQsblsxXSk/blswXTooYS5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIFNyKGUsdCl7dmFyIGE9d2UoKTt0PXQ9PT12b2lkIDA/bnVsbDp0O3ZhciBuPWEubWVtb2l6ZWRTdGF0ZTtpZih0IT09bnVsbCYmUHUodCxuWzFdKSlyZXR1cm4gblswXTtpZihuPWUoKSx3YSl7JHQoITApO3RyeXtlKCl9ZmluYWxseXskdCghMSl9fXJldHVybiBhLm1lbW9pemVkU3RhdGU9W24sdF0sbn1mdW5jdGlvbiByYyhlLHQsYSl7cmV0dXJuIGE9PT12b2lkIDB8fChhYSYxMDczNzQxODI0KSE9PTA/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1hLGU9eGYoKSxKLmxhbmVzfD1lLHNhfD1lLGEpfWZ1bmN0aW9uIFRyKGUsdCxhLG4pe3JldHVybiB1dChhLHQpP2E6bG4uY3VycmVudCE9PW51bGw/KGU9cmMoZSxhLG4pLHV0KGUsdCl8fChCZT0hMCksZSk6KGFhJjQyKT09PTA/KEJlPSEwLGUubWVtb2l6ZWRTdGF0ZT1hKTooZT14ZigpLEoubGFuZXN8PWUsc2F8PWUsdCl9ZnVuY3Rpb24gRXIoZSx0LGEsbixsKXt2YXIgaT1DLnA7Qy5wPWkhPT0wJiY4Pmk/aTo4O3ZhciB1PXguVCxjPXt9O3guVD1jLGhjKGUsITEsdCxhKTt0cnl7dmFyIHI9bCgpLHA9eC5TO2lmKHAhPT1udWxsJiZwKGMsciksciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmdHlwZW9mIHIudGhlbj09ImZ1bmN0aW9uIil7dmFyIEE9RW0ocixuKTtlbChlLHQsQSxmdChlKSl9ZWxzZSBlbChlLHQsbixmdChlKSl9Y2F0Y2goUil7ZWwoZSx0LHt0aGVuOmZ1bmN0aW9uKCl7fSxzdGF0dXM6InJlamVjdGVkIixyZWFzb246Un0sZnQoKSl9ZmluYWxseXtDLnA9aSx4LlQ9dX19ZnVuY3Rpb24gRG0oKXt9ZnVuY3Rpb24gZmMoZSx0LGEsbil7aWYoZS50YWchPT01KXRocm93IEVycm9yKHMoNDc2KSk7dmFyIGw9QXIoZSkucXVldWU7RXIoZSxsLHQsUSxhPT09bnVsbD9EbTpmdW5jdGlvbigpe3JldHVybiB4cihlKSxhKG4pfSl9ZnVuY3Rpb24gQXIoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKHQhPT1udWxsKXJldHVybiB0O3Q9e21lbW9pemVkU3RhdGU6USxiYXNlU3RhdGU6USxiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkx0LGxhc3RSZW5kZXJlZFN0YXRlOlF9LG5leHQ6bnVsbH07dmFyIGE9e307cmV0dXJuIHQubmV4dD17bWVtb2l6ZWRTdGF0ZTphLGJhc2VTdGF0ZTphLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOntwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6THQsbGFzdFJlbmRlcmVkU3RhdGU6YX0sbmV4dDpudWxsfSxlLm1lbW9pemVkU3RhdGU9dCxlPWUuYWx0ZXJuYXRlLGUhPT1udWxsJiYoZS5tZW1vaXplZFN0YXRlPXQpLHR9ZnVuY3Rpb24geHIoZSl7dmFyIHQ9QXIoZSkubmV4dC5xdWV1ZTtlbChlLHQse30sZnQoKSl9ZnVuY3Rpb24gZGMoKXtyZXR1cm4gVmUocGwpfWZ1bmN0aW9uIHpyKCl7cmV0dXJuIHdlKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBScigpe3JldHVybiB3ZSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gTm0oZSl7Zm9yKHZhciB0PWUucmV0dXJuO3QhPT1udWxsOyl7c3dpdGNoKHQudGFnKXtjYXNlIDI0OmNhc2UgMzp2YXIgYT1mdCgpO2U9ZWEoYSk7dmFyIG49dGEodCxlLGEpO24hPT1udWxsJiYoZHQobix0LGEpLEpuKG4sdCxhKSksdD17Y2FjaGU6WHUoKX0sZS5wYXlsb2FkPXQ7cmV0dXJufXQ9dC5yZXR1cm59fWZ1bmN0aW9uIE9tKGUsdCxhKXt2YXIgbj1mdCgpO2E9e2xhbmU6bixyZXZlcnRMYW5lOjAsYWN0aW9uOmEsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxyaShlKT9Ocih0LGEpOihhPXd1KGUsdCxhLG4pLGEhPT1udWxsJiYoZHQoYSxlLG4pLE9yKGEsdCxuKSkpfWZ1bmN0aW9uIERyKGUsdCxhKXt2YXIgbj1mdCgpO2VsKGUsdCxhLG4pfWZ1bmN0aW9uIGVsKGUsdCxhLG4pe3ZhciBsPXtsYW5lOm4scmV2ZXJ0TGFuZTowLGFjdGlvbjphLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYocmkoZSkpTnIodCxsKTtlbHNle3ZhciBpPWUuYWx0ZXJuYXRlO2lmKGUubGFuZXM9PT0wJiYoaT09PW51bGx8fGkubGFuZXM9PT0wKSYmKGk9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyLGkhPT1udWxsKSl0cnl7dmFyIHU9dC5sYXN0UmVuZGVyZWRTdGF0ZSxjPWkodSxhKTtpZihsLmhhc0VhZ2VyU3RhdGU9ITAsbC5lYWdlclN0YXRlPWMsdXQoYyx1KSlyZXR1cm4gS2woZSx0LGwsMCkseWU9PT1udWxsJiZWbCgpLCExfWNhdGNoe31pZihhPXd1KGUsdCxsLG4pLGEhPT1udWxsKXJldHVybiBkdChhLGUsbiksT3IoYSx0LG4pLCEwfXJldHVybiExfWZ1bmN0aW9uIGhjKGUsdCxhLG4pe2lmKG49e2xhbmU6MixyZXZlcnRMYW5lOlpjKCksYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxyaShlKSl7aWYodCl0aHJvdyBFcnJvcihzKDQ3OSkpfWVsc2UgdD13dShlLGEsbiwyKSx0IT09bnVsbCYmZHQodCxlLDIpfWZ1bmN0aW9uIHJpKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO3JldHVybiBlPT09Snx8dCE9PW51bGwmJnQ9PT1KfWZ1bmN0aW9uIE5yKGUsdCl7dW49bGk9ITA7dmFyIGE9ZS5wZW5kaW5nO2E9PT1udWxsP3QubmV4dD10Oih0Lm5leHQ9YS5uZXh0LGEubmV4dD10KSxlLnBlbmRpbmc9dH1mdW5jdGlvbiBPcihlLHQsYSl7aWYoKGEmNDE5NDA0OCkhPT0wKXt2YXIgbj10LmxhbmVzO24mPWUucGVuZGluZ0xhbmVzLGF8PW4sdC5sYW5lcz1hLEJvKGUsYSl9fXZhciBmaT17cmVhZENvbnRleHQ6VmUsdXNlOnVpLHVzZUNhbGxiYWNrOnplLHVzZUNvbnRleHQ6emUsdXNlRWZmZWN0OnplLHVzZUltcGVyYXRpdmVIYW5kbGU6emUsdXNlTGF5b3V0RWZmZWN0OnplLHVzZUluc2VydGlvbkVmZmVjdDp6ZSx1c2VNZW1vOnplLHVzZVJlZHVjZXI6emUsdXNlUmVmOnplLHVzZVN0YXRlOnplLHVzZURlYnVnVmFsdWU6emUsdXNlRGVmZXJyZWRWYWx1ZTp6ZSx1c2VUcmFuc2l0aW9uOnplLHVzZVN5bmNFeHRlcm5hbFN0b3JlOnplLHVzZUlkOnplLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOnplLHVzZUZvcm1TdGF0ZTp6ZSx1c2VBY3Rpb25TdGF0ZTp6ZSx1c2VPcHRpbWlzdGljOnplLHVzZU1lbW9DYWNoZTp6ZSx1c2VDYWNoZVJlZnJlc2g6emV9LE1yPXtyZWFkQ29udGV4dDpWZSx1c2U6dWksdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUGUoKS5tZW1vaXplZFN0YXRlPVtlLHQ9PT12b2lkIDA/bnVsbDp0XSxlfSx1c2VDb250ZXh0OlZlLHVzZUVmZmVjdDptcix1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsdCxhKXthPWEhPW51bGw/YS5jb25jYXQoW2VdKTpudWxsLHNpKDQxOTQzMDgsNCxwci5iaW5kKG51bGwsdCxlKSxhKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHNpKDQxOTQzMDgsNCxlLHQpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oZSx0KXtzaSg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBhPVBlKCk7dD10PT09dm9pZCAwP251bGw6dDt2YXIgbj1lKCk7aWYod2EpeyR0KCEwKTt0cnl7ZSgpfWZpbmFsbHl7JHQoITEpfX1yZXR1cm4gYS5tZW1vaXplZFN0YXRlPVtuLHRdLG59LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPVBlKCk7aWYoYSE9PXZvaWQgMCl7dmFyIGw9YSh0KTtpZih3YSl7JHQoITApO3RyeXthKHQpfWZpbmFsbHl7JHQoITEpfX19ZWxzZSBsPXQ7cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT1sLGU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOmx9LG4ucXVldWU9ZSxlPWUuZGlzcGF0Y2g9T20uYmluZChudWxsLEosZSksW24ubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3ZhciB0PVBlKCk7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0sdC5tZW1vaXplZFN0YXRlPWV9LHVzZVN0YXRlOmZ1bmN0aW9uKGUpe2U9Y2MoZSk7dmFyIHQ9ZS5xdWV1ZSxhPURyLmJpbmQobnVsbCxKLHQpO3JldHVybiB0LmRpc3BhdGNoPWEsW2UubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlRGVidWdWYWx1ZTpzYyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9UGUoKTtyZXR1cm4gcmMoYSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9Y2MoITEpO3JldHVybiBlPUVyLmJpbmQobnVsbCxKLGUucXVldWUsITAsITEpLFBlKCkubWVtb2l6ZWRTdGF0ZT1lLFshMSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPUosbD1QZSgpO2lmKHVlKXtpZihhPT09dm9pZCAwKXRocm93IEVycm9yKHMoNDA3KSk7YT1hKCl9ZWxzZXtpZihhPXQoKSx5ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDkpKTsodGUmMTI0KSE9PTB8fFBzKG4sdCxhKX1sLm1lbW9pemVkU3RhdGU9YTt2YXIgaT17dmFsdWU6YSxnZXRTbmFwc2hvdDp0fTtyZXR1cm4gbC5xdWV1ZT1pLG1yKGVyLmJpbmQobnVsbCxuLGksZSksW2VdKSxuLmZsYWdzfD0yMDQ4LG9uKDksb2koKSxJcy5iaW5kKG51bGwsbixpLGEsdCksbnVsbCksYX0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgZT1QZSgpLHQ9eWUuaWRlbnRpZmllclByZWZpeDtpZih1ZSl7dmFyIGE9SHQsbj1qdDthPShuJn4oMTw8MzItaXQobiktMSkpLnRvU3RyaW5nKDMyKSthLHQ9IsKrIit0KyJSIithLGE9aWkrKywwPGEmJih0Kz0iSCIrYS50b1N0cmluZygzMikpLHQrPSLCuyJ9ZWxzZSBhPUFtKyssdD0iwqsiK3QrInIiK2EudG9TdHJpbmcoMzIpKyLCuyI7cmV0dXJuIGUubWVtb2l6ZWRTdGF0ZT10fSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpkYyx1c2VGb3JtU3RhdGU6c3IsdXNlQWN0aW9uU3RhdGU6c3IsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbihlKXt2YXIgdD1QZSgpO3QubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lO3ZhciBhPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6bnVsbCxsYXN0UmVuZGVyZWRTdGF0ZTpudWxsfTtyZXR1cm4gdC5xdWV1ZT1hLHQ9aGMuYmluZChudWxsLEosITAsYSksYS5kaXNwYXRjaD10LFtlLHRdfSx1c2VNZW1vQ2FjaGU6bGMsdXNlQ2FjaGVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIFBlKCkubWVtb2l6ZWRTdGF0ZT1ObS5iaW5kKG51bGwsSil9fSx3cj17cmVhZENvbnRleHQ6VmUsdXNlOnVpLHVzZUNhbGxiYWNrOmJyLHVzZUNvbnRleHQ6VmUsdXNlRWZmZWN0Ol9yLHVzZUltcGVyYXRpdmVIYW5kbGU6Z3IsdXNlSW5zZXJ0aW9uRWZmZWN0OnZyLHVzZUxheW91dEVmZmVjdDp5cix1c2VNZW1vOlNyLHVzZVJlZHVjZXI6Y2ksdXNlUmVmOmhyLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGNpKEx0KX0sdXNlRGVidWdWYWx1ZTpzYyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9d2UoKTtyZXR1cm4gVHIoYSxyZS5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1jaShMdClbMF0sdD13ZSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW3R5cGVvZiBlPT0iYm9vbGVhbiI/ZTpQbihlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6RnMsdXNlSWQ6enIsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6ZGMsdXNlRm9ybVN0YXRlOnJyLHVzZUFjdGlvblN0YXRlOnJyLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXt2YXIgYT13ZSgpO3JldHVybiBucihhLHJlLGUsdCl9LHVzZU1lbW9DYWNoZTpsYyx1c2VDYWNoZVJlZnJlc2g6UnJ9LE1tPXtyZWFkQ29udGV4dDpWZSx1c2U6dWksdXNlQ2FsbGJhY2s6YnIsdXNlQ29udGV4dDpWZSx1c2VFZmZlY3Q6X3IsdXNlSW1wZXJhdGl2ZUhhbmRsZTpncix1c2VJbnNlcnRpb25FZmZlY3Q6dnIsdXNlTGF5b3V0RWZmZWN0OnlyLHVzZU1lbW86U3IsdXNlUmVkdWNlcjp1Yyx1c2VSZWY6aHIsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdWMoTHQpfSx1c2VEZWJ1Z1ZhbHVlOnNjLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT13ZSgpO3JldHVybiByZT09PW51bGw/cmMoYSxlLHQpOlRyKGEscmUubWVtb2l6ZWRTdGF0ZSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dWMoTHQpWzBdLHQ9d2UoKS5tZW1vaXplZFN0YXRlO3JldHVyblt0eXBlb2YgZT09ImJvb2xlYW4iP2U6UG4oZSksdF19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOkZzLHVzZUlkOnpyLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmRjLHVzZUZvcm1TdGF0ZTpkcix1c2VBY3Rpb25TdGF0ZTpkcix1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsdCl7dmFyIGE9d2UoKTtyZXR1cm4gcmUhPT1udWxsP25yKGEscmUsZSx0KTooYS5iYXNlU3RhdGU9ZSxbZSxhLnF1ZXVlLmRpc3BhdGNoXSl9LHVzZU1lbW9DYWNoZTpsYyx1c2VDYWNoZVJlZnJlc2g6UnJ9LHNuPW51bGwsdGw9MDtmdW5jdGlvbiBkaShlKXt2YXIgdD10bDtyZXR1cm4gdGwrPTEsc249PT1udWxsJiYoc249W10pLFFzKHNuLGUsdCl9ZnVuY3Rpb24gYWwoZSx0KXt0PXQucHJvcHMucmVmLGUucmVmPXQhPT12b2lkIDA/dDpudWxsfWZ1bmN0aW9uIGhpKGUsdCl7dGhyb3cgdC4kJHR5cGVvZj09PVY/RXJyb3Iocyg1MjUpKTooZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksRXJyb3IocygzMSxlPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXModCkuam9pbigiLCAiKSsifSI6ZSkpKX1mdW5jdGlvbiBVcihlKXt2YXIgdD1lLl9pbml0O3JldHVybiB0KGUuX3BheWxvYWQpfWZ1bmN0aW9uIENyKGUpe2Z1bmN0aW9uIHQoXyxoKXtpZihlKXt2YXIgdj1fLmRlbGV0aW9uczt2PT09bnVsbD8oXy5kZWxldGlvbnM9W2hdLF8uZmxhZ3N8PTE2KTp2LnB1c2goaCl9fWZ1bmN0aW9uIGEoXyxoKXtpZighZSlyZXR1cm4gbnVsbDtmb3IoO2ghPT1udWxsOyl0KF8saCksaD1oLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gbihfKXtmb3IodmFyIGg9bmV3IE1hcDtfIT09bnVsbDspXy5rZXkhPT1udWxsP2guc2V0KF8ua2V5LF8pOmguc2V0KF8uaW5kZXgsXyksXz1fLnNpYmxpbmc7cmV0dXJuIGh9ZnVuY3Rpb24gbChfLGgpe3JldHVybiBfPXF0KF8saCksXy5pbmRleD0wLF8uc2libGluZz1udWxsLF99ZnVuY3Rpb24gaShfLGgsdil7cmV0dXJuIF8uaW5kZXg9dixlPyh2PV8uYWx0ZXJuYXRlLHYhPT1udWxsPyh2PXYuaW5kZXgsdjxoPyhfLmZsYWdzfD02NzEwODg2NixoKTp2KTooXy5mbGFnc3w9NjcxMDg4NjYsaCkpOihfLmZsYWdzfD0xMDQ4NTc2LGgpfWZ1bmN0aW9uIHUoXyl7cmV0dXJuIGUmJl8uYWx0ZXJuYXRlPT09bnVsbCYmKF8uZmxhZ3N8PTY3MTA4ODY2KSxffWZ1bmN0aW9uIGMoXyxoLHYseil7cmV0dXJuIGg9PT1udWxsfHxoLnRhZyE9PTY/KGg9Q3UodixfLm1vZGUseiksaC5yZXR1cm49XyxoKTooaD1sKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiByKF8saCx2LHope3ZhciBqPXYudHlwZTtyZXR1cm4gaj09PWhlP0EoXyxoLHYucHJvcHMuY2hpbGRyZW4seix2LmtleSk6aCE9PW51bGwmJihoLmVsZW1lbnRUeXBlPT09anx8dHlwZW9mIGo9PSJvYmplY3QiJiZqIT09bnVsbCYmai4kJHR5cGVvZj09PVcmJlVyKGopPT09aC50eXBlKT8oaD1sKGgsdi5wcm9wcyksYWwoaCx2KSxoLnJldHVybj1fLGgpOihoPSRsKHYudHlwZSx2LmtleSx2LnByb3BzLG51bGwsXy5tb2RlLHopLGFsKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiBwKF8saCx2LHope3JldHVybiBoPT09bnVsbHx8aC50YWchPT00fHxoLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09di5jb250YWluZXJJbmZvfHxoLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PXYuaW1wbGVtZW50YXRpb24/KGg9cXUodixfLm1vZGUseiksaC5yZXR1cm49XyxoKTooaD1sKGgsdi5jaGlsZHJlbnx8W10pLGgucmV0dXJuPV8saCl9ZnVuY3Rpb24gQShfLGgsdix6LGope3JldHVybiBoPT09bnVsbHx8aC50YWchPT03PyhoPUFhKHYsXy5tb2RlLHosaiksaC5yZXR1cm49XyxoKTooaD1sKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiBSKF8saCx2KXtpZih0eXBlb2YgaD09InN0cmluZyImJmghPT0iInx8dHlwZW9mIGg9PSJudW1iZXIifHx0eXBlb2YgaD09ImJpZ2ludCIpcmV0dXJuIGg9Q3UoIiIraCxfLm1vZGUsdiksaC5yZXR1cm49XyxoO2lmKHR5cGVvZiBoPT0ib2JqZWN0IiYmaCE9PW51bGwpe3N3aXRjaChoLiQkdHlwZW9mKXtjYXNlIEg6cmV0dXJuIHY9JGwoaC50eXBlLGgua2V5LGgucHJvcHMsbnVsbCxfLm1vZGUsdiksYWwodixoKSx2LnJldHVybj1fLHY7Y2FzZSBjZTpyZXR1cm4gaD1xdShoLF8ubW9kZSx2KSxoLnJldHVybj1fLGg7Y2FzZSBXOnZhciB6PWguX2luaXQ7cmV0dXJuIGg9eihoLl9wYXlsb2FkKSxSKF8saCx2KX1pZihqZShoKXx8bmUoaCkpcmV0dXJuIGg9QWEoaCxfLm1vZGUsdixudWxsKSxoLnJldHVybj1fLGg7aWYodHlwZW9mIGgudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gUihfLGRpKGgpLHYpO2lmKGguJCR0eXBlb2Y9PT1TZSlyZXR1cm4gUihfLElsKF8saCksdik7aGkoXyxoKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBnKF8saCx2LHope3ZhciBqPWghPT1udWxsP2gua2V5Om51bGw7aWYodHlwZW9mIHY9PSJzdHJpbmciJiZ2IT09IiJ8fHR5cGVvZiB2PT0ibnVtYmVyInx8dHlwZW9mIHY9PSJiaWdpbnQiKXJldHVybiBqIT09bnVsbD9udWxsOmMoXyxoLCIiK3Yseik7aWYodHlwZW9mIHY9PSJvYmplY3QiJiZ2IT09bnVsbCl7c3dpdGNoKHYuJCR0eXBlb2Ype2Nhc2UgSDpyZXR1cm4gdi5rZXk9PT1qP3IoXyxoLHYseik6bnVsbDtjYXNlIGNlOnJldHVybiB2LmtleT09PWo/cChfLGgsdix6KTpudWxsO2Nhc2UgVzpyZXR1cm4gaj12Ll9pbml0LHY9aih2Ll9wYXlsb2FkKSxnKF8saCx2LHopfWlmKGplKHYpfHxuZSh2KSlyZXR1cm4gaiE9PW51bGw/bnVsbDpBKF8saCx2LHosbnVsbCk7aWYodHlwZW9mIHYudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZyhfLGgsZGkodikseik7aWYodi4kJHR5cGVvZj09PVNlKXJldHVybiBnKF8saCxJbChfLHYpLHopO2hpKF8sdil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYihfLGgsdix6LGope2lmKHR5cGVvZiB6PT0ic3RyaW5nIiYmeiE9PSIifHx0eXBlb2Ygej09Im51bWJlciJ8fHR5cGVvZiB6PT0iYmlnaW50IilyZXR1cm4gXz1fLmdldCh2KXx8bnVsbCxjKGgsXywiIit6LGopO2lmKHR5cGVvZiB6PT0ib2JqZWN0IiYmeiE9PW51bGwpe3N3aXRjaCh6LiQkdHlwZW9mKXtjYXNlIEg6cmV0dXJuIF89Xy5nZXQoei5rZXk9PT1udWxsP3Y6ei5rZXkpfHxudWxsLHIoaCxfLHosaik7Y2FzZSBjZTpyZXR1cm4gXz1fLmdldCh6LmtleT09PW51bGw/djp6LmtleSl8fG51bGwscChoLF8seixqKTtjYXNlIFc6dmFyICQ9ei5faW5pdDtyZXR1cm4gej0kKHouX3BheWxvYWQpLGIoXyxoLHYseixqKX1pZihqZSh6KXx8bmUoeikpcmV0dXJuIF89Xy5nZXQodil8fG51bGwsQShoLF8seixqLG51bGwpO2lmKHR5cGVvZiB6LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGIoXyxoLHYsZGkoeiksaik7aWYoei4kJHR5cGVvZj09PVNlKXJldHVybiBiKF8saCx2LElsKGgseiksaik7aGkoaCx6KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBrKF8saCx2LHope2Zvcih2YXIgaj1udWxsLCQ9bnVsbCxCPWgsWD1oPTAsTGU9bnVsbDtCIT09bnVsbCYmWDx2Lmxlbmd0aDtYKyspe0IuaW5kZXg+WD8oTGU9QixCPW51bGwpOkxlPUIuc2libGluZzt2YXIgaWU9ZyhfLEIsdltYXSx6KTtpZihpZT09PW51bGwpe0I9PT1udWxsJiYoQj1MZSk7YnJlYWt9ZSYmQiYmaWUuYWx0ZXJuYXRlPT09bnVsbCYmdChfLEIpLGg9aShpZSxoLFgpLCQ9PT1udWxsP2o9aWU6JC5zaWJsaW5nPWllLCQ9aWUsQj1MZX1pZihYPT09di5sZW5ndGgpcmV0dXJuIGEoXyxCKSx1ZSYmemEoXyxYKSxqO2lmKEI9PT1udWxsKXtmb3IoO1g8di5sZW5ndGg7WCsrKUI9UihfLHZbWF0seiksQiE9PW51bGwmJihoPWkoQixoLFgpLCQ9PT1udWxsP2o9QjokLnNpYmxpbmc9QiwkPUIpO3JldHVybiB1ZSYmemEoXyxYKSxqfWZvcihCPW4oQik7WDx2Lmxlbmd0aDtYKyspTGU9YihCLF8sWCx2W1hdLHopLExlIT09bnVsbCYmKGUmJkxlLmFsdGVybmF0ZSE9PW51bGwmJkIuZGVsZXRlKExlLmtleT09PW51bGw/WDpMZS5rZXkpLGg9aShMZSxoLFgpLCQ9PT1udWxsP2o9TGU6JC5zaWJsaW5nPUxlLCQ9TGUpO3JldHVybiBlJiZCLmZvckVhY2goZnVuY3Rpb24ocGEpe3JldHVybiB0KF8scGEpfSksdWUmJnphKF8sWCksan1mdW5jdGlvbiBHKF8saCx2LHope2lmKHY9PW51bGwpdGhyb3cgRXJyb3IocygxNTEpKTtmb3IodmFyIGo9bnVsbCwkPW51bGwsQj1oLFg9aD0wLExlPW51bGwsaWU9di5uZXh0KCk7QiE9PW51bGwmJiFpZS5kb25lO1grKyxpZT12Lm5leHQoKSl7Qi5pbmRleD5YPyhMZT1CLEI9bnVsbCk6TGU9Qi5zaWJsaW5nO3ZhciBwYT1nKF8sQixpZS52YWx1ZSx6KTtpZihwYT09PW51bGwpe0I9PT1udWxsJiYoQj1MZSk7YnJlYWt9ZSYmQiYmcGEuYWx0ZXJuYXRlPT09bnVsbCYmdChfLEIpLGg9aShwYSxoLFgpLCQ9PT1udWxsP2o9cGE6JC5zaWJsaW5nPXBhLCQ9cGEsQj1MZX1pZihpZS5kb25lKXJldHVybiBhKF8sQiksdWUmJnphKF8sWCksajtpZihCPT09bnVsbCl7Zm9yKDshaWUuZG9uZTtYKyssaWU9di5uZXh0KCkpaWU9UihfLGllLnZhbHVlLHopLGllIT09bnVsbCYmKGg9aShpZSxoLFgpLCQ9PT1udWxsP2o9aWU6JC5zaWJsaW5nPWllLCQ9aWUpO3JldHVybiB1ZSYmemEoXyxYKSxqfWZvcihCPW4oQik7IWllLmRvbmU7WCsrLGllPXYubmV4dCgpKWllPWIoQixfLFgsaWUudmFsdWUseiksaWUhPT1udWxsJiYoZSYmaWUuYWx0ZXJuYXRlIT09bnVsbCYmQi5kZWxldGUoaWUua2V5PT09bnVsbD9YOmllLmtleSksaD1pKGllLGgsWCksJD09PW51bGw/aj1pZTokLnNpYmxpbmc9aWUsJD1pZSk7cmV0dXJuIGUmJkIuZm9yRWFjaChmdW5jdGlvbih3Xyl7cmV0dXJuIHQoXyx3Xyl9KSx1ZSYmemEoXyxYKSxqfWZ1bmN0aW9uIGRlKF8saCx2LHope2lmKHR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwmJnYudHlwZT09PWhlJiZ2LmtleT09PW51bGwmJih2PXYucHJvcHMuY2hpbGRyZW4pLHR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwpe3N3aXRjaCh2LiQkdHlwZW9mKXtjYXNlIEg6ZTp7Zm9yKHZhciBqPXYua2V5O2ghPT1udWxsOyl7aWYoaC5rZXk9PT1qKXtpZihqPXYudHlwZSxqPT09aGUpe2lmKGgudGFnPT09Nyl7YShfLGguc2libGluZyksej1sKGgsdi5wcm9wcy5jaGlsZHJlbiksei5yZXR1cm49XyxfPXo7YnJlYWsgZX19ZWxzZSBpZihoLmVsZW1lbnRUeXBlPT09anx8dHlwZW9mIGo9PSJvYmplY3QiJiZqIT09bnVsbCYmai4kJHR5cGVvZj09PVcmJlVyKGopPT09aC50eXBlKXthKF8saC5zaWJsaW5nKSx6PWwoaCx2LnByb3BzKSxhbCh6LHYpLHoucmV0dXJuPV8sXz16O2JyZWFrIGV9YShfLGgpO2JyZWFrfWVsc2UgdChfLGgpO2g9aC5zaWJsaW5nfXYudHlwZT09PWhlPyh6PUFhKHYucHJvcHMuY2hpbGRyZW4sXy5tb2RlLHosdi5rZXkpLHoucmV0dXJuPV8sXz16KTooej0kbCh2LnR5cGUsdi5rZXksdi5wcm9wcyxudWxsLF8ubW9kZSx6KSxhbCh6LHYpLHoucmV0dXJuPV8sXz16KX1yZXR1cm4gdShfKTtjYXNlIGNlOmU6e2ZvcihqPXYua2V5O2ghPT1udWxsOyl7aWYoaC5rZXk9PT1qKWlmKGgudGFnPT09NCYmaC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PXYuY29udGFpbmVySW5mbyYmaC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT12LmltcGxlbWVudGF0aW9uKXthKF8saC5zaWJsaW5nKSx6PWwoaCx2LmNoaWxkcmVufHxbXSksei5yZXR1cm49XyxfPXo7YnJlYWsgZX1lbHNle2EoXyxoKTticmVha31lbHNlIHQoXyxoKTtoPWguc2libGluZ316PXF1KHYsXy5tb2RlLHopLHoucmV0dXJuPV8sXz16fXJldHVybiB1KF8pO2Nhc2UgVzpyZXR1cm4gaj12Ll9pbml0LHY9aih2Ll9wYXlsb2FkKSxkZShfLGgsdix6KX1pZihqZSh2KSlyZXR1cm4gayhfLGgsdix6KTtpZihuZSh2KSl7aWYoaj1uZSh2KSx0eXBlb2YgaiE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihzKDE1MCkpO3JldHVybiB2PWouY2FsbCh2KSxHKF8saCx2LHopfWlmKHR5cGVvZiB2LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGRlKF8saCxkaSh2KSx6KTtpZih2LiQkdHlwZW9mPT09U2UpcmV0dXJuIGRlKF8saCxJbChfLHYpLHopO2hpKF8sdil9cmV0dXJuIHR5cGVvZiB2PT0ic3RyaW5nIiYmdiE9PSIifHx0eXBlb2Ygdj09Im51bWJlciJ8fHR5cGVvZiB2PT0iYmlnaW50Ij8odj0iIit2LGghPT1udWxsJiZoLnRhZz09PTY/KGEoXyxoLnNpYmxpbmcpLHo9bChoLHYpLHoucmV0dXJuPV8sXz16KTooYShfLGgpLHo9Q3UodixfLm1vZGUseiksei5yZXR1cm49XyxfPXopLHUoXykpOmEoXyxoKX1yZXR1cm4gZnVuY3Rpb24oXyxoLHYseil7dHJ5e3RsPTA7dmFyIGo9ZGUoXyxoLHYseik7cmV0dXJuIHNuPW51bGwsan1jYXRjaChCKXtpZihCPT09Vm58fEI9PT10aSl0aHJvdyBCO3ZhciAkPWN0KDI5LEIsbnVsbCxfLm1vZGUpO3JldHVybiAkLmxhbmVzPXosJC5yZXR1cm49XywkfX19dmFyIHJuPUNyKCEwKSxxcj1DcighMSksZ3Q9TihudWxsKSxEdD1udWxsO2Z1bmN0aW9uIG5hKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO1UoQ2UsQ2UuY3VycmVudCYxKSxVKGd0LGUpLER0PT09bnVsbCYmKHQ9PT1udWxsfHxsbi5jdXJyZW50IT09bnVsbHx8dC5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihEdD1lKX1mdW5jdGlvbiBqcihlKXtpZihlLnRhZz09PTIyKXtpZihVKENlLENlLmN1cnJlbnQpLFUoZ3QsZSksRHQ9PT1udWxsKXt2YXIgdD1lLmFsdGVybmF0ZTt0IT09bnVsbCYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCYmKER0PWUpfX1lbHNlIGxhKCl9ZnVuY3Rpb24gbGEoKXtVKENlLENlLmN1cnJlbnQpLFUoZ3QsZ3QuY3VycmVudCl9ZnVuY3Rpb24gR3QoZSl7cShndCksRHQ9PT1lJiYoRHQ9bnVsbCkscShDZSl9dmFyIENlPU4oMCk7ZnVuY3Rpb24gbWkoZSl7Zm9yKHZhciB0PWU7dCE9PW51bGw7KXtpZih0LnRhZz09PTEzKXt2YXIgYT10Lm1lbW9pemVkU3RhdGU7aWYoYSE9PW51bGwmJihhPWEuZGVoeWRyYXRlZCxhPT09bnVsbHx8YS5kYXRhPT09IiQ/Inx8bm8oYSkpKXJldHVybiB0fWVsc2UgaWYodC50YWc9PT0xOSYmdC5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyIT09dm9pZCAwKXtpZigodC5mbGFncyYxMjgpIT09MClyZXR1cm4gdH1lbHNlIGlmKHQuY2hpbGQhPT1udWxsKXt0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtjb250aW51ZX1pZih0PT09ZSlicmVhaztmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fHQucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbWMoZSx0LGEsbil7dD1lLm1lbW9pemVkU3RhdGUsYT1hKG4sdCksYT1hPT1udWxsP3Q6TSh7fSx0LGEpLGUubWVtb2l6ZWRTdGF0ZT1hLGUubGFuZXM9PT0wJiYoZS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9YSl9dmFyIF9jPXtlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSx0LGEpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49ZnQoKSxsPWVhKG4pO2wucGF5bG9hZD10LGEhPW51bGwmJihsLmNhbGxiYWNrPWEpLHQ9dGEoZSxsLG4pLHQhPT1udWxsJiYoZHQodCxlLG4pLEpuKHQsZSxuKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSx0LGEpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49ZnQoKSxsPWVhKG4pO2wudGFnPTEsbC5wYXlsb2FkPXQsYSE9bnVsbCYmKGwuY2FsbGJhY2s9YSksdD10YShlLGwsbiksdCE9PW51bGwmJihkdCh0LGUsbiksSm4odCxlLG4pKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgYT1mdCgpLG49ZWEoYSk7bi50YWc9Mix0IT1udWxsJiYobi5jYWxsYmFjaz10KSx0PXRhKGUsbixhKSx0IT09bnVsbCYmKGR0KHQsZSxhKSxKbih0LGUsYSkpfX07ZnVuY3Rpb24gSHIoZSx0LGEsbixsLGksdSl7cmV0dXJuIGU9ZS5zdGF0ZU5vZGUsdHlwZW9mIGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPT0iZnVuY3Rpb24iP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKG4saSx1KTp0LnByb3RvdHlwZSYmdC5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQ/IUJuKGEsbil8fCFCbihsLGkpOiEwfWZ1bmN0aW9uIEJyKGUsdCxhLG4pe2U9dC5zdGF0ZSx0eXBlb2YgdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPT0iZnVuY3Rpb24iJiZ0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYSxuKSx0eXBlb2YgdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz09ImZ1bmN0aW9uIiYmdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhhLG4pLHQuc3RhdGUhPT1lJiZfYy5lbnF1ZXVlUmVwbGFjZVN0YXRlKHQsdC5zdGF0ZSxudWxsKX1mdW5jdGlvbiBVYShlLHQpe3ZhciBhPXQ7aWYoInJlZiJpbiB0KXthPXt9O2Zvcih2YXIgbiBpbiB0KW4hPT0icmVmIiYmKGFbbl09dFtuXSl9aWYoZT1lLmRlZmF1bHRQcm9wcyl7YT09PXQmJihhPU0oe30sYSkpO2Zvcih2YXIgbCBpbiBlKWFbbF09PT12b2lkIDAmJihhW2xdPWVbbF0pfXJldHVybiBhfXZhciBfaT10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIHQ9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJnR5cGVvZiBlLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsZSk7cmV0dXJufWNvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uIFlyKGUpe19pKGUpfWZ1bmN0aW9uIExyKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gR3IoZSl7X2koZSl9ZnVuY3Rpb24gdmkoZSx0KXt0cnl7dmFyIGE9ZS5vblVuY2F1Z2h0RXJyb3I7YSh0LnZhbHVlLHtjb21wb25lbnRTdGFjazp0LnN0YWNrfSl9Y2F0Y2gobil7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IG59KX19ZnVuY3Rpb24gWHIoZSx0LGEpe3RyeXt2YXIgbj1lLm9uQ2F1Z2h0RXJyb3I7bihhLnZhbHVlLHtjb21wb25lbnRTdGFjazphLnN0YWNrLGVycm9yQm91bmRhcnk6dC50YWc9PT0xP3Quc3RhdGVOb2RlOm51bGx9KX1jYXRjaChsKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgbH0pfX1mdW5jdGlvbiB2YyhlLHQsYSl7cmV0dXJuIGE9ZWEoYSksYS50YWc9MyxhLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sYS5jYWxsYmFjaz1mdW5jdGlvbigpe3ZpKGUsdCl9LGF9ZnVuY3Rpb24gUXIoZSl7cmV0dXJuIGU9ZWEoZSksZS50YWc9MyxlfWZ1bmN0aW9uIGtyKGUsdCxhLG4pe3ZhciBsPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYodHlwZW9mIGw9PSJmdW5jdGlvbiIpe3ZhciBpPW4udmFsdWU7ZS5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGwoaSl9LGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtYcih0LGEsbil9fXZhciB1PWEuc3RhdGVOb2RlO3UhPT1udWxsJiZ0eXBlb2YgdS5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtYcih0LGEsbiksdHlwZW9mIGwhPSJmdW5jdGlvbiImJihyYT09PW51bGw/cmE9bmV3IFNldChbdGhpc10pOnJhLmFkZCh0aGlzKSk7dmFyIGM9bi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKG4udmFsdWUse2NvbXBvbmVudFN0YWNrOmMhPT1udWxsP2M6IiJ9KX0pfWZ1bmN0aW9uIHdtKGUsdCxhLG4sbCl7aWYoYS5mbGFnc3w9MzI3NjgsbiE9PW51bGwmJnR5cGVvZiBuPT0ib2JqZWN0IiYmdHlwZW9mIG4udGhlbj09ImZ1bmN0aW9uIil7aWYodD1hLmFsdGVybmF0ZSx0IT09bnVsbCYmUW4odCxhLGwsITApLGE9Z3QuY3VycmVudCxhIT09bnVsbCl7c3dpdGNoKGEudGFnKXtjYXNlIDEzOnJldHVybiBEdD09PW51bGw/TGMoKTphLmFsdGVybmF0ZT09PW51bGwmJkFlPT09MCYmKEFlPTMpLGEuZmxhZ3MmPS0yNTcsYS5mbGFnc3w9NjU1MzYsYS5sYW5lcz1sLG49PT1adT9hLmZsYWdzfD0xNjM4NDoodD1hLnVwZGF0ZVF1ZXVlLHQ9PT1udWxsP2EudXBkYXRlUXVldWU9bmV3IFNldChbbl0pOnQuYWRkKG4pLFhjKGUsbixsKSksITE7Y2FzZSAyMjpyZXR1cm4gYS5mbGFnc3w9NjU1MzYsbj09PVp1P2EuZmxhZ3N8PTE2Mzg0Oih0PWEudXBkYXRlUXVldWUsdD09PW51bGw/KHQ9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtuXSl9LGEudXBkYXRlUXVldWU9dCk6KGE9dC5yZXRyeVF1ZXVlLGE9PT1udWxsP3QucmV0cnlRdWV1ZT1uZXcgU2V0KFtuXSk6YS5hZGQobikpLFhjKGUsbixsKSksITF9dGhyb3cgRXJyb3Iocyg0MzUsYS50YWcpKX1yZXR1cm4gWGMoZSxuLGwpLExjKCksITF9aWYodWUpcmV0dXJuIHQ9Z3QuY3VycmVudCx0IT09bnVsbD8oKHQuZmxhZ3MmNjU1MzYpPT09MCYmKHQuZmxhZ3N8PTI1NiksdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1sLG4hPT1CdSYmKGU9RXJyb3Iocyg0MjIpLHtjYXVzZTpufSksWG4oX3QoZSxhKSkpKToobiE9PUJ1JiYodD1FcnJvcihzKDQyMykse2NhdXNlOm59KSxYbihfdCh0LGEpKSksZT1lLmN1cnJlbnQuYWx0ZXJuYXRlLGUuZmxhZ3N8PTY1NTM2LGwmPS1sLGUubGFuZXN8PWwsbj1fdChuLGEpLGw9dmMoZS5zdGF0ZU5vZGUsbixsKSxKdShlLGwpLEFlIT09NCYmKEFlPTIpKSwhMTt2YXIgaT1FcnJvcihzKDUyMCkse2NhdXNlOm59KTtpZihpPV90KGksYSksc2w9PT1udWxsP3NsPVtpXTpzbC5wdXNoKGkpLEFlIT09NCYmKEFlPTIpLHQ9PT1udWxsKXJldHVybiEwO249X3QobixhKSxhPXQ7ZG97c3dpdGNoKGEudGFnKXtjYXNlIDM6cmV0dXJuIGEuZmxhZ3N8PTY1NTM2LGU9bCYtbCxhLmxhbmVzfD1lLGU9dmMoYS5zdGF0ZU5vZGUsbixlKSxKdShhLGUpLCExO2Nhc2UgMTppZih0PWEudHlwZSxpPWEuc3RhdGVOb2RlLChhLmZsYWdzJjEyOCk9PT0wJiYodHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHxpIT09bnVsbCYmdHlwZW9mIGkuY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihyYT09PW51bGx8fCFyYS5oYXMoaSkpKSlyZXR1cm4gYS5mbGFnc3w9NjU1MzYsbCY9LWwsYS5sYW5lc3w9bCxsPVFyKGwpLGtyKGwsZSxhLG4pLEp1KGEsbCksITF9YT1hLnJldHVybn13aGlsZShhIT09bnVsbCk7cmV0dXJuITF9dmFyIFpyPUVycm9yKHMoNDYxKSksQmU9ITE7ZnVuY3Rpb24gR2UoZSx0LGEsbil7dC5jaGlsZD1lPT09bnVsbD9xcih0LG51bGwsYSxuKTpybih0LGUuY2hpbGQsYSxuKX1mdW5jdGlvbiBWcihlLHQsYSxuLGwpe2E9YS5yZW5kZXI7dmFyIGk9dC5yZWY7aWYoInJlZiJpbiBuKXt2YXIgdT17fTtmb3IodmFyIGMgaW4gbiljIT09InJlZiImJih1W2NdPW5bY10pfWVsc2UgdT1uO3JldHVybiBPYSh0KSxuPUl1KGUsdCxhLHUsaSxsKSxjPWVjKCksZSE9PW51bGwmJiFCZT8odGMoZSx0LGwpLFh0KGUsdCxsKSk6KHVlJiZjJiZqdSh0KSx0LmZsYWdzfD0xLEdlKGUsdCxuLGwpLHQuY2hpbGQpfWZ1bmN0aW9uIEtyKGUsdCxhLG4sbCl7aWYoZT09PW51bGwpe3ZhciBpPWEudHlwZTtyZXR1cm4gdHlwZW9mIGk9PSJmdW5jdGlvbiImJiFVdShpKSYmaS5kZWZhdWx0UHJvcHM9PT12b2lkIDAmJmEuY29tcGFyZT09PW51bGw/KHQudGFnPTE1LHQudHlwZT1pLEpyKGUsdCxpLG4sbCkpOihlPSRsKGEudHlwZSxudWxsLG4sdCx0Lm1vZGUsbCksZS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWUpfWlmKGk9ZS5jaGlsZCwhQWMoZSxsKSl7dmFyIHU9aS5tZW1vaXplZFByb3BzO2lmKGE9YS5jb21wYXJlLGE9YSE9PW51bGw/YTpCbixhKHUsbikmJmUucmVmPT09dC5yZWYpcmV0dXJuIFh0KGUsdCxsKX1yZXR1cm4gdC5mbGFnc3w9MSxlPXF0KGksbiksZS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWV9ZnVuY3Rpb24gSnIoZSx0LGEsbixsKXtpZihlIT09bnVsbCl7dmFyIGk9ZS5tZW1vaXplZFByb3BzO2lmKEJuKGksbikmJmUucmVmPT09dC5yZWYpaWYoQmU9ITEsdC5wZW5kaW5nUHJvcHM9bj1pLEFjKGUsbCkpKGUuZmxhZ3MmMTMxMDcyKSE9PTAmJihCZT0hMCk7ZWxzZSByZXR1cm4gdC5sYW5lcz1lLmxhbmVzLFh0KGUsdCxsKX1yZXR1cm4geWMoZSx0LGEsbixsKX1mdW5jdGlvbiAkcihlLHQsYSl7dmFyIG49dC5wZW5kaW5nUHJvcHMsbD1uLmNoaWxkcmVuLGk9ZSE9PW51bGw/ZS5tZW1vaXplZFN0YXRlOm51bGw7aWYobi5tb2RlPT09ImhpZGRlbiIpe2lmKCh0LmZsYWdzJjEyOCkhPT0wKXtpZihuPWkhPT1udWxsP2kuYmFzZUxhbmVzfGE6YSxlIT09bnVsbCl7Zm9yKGw9dC5jaGlsZD1lLmNoaWxkLGk9MDtsIT09bnVsbDspaT1pfGwubGFuZXN8bC5jaGlsZExhbmVzLGw9bC5zaWJsaW5nO3QuY2hpbGRMYW5lcz1pJn5ufWVsc2UgdC5jaGlsZExhbmVzPTAsdC5jaGlsZD1udWxsO3JldHVybiBXcihlLHQsbixhKX1pZigoYSY1MzY4NzA5MTIpIT09MCl0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsfSxlIT09bnVsbCYmZWkodCxpIT09bnVsbD9pLmNhY2hlUG9vbDpudWxsKSxpIT09bnVsbD9Kcyh0LGkpOld1KCksanIodCk7ZWxzZSByZXR1cm4gdC5sYW5lcz10LmNoaWxkTGFuZXM9NTM2ODcwOTEyLFdyKGUsdCxpIT09bnVsbD9pLmJhc2VMYW5lc3xhOmEsYSl9ZWxzZSBpIT09bnVsbD8oZWkodCxpLmNhY2hlUG9vbCksSnModCxpKSxsYSgpLHQubWVtb2l6ZWRTdGF0ZT1udWxsKTooZSE9PW51bGwmJmVpKHQsbnVsbCksV3UoKSxsYSgpKTtyZXR1cm4gR2UoZSx0LGwsYSksdC5jaGlsZH1mdW5jdGlvbiBXcihlLHQsYSxuKXt2YXIgbD1rdSgpO3JldHVybiBsPWw9PT1udWxsP251bGw6e3BhcmVudDpVZS5fY3VycmVudFZhbHVlLHBvb2w6bH0sdC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bH0sZSE9PW51bGwmJmVpKHQsbnVsbCksV3UoKSxqcih0KSxlIT09bnVsbCYmUW4oZSx0LG4sITApLG51bGx9ZnVuY3Rpb24geWkoZSx0KXt2YXIgYT10LnJlZjtpZihhPT09bnVsbCllIT09bnVsbCYmZS5yZWYhPT1udWxsJiYodC5mbGFnc3w9NDE5NDgxNik7ZWxzZXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJvYmplY3QiKXRocm93IEVycm9yKHMoMjg0KSk7KGU9PT1udWxsfHxlLnJlZiE9PWEpJiYodC5mbGFnc3w9NDE5NDgxNil9fWZ1bmN0aW9uIHljKGUsdCxhLG4sbCl7cmV0dXJuIE9hKHQpLGE9SXUoZSx0LGEsbix2b2lkIDAsbCksbj1lYygpLGUhPT1udWxsJiYhQmU/KHRjKGUsdCxsKSxYdChlLHQsbCkpOih1ZSYmbiYmanUodCksdC5mbGFnc3w9MSxHZShlLHQsYSxsKSx0LmNoaWxkKX1mdW5jdGlvbiBGcihlLHQsYSxuLGwsaSl7cmV0dXJuIE9hKHQpLHQudXBkYXRlUXVldWU9bnVsbCxhPVdzKHQsbixhLGwpLCRzKGUpLG49ZWMoKSxlIT09bnVsbCYmIUJlPyh0YyhlLHQsaSksWHQoZSx0LGkpKToodWUmJm4mJmp1KHQpLHQuZmxhZ3N8PTEsR2UoZSx0LGEsaSksdC5jaGlsZCl9ZnVuY3Rpb24gUHIoZSx0LGEsbixsKXtpZihPYSh0KSx0LnN0YXRlTm9kZT09PW51bGwpe3ZhciBpPUlhLHU9YS5jb250ZXh0VHlwZTt0eXBlb2YgdT09Im9iamVjdCImJnUhPT1udWxsJiYoaT1WZSh1KSksaT1uZXcgYShuLGkpLHQubWVtb2l6ZWRTdGF0ZT1pLnN0YXRlIT09bnVsbCYmaS5zdGF0ZSE9PXZvaWQgMD9pLnN0YXRlOm51bGwsaS51cGRhdGVyPV9jLHQuc3RhdGVOb2RlPWksaS5fcmVhY3RJbnRlcm5hbHM9dCxpPXQuc3RhdGVOb2RlLGkucHJvcHM9bixpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxpLnJlZnM9e30sVnUodCksdT1hLmNvbnRleHRUeXBlLGkuY29udGV4dD10eXBlb2YgdT09Im9iamVjdCImJnUhPT1udWxsP1ZlKHUpOklhLGkuc3RhdGU9dC5tZW1vaXplZFN0YXRlLHU9YS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsdHlwZW9mIHU9PSJmdW5jdGlvbiImJihtYyh0LGEsdSxuKSxpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGEuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPT0iZnVuY3Rpb24ifHx0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uInx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodT1pLnN0YXRlLHR5cGVvZiBpLmNvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmaS5jb21wb25lbnRXaWxsTW91bnQoKSx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSx1IT09aS5zdGF0ZSYmX2MuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpLGkuc3RhdGUsbnVsbCksV24odCxuLGksbCksJG4oKSxpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJih0LmZsYWdzfD00MTk0MzA4KSxuPSEwfWVsc2UgaWYoZT09PW51bGwpe2k9dC5zdGF0ZU5vZGU7dmFyIGM9dC5tZW1vaXplZFByb3BzLHI9VWEoYSxjKTtpLnByb3BzPXI7dmFyIHA9aS5jb250ZXh0LEE9YS5jb250ZXh0VHlwZTt1PUlhLHR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGwmJih1PVZlKEEpKTt2YXIgUj1hLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztBPXR5cGVvZiBSPT0iZnVuY3Rpb24ifHx0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIixjPXQucGVuZGluZ1Byb3BzIT09YyxBfHx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KGN8fHAhPT11KSYmQnIodCxpLG4sdSksSXQ9ITE7dmFyIGc9dC5tZW1vaXplZFN0YXRlO2kuc3RhdGU9ZyxXbih0LG4saSxsKSwkbigpLHA9dC5tZW1vaXplZFN0YXRlLGN8fGchPT1wfHxJdD8odHlwZW9mIFI9PSJmdW5jdGlvbiImJihtYyh0LGEsUixuKSxwPXQubWVtb2l6ZWRTdGF0ZSksKHI9SXR8fEhyKHQsYSxyLG4sZyxwLHUpKT8oQXx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZpLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSx0eXBlb2YgaS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpKToodHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9bix0Lm1lbW9pemVkU3RhdGU9cCksaS5wcm9wcz1uLGkuc3RhdGU9cCxpLmNvbnRleHQ9dSxuPXIpOih0eXBlb2YgaS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpLG49ITEpfWVsc2V7aT10LnN0YXRlTm9kZSxLdShlLHQpLHU9dC5tZW1vaXplZFByb3BzLEE9VWEoYSx1KSxpLnByb3BzPUEsUj10LnBlbmRpbmdQcm9wcyxnPWkuY29udGV4dCxwPWEuY29udGV4dFR5cGUscj1JYSx0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsJiYocj1WZShwKSksYz1hLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywocD10eXBlb2YgYz09ImZ1bmN0aW9uInx8dHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiIpfHx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KHUhPT1SfHxnIT09cikmJkJyKHQsaSxuLHIpLEl0PSExLGc9dC5tZW1vaXplZFN0YXRlLGkuc3RhdGU9ZyxXbih0LG4saSxsKSwkbigpO3ZhciBiPXQubWVtb2l6ZWRTdGF0ZTt1IT09Unx8ZyE9PWJ8fEl0fHxlIT09bnVsbCYmZS5kZXBlbmRlbmNpZXMhPT1udWxsJiZQbChlLmRlcGVuZGVuY2llcyk/KHR5cGVvZiBjPT0iZnVuY3Rpb24iJiYobWModCxhLGMsbiksYj10Lm1lbW9pemVkU3RhdGUpLChBPUl0fHxIcih0LGEsQSxuLGcsYixyKXx8ZSE9PW51bGwmJmUuZGVwZW5kZW5jaWVzIT09bnVsbCYmUGwoZS5kZXBlbmRlbmNpZXMpKT8ocHx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiImJnR5cGVvZiBpLmNvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiJ8fCh0eXBlb2YgaS5jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZpLmNvbXBvbmVudFdpbGxVcGRhdGUobixiLHIpLHR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKG4sYixyKSksdHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlPT0iZnVuY3Rpb24iJiYodC5mbGFnc3w9NCksdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiImJih0LmZsYWdzfD0xMDI0KSk6KHR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0ZSE9ImZ1bmN0aW9uInx8dT09PWUubWVtb2l6ZWRQcm9wcyYmZz09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLHR5cGVvZiBpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIT0iZnVuY3Rpb24ifHx1PT09ZS5tZW1vaXplZFByb3BzJiZnPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksdC5tZW1vaXplZFByb3BzPW4sdC5tZW1vaXplZFN0YXRlPWIpLGkucHJvcHM9bixpLnN0YXRlPWIsaS5jb250ZXh0PXIsbj1BKToodHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHx1PT09ZS5tZW1vaXplZFByb3BzJiZnPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fHU9PT1lLm1lbW9pemVkUHJvcHMmJmc9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxuPSExKX1yZXR1cm4gaT1uLHlpKGUsdCksbj0odC5mbGFncyYxMjgpIT09MCxpfHxuPyhpPXQuc3RhdGVOb2RlLGE9biYmdHlwZW9mIGEuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIT0iZnVuY3Rpb24iP251bGw6aS5yZW5kZXIoKSx0LmZsYWdzfD0xLGUhPT1udWxsJiZuPyh0LmNoaWxkPXJuKHQsZS5jaGlsZCxudWxsLGwpLHQuY2hpbGQ9cm4odCxudWxsLGEsbCkpOkdlKGUsdCxhLGwpLHQubWVtb2l6ZWRTdGF0ZT1pLnN0YXRlLGU9dC5jaGlsZCk6ZT1YdChlLHQsbCksZX1mdW5jdGlvbiBJcihlLHQsYSxuKXtyZXR1cm4gR24oKSx0LmZsYWdzfD0yNTYsR2UoZSx0LGEsbiksdC5jaGlsZH12YXIgcGM9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowLGh5ZHJhdGlvbkVycm9yczpudWxsfTtmdW5jdGlvbiBnYyhlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOkxzKCl9fWZ1bmN0aW9uIGJjKGUsdCxhKXtyZXR1cm4gZT1lIT09bnVsbD9lLmNoaWxkTGFuZXMmfmE6MCx0JiYoZXw9YnQpLGV9ZnVuY3Rpb24gZWYoZSx0LGEpe3ZhciBuPXQucGVuZGluZ1Byb3BzLGw9ITEsaT0odC5mbGFncyYxMjgpIT09MCx1O2lmKCh1PWkpfHwodT1lIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlPT09bnVsbD8hMTooQ2UuY3VycmVudCYyKSE9PTApLHUmJihsPSEwLHQuZmxhZ3MmPS0xMjkpLHU9KHQuZmxhZ3MmMzIpIT09MCx0LmZsYWdzJj0tMzMsZT09PW51bGwpe2lmKHVlKXtpZihsP25hKHQpOmxhKCksdWUpe3ZhciBjPUVlLHI7aWYocj1jKXtlOntmb3Iocj1jLGM9UnQ7ci5ub2RlVHlwZSE9PTg7KXtpZighYyl7Yz1udWxsO2JyZWFrIGV9aWYocj14dChyLm5leHRTaWJsaW5nKSxyPT09bnVsbCl7Yz1udWxsO2JyZWFrIGV9fWM9cn1jIT09bnVsbD8odC5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmMsdHJlZUNvbnRleHQ6eGEhPT1udWxsP3tpZDpqdCxvdmVyZmxvdzpIdH06bnVsbCxyZXRyeUxhbmU6NTM2ODcwOTEyLGh5ZHJhdGlvbkVycm9yczpudWxsfSxyPWN0KDE4LG51bGwsbnVsbCwwKSxyLnN0YXRlTm9kZT1jLHIucmV0dXJuPXQsdC5jaGlsZD1yLEplPXQsRWU9bnVsbCxyPSEwKTpyPSExfXJ8fERhKHQpfWlmKGM9dC5tZW1vaXplZFN0YXRlLGMhPT1udWxsJiYoYz1jLmRlaHlkcmF0ZWQsYyE9PW51bGwpKXJldHVybiBubyhjKT90LmxhbmVzPTMyOnQubGFuZXM9NTM2ODcwOTEyLG51bGw7R3QodCl9cmV0dXJuIGM9bi5jaGlsZHJlbixuPW4uZmFsbGJhY2ssbD8obGEoKSxsPXQubW9kZSxjPXBpKHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmN9LGwpLG49QWEobixsLGEsbnVsbCksYy5yZXR1cm49dCxuLnJldHVybj10LGMuc2libGluZz1uLHQuY2hpbGQ9YyxsPXQuY2hpbGQsbC5tZW1vaXplZFN0YXRlPWdjKGEpLGwuY2hpbGRMYW5lcz1iYyhlLHUsYSksdC5tZW1vaXplZFN0YXRlPXBjLG4pOihuYSh0KSxTYyh0LGMpKX1pZihyPWUubWVtb2l6ZWRTdGF0ZSxyIT09bnVsbCYmKGM9ci5kZWh5ZHJhdGVkLGMhPT1udWxsKSl7aWYoaSl0LmZsYWdzJjI1Nj8obmEodCksdC5mbGFncyY9LTI1Nyx0PVRjKGUsdCxhKSk6dC5tZW1vaXplZFN0YXRlIT09bnVsbD8obGEoKSx0LmNoaWxkPWUuY2hpbGQsdC5mbGFnc3w9MTI4LHQ9bnVsbCk6KGxhKCksbD1uLmZhbGxiYWNrLGM9dC5tb2RlLG49cGkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOm4uY2hpbGRyZW59LGMpLGw9QWEobCxjLGEsbnVsbCksbC5mbGFnc3w9MixuLnJldHVybj10LGwucmV0dXJuPXQsbi5zaWJsaW5nPWwsdC5jaGlsZD1uLHJuKHQsZS5jaGlsZCxudWxsLGEpLG49dC5jaGlsZCxuLm1lbW9pemVkU3RhdGU9Z2MoYSksbi5jaGlsZExhbmVzPWJjKGUsdSxhKSx0Lm1lbW9pemVkU3RhdGU9cGMsdD1sKTtlbHNlIGlmKG5hKHQpLG5vKGMpKXtpZih1PWMubmV4dFNpYmxpbmcmJmMubmV4dFNpYmxpbmcuZGF0YXNldCx1KXZhciBwPXUuZGdzdDt1PXAsbj1FcnJvcihzKDQxOSkpLG4uc3RhY2s9IiIsbi5kaWdlc3Q9dSxYbih7dmFsdWU6bixzb3VyY2U6bnVsbCxzdGFjazpudWxsfSksdD1UYyhlLHQsYSl9ZWxzZSBpZihCZXx8UW4oZSx0LGEsITEpLHU9KGEmZS5jaGlsZExhbmVzKSE9PTAsQmV8fHUpe2lmKHU9eWUsdSE9PW51bGwmJihuPWEmLWEsbj0obiY0MikhPT0wPzE6bHUobiksbj0obiYodS5zdXNwZW5kZWRMYW5lc3xhKSkhPT0wPzA6bixuIT09MCYmbiE9PXIucmV0cnlMYW5lKSl0aHJvdyByLnJldHJ5TGFuZT1uLFBhKGUsbiksZHQodSxlLG4pLFpyO2MuZGF0YT09PSIkPyJ8fExjKCksdD1UYyhlLHQsYSl9ZWxzZSBjLmRhdGE9PT0iJD8iPyh0LmZsYWdzfD0xOTIsdC5jaGlsZD1lLmNoaWxkLHQ9bnVsbCk6KGU9ci50cmVlQ29udGV4dCxFZT14dChjLm5leHRTaWJsaW5nKSxKZT10LHVlPSEwLFJhPW51bGwsUnQ9ITEsZSE9PW51bGwmJih5dFtwdCsrXT1qdCx5dFtwdCsrXT1IdCx5dFtwdCsrXT14YSxqdD1lLmlkLEh0PWUub3ZlcmZsb3cseGE9dCksdD1TYyh0LG4uY2hpbGRyZW4pLHQuZmxhZ3N8PTQwOTYpO3JldHVybiB0fXJldHVybiBsPyhsYSgpLGw9bi5mYWxsYmFjayxjPXQubW9kZSxyPWUuY2hpbGQscD1yLnNpYmxpbmcsbj1xdChyLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOm4uY2hpbGRyZW59KSxuLnN1YnRyZWVGbGFncz1yLnN1YnRyZWVGbGFncyY2NTAxMTcxMixwIT09bnVsbD9sPXF0KHAsbCk6KGw9QWEobCxjLGEsbnVsbCksbC5mbGFnc3w9MiksbC5yZXR1cm49dCxuLnJldHVybj10LG4uc2libGluZz1sLHQuY2hpbGQ9bixuPWwsbD10LmNoaWxkLGM9ZS5jaGlsZC5tZW1vaXplZFN0YXRlLGM9PT1udWxsP2M9Z2MoYSk6KHI9Yy5jYWNoZVBvb2wsciE9PW51bGw/KHA9VWUuX2N1cnJlbnRWYWx1ZSxyPXIucGFyZW50IT09cD97cGFyZW50OnAscG9vbDpwfTpyKTpyPUxzKCksYz17YmFzZUxhbmVzOmMuYmFzZUxhbmVzfGEsY2FjaGVQb29sOnJ9KSxsLm1lbW9pemVkU3RhdGU9YyxsLmNoaWxkTGFuZXM9YmMoZSx1LGEpLHQubWVtb2l6ZWRTdGF0ZT1wYyxuKToobmEodCksYT1lLmNoaWxkLGU9YS5zaWJsaW5nLGE9cXQoYSx7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46bi5jaGlsZHJlbn0pLGEucmV0dXJuPXQsYS5zaWJsaW5nPW51bGwsZSE9PW51bGwmJih1PXQuZGVsZXRpb25zLHU9PT1udWxsPyh0LmRlbGV0aW9ucz1bZV0sdC5mbGFnc3w9MTYpOnUucHVzaChlKSksdC5jaGlsZD1hLHQubWVtb2l6ZWRTdGF0ZT1udWxsLGEpfWZ1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHQ9cGkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOnR9LGUubW9kZSksdC5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gcGkoZSx0KXtyZXR1cm4gZT1jdCgyMixlLG51bGwsdCksZS5sYW5lcz0wLGUuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9LGV9ZnVuY3Rpb24gVGMoZSx0LGEpe3JldHVybiBybih0LGUuY2hpbGQsbnVsbCxhKSxlPVNjKHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLGUuZmxhZ3N8PTIsdC5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiB0ZihlLHQsYSl7ZS5sYW5lc3w9dDt2YXIgbj1lLmFsdGVybmF0ZTtuIT09bnVsbCYmKG4ubGFuZXN8PXQpLEx1KGUucmV0dXJuLHQsYSl9ZnVuY3Rpb24gRWMoZSx0LGEsbixsKXt2YXIgaT1lLm1lbW9pemVkU3RhdGU7aT09PW51bGw/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6bix0YWlsOmEsdGFpbE1vZGU6bH06KGkuaXNCYWNrd2FyZHM9dCxpLnJlbmRlcmluZz1udWxsLGkucmVuZGVyaW5nU3RhcnRUaW1lPTAsaS5sYXN0PW4saS50YWlsPWEsaS50YWlsTW9kZT1sKX1mdW5jdGlvbiBhZihlLHQsYSl7dmFyIG49dC5wZW5kaW5nUHJvcHMsbD1uLnJldmVhbE9yZGVyLGk9bi50YWlsO2lmKEdlKGUsdCxuLmNoaWxkcmVuLGEpLG49Q2UuY3VycmVudCwobiYyKSE9PTApbj1uJjF8Mix0LmZsYWdzfD0xMjg7ZWxzZXtpZihlIT09bnVsbCYmKGUuZmxhZ3MmMTI4KSE9PTApZTpmb3IoZT10LmNoaWxkO2UhPT1udWxsOyl7aWYoZS50YWc9PT0xMyllLm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0ZihlLGEsdCk7ZWxzZSBpZihlLnRhZz09PTE5KXRmKGUsYSx0KTtlbHNlIGlmKGUuY2hpbGQhPT1udWxsKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhayBlO2Zvcig7ZS5zaWJsaW5nPT09bnVsbDspe2lmKGUucmV0dXJuPT09bnVsbHx8ZS5yZXR1cm49PT10KWJyZWFrIGU7ZT1lLnJldHVybn1lLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfW4mPTF9c3dpdGNoKFUoQ2UsbiksbCl7Y2FzZSJmb3J3YXJkcyI6Zm9yKGE9dC5jaGlsZCxsPW51bGw7YSE9PW51bGw7KWU9YS5hbHRlcm5hdGUsZSE9PW51bGwmJm1pKGUpPT09bnVsbCYmKGw9YSksYT1hLnNpYmxpbmc7YT1sLGE9PT1udWxsPyhsPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobD1hLnNpYmxpbmcsYS5zaWJsaW5nPW51bGwpLEVjKHQsITEsbCxhLGkpO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpmb3IoYT1udWxsLGw9dC5jaGlsZCx0LmNoaWxkPW51bGw7bCE9PW51bGw7KXtpZihlPWwuYWx0ZXJuYXRlLGUhPT1udWxsJiZtaShlKT09PW51bGwpe3QuY2hpbGQ9bDticmVha31lPWwuc2libGluZyxsLnNpYmxpbmc9YSxhPWwsbD1lfUVjKHQsITAsYSxudWxsLGkpO2JyZWFrO2Nhc2UidG9nZXRoZXIiOkVjKHQsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDp0Lm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBYdChlLHQsYSl7aWYoZSE9PW51bGwmJih0LmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyksc2F8PXQubGFuZXMsKGEmdC5jaGlsZExhbmVzKT09PTApaWYoZSE9PW51bGwpe2lmKFFuKGUsdCxhLCExKSwoYSZ0LmNoaWxkTGFuZXMpPT09MClyZXR1cm4gbnVsbH1lbHNlIHJldHVybiBudWxsO2lmKGUhPT1udWxsJiZ0LmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcihzKDE1MykpO2lmKHQuY2hpbGQhPT1udWxsKXtmb3IoZT10LmNoaWxkLGE9cXQoZSxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1hLGEucmV0dXJuPXQ7ZS5zaWJsaW5nIT09bnVsbDspZT1lLnNpYmxpbmcsYT1hLnNpYmxpbmc9cXQoZSxlLnBlbmRpbmdQcm9wcyksYS5yZXR1cm49dDthLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBBYyhlLHQpe3JldHVybihlLmxhbmVzJnQpIT09MD8hMDooZT1lLmRlcGVuZGVuY2llcywhIShlIT09bnVsbCYmUGwoZSkpKX1mdW5jdGlvbiBVbShlLHQsYSl7c3dpdGNoKHQudGFnKXtjYXNlIDM6cGUodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxQdCh0LFVlLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksR24oKTticmVhaztjYXNlIDI3OmNhc2UgNTpJaSh0KTticmVhaztjYXNlIDQ6cGUodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOlB0KHQsdC50eXBlLHQubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAxMzp2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobiE9PW51bGwpcmV0dXJuIG4uZGVoeWRyYXRlZCE9PW51bGw/KG5hKHQpLHQuZmxhZ3N8PTEyOCxudWxsKTooYSZ0LmNoaWxkLmNoaWxkTGFuZXMpIT09MD9lZihlLHQsYSk6KG5hKHQpLGU9WHQoZSx0LGEpLGUhPT1udWxsP2Uuc2libGluZzpudWxsKTtuYSh0KTticmVhaztjYXNlIDE5OnZhciBsPShlLmZsYWdzJjEyOCkhPT0wO2lmKG49KGEmdC5jaGlsZExhbmVzKSE9PTAsbnx8KFFuKGUsdCxhLCExKSxuPShhJnQuY2hpbGRMYW5lcykhPT0wKSxsKXtpZihuKXJldHVybiBhZihlLHQsYSk7dC5mbGFnc3w9MTI4fWlmKGw9dC5tZW1vaXplZFN0YXRlLGwhPT1udWxsJiYobC5yZW5kZXJpbmc9bnVsbCxsLnRhaWw9bnVsbCxsLmxhc3RFZmZlY3Q9bnVsbCksVShDZSxDZS5jdXJyZW50KSxuKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gdC5sYW5lcz0wLCRyKGUsdCxhKTtjYXNlIDI0OlB0KHQsVWUsZS5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gWHQoZSx0LGEpfWZ1bmN0aW9uIG5mKGUsdCxhKXtpZihlIT09bnVsbClpZihlLm1lbW9pemVkUHJvcHMhPT10LnBlbmRpbmdQcm9wcylCZT0hMDtlbHNle2lmKCFBYyhlLGEpJiYodC5mbGFncyYxMjgpPT09MClyZXR1cm4gQmU9ITEsVW0oZSx0LGEpO0JlPShlLmZsYWdzJjEzMTA3MikhPT0wfWVsc2UgQmU9ITEsdWUmJih0LmZsYWdzJjEwNDg1NzYpIT09MCYmVXModCxGbCx0LmluZGV4KTtzd2l0Y2godC5sYW5lcz0wLHQudGFnKXtjYXNlIDE2OmU6e2U9dC5wZW5kaW5nUHJvcHM7dmFyIG49dC5lbGVtZW50VHlwZSxsPW4uX2luaXQ7aWYobj1sKG4uX3BheWxvYWQpLHQudHlwZT1uLHR5cGVvZiBuPT0iZnVuY3Rpb24iKVV1KG4pPyhlPVVhKG4sZSksdC50YWc9MSx0PVByKG51bGwsdCxuLGUsYSkpOih0LnRhZz0wLHQ9eWMobnVsbCx0LG4sZSxhKSk7ZWxzZXtpZihuIT1udWxsKXtpZihsPW4uJCR0eXBlb2YsbD09PXZlKXt0LnRhZz0xMSx0PVZyKG51bGwsdCxuLGUsYSk7YnJlYWsgZX1lbHNlIGlmKGw9PT1PZSl7dC50YWc9MTQsdD1LcihudWxsLHQsbixlLGEpO2JyZWFrIGV9fXRocm93IHQ9JGUobil8fG4sRXJyb3IocygzMDYsdCwiIikpfX1yZXR1cm4gdDtjYXNlIDA6cmV0dXJuIHljKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSAxOnJldHVybiBuPXQudHlwZSxsPVVhKG4sdC5wZW5kaW5nUHJvcHMpLFByKGUsdCxuLGwsYSk7Y2FzZSAzOmU6e2lmKHBlKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZT09PW51bGwpdGhyb3cgRXJyb3IocygzODcpKTtuPXQucGVuZGluZ1Byb3BzO3ZhciBpPXQubWVtb2l6ZWRTdGF0ZTtsPWkuZWxlbWVudCxLdShlLHQpLFduKHQsbixudWxsLGEpO3ZhciB1PXQubWVtb2l6ZWRTdGF0ZTtpZihuPXUuY2FjaGUsUHQodCxVZSxuKSxuIT09aS5jYWNoZSYmR3UodCxbVWVdLGEsITApLCRuKCksbj11LmVsZW1lbnQsaS5pc0RlaHlkcmF0ZWQpaWYoaT17ZWxlbWVudDpuLGlzRGVoeWRyYXRlZDohMSxjYWNoZTp1LmNhY2hlfSx0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1pLHQubWVtb2l6ZWRTdGF0ZT1pLHQuZmxhZ3MmMjU2KXt0PUlyKGUsdCxuLGEpO2JyZWFrIGV9ZWxzZSBpZihuIT09bCl7bD1fdChFcnJvcihzKDQyNCkpLHQpLFhuKGwpLHQ9SXIoZSx0LG4sYSk7YnJlYWsgZX1lbHNlIGZvcihlPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sZS5ub2RlVHlwZT09PTk/ZT1lLmJvZHk6ZT1lLm5vZGVOYW1lPT09IkhUTUwiP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsRWU9eHQoZS5maXJzdENoaWxkKSxKZT10LHVlPSEwLFJhPW51bGwsUnQ9ITAsYT1xcih0LG51bGwsbixhKSx0LmNoaWxkPWE7YTspYS5mbGFncz1hLmZsYWdzJi0zfDQwOTYsYT1hLnNpYmxpbmc7ZWxzZXtpZihHbigpLG49PT1sKXt0PVh0KGUsdCxhKTticmVhayBlfUdlKGUsdCxuLGEpfXQ9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDI2OnJldHVybiB5aShlLHQpLGU9PT1udWxsPyhhPW9kKHQudHlwZSxudWxsLHQucGVuZGluZ1Byb3BzLG51bGwpKT90Lm1lbW9pemVkU3RhdGU9YTp1ZXx8KGE9dC50eXBlLGU9dC5wZW5kaW5nUHJvcHMsbj13aShaLmN1cnJlbnQpLmNyZWF0ZUVsZW1lbnQoYSksbltaZV09dCxuW1dlXT1lLFFlKG4sYSxlKSxIZShuKSx0LnN0YXRlTm9kZT1uKTp0Lm1lbW9pemVkU3RhdGU9b2QodC50eXBlLGUubWVtb2l6ZWRQcm9wcyx0LnBlbmRpbmdQcm9wcyxlLm1lbW9pemVkU3RhdGUpLG51bGw7Y2FzZSAyNzpyZXR1cm4gSWkodCksZT09PW51bGwmJnVlJiYobj10LnN0YXRlTm9kZT1pZCh0LnR5cGUsdC5wZW5kaW5nUHJvcHMsWi5jdXJyZW50KSxKZT10LFJ0PSEwLGw9RWUsaGEodC50eXBlKT8obG89bCxFZT14dChuLmZpcnN0Q2hpbGQpKTpFZT1sKSxHZShlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYSkseWkoZSx0KSxlPT09bnVsbCYmKHQuZmxhZ3N8PTQxOTQzMDQpLHQuY2hpbGQ7Y2FzZSA1OnJldHVybiBlPT09bnVsbCYmdWUmJigobD1uPUVlKSYmKG49Y18obix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsUnQpLG4hPT1udWxsPyh0LnN0YXRlTm9kZT1uLEplPXQsRWU9eHQobi5maXJzdENoaWxkKSxSdD0hMSxsPSEwKTpsPSExKSxsfHxEYSh0KSksSWkodCksbD10LnR5cGUsaT10LnBlbmRpbmdQcm9wcyx1PWUhPT1udWxsP2UubWVtb2l6ZWRQcm9wczpudWxsLG49aS5jaGlsZHJlbixlbyhsLGkpP249bnVsbDp1IT09bnVsbCYmZW8obCx1KSYmKHQuZmxhZ3N8PTMyKSx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiYobD1JdShlLHQseG0sbnVsbCxudWxsLGEpLHBsLl9jdXJyZW50VmFsdWU9bCkseWkoZSx0KSxHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgNjpyZXR1cm4gZT09PW51bGwmJnVlJiYoKGU9YT1FZSkmJihhPW9fKGEsdC5wZW5kaW5nUHJvcHMsUnQpLGEhPT1udWxsPyh0LnN0YXRlTm9kZT1hLEplPXQsRWU9bnVsbCxlPSEwKTplPSExKSxlfHxEYSh0KSksbnVsbDtjYXNlIDEzOnJldHVybiBlZihlLHQsYSk7Y2FzZSA0OnJldHVybiBwZSh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLG49dC5wZW5kaW5nUHJvcHMsZT09PW51bGw/dC5jaGlsZD1ybih0LG51bGwsbixhKTpHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgMTE6cmV0dXJuIFZyKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSA3OnJldHVybiBHZShlLHQsdC5wZW5kaW5nUHJvcHMsYSksdC5jaGlsZDtjYXNlIDg6cmV0dXJuIEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMTI6cmV0dXJuIEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMTA6cmV0dXJuIG49dC5wZW5kaW5nUHJvcHMsUHQodCx0LnR5cGUsbi52YWx1ZSksR2UoZSx0LG4uY2hpbGRyZW4sYSksdC5jaGlsZDtjYXNlIDk6cmV0dXJuIGw9dC50eXBlLl9jb250ZXh0LG49dC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sT2EodCksbD1WZShsKSxuPW4obCksdC5mbGFnc3w9MSxHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIEtyKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSAxNTpyZXR1cm4gSnIoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxhKTtjYXNlIDE5OnJldHVybiBhZihlLHQsYSk7Y2FzZSAzMTpyZXR1cm4gbj10LnBlbmRpbmdQcm9wcyxhPXQubW9kZSxuPXttb2RlOm4ubW9kZSxjaGlsZHJlbjpuLmNoaWxkcmVufSxlPT09bnVsbD8oYT1waShuLGEpLGEucmVmPXQucmVmLHQuY2hpbGQ9YSxhLnJldHVybj10LHQ9YSk6KGE9cXQoZS5jaGlsZCxuKSxhLnJlZj10LnJlZix0LmNoaWxkPWEsYS5yZXR1cm49dCx0PWEpLHQ7Y2FzZSAyMjpyZXR1cm4gJHIoZSx0LGEpO2Nhc2UgMjQ6cmV0dXJuIE9hKHQpLG49VmUoVWUpLGU9PT1udWxsPyhsPWt1KCksbD09PW51bGwmJihsPXllLGk9WHUoKSxsLnBvb2xlZENhY2hlPWksaS5yZWZDb3VudCsrLGkhPT1udWxsJiYobC5wb29sZWRDYWNoZUxhbmVzfD1hKSxsPWkpLHQubWVtb2l6ZWRTdGF0ZT17cGFyZW50Om4sY2FjaGU6bH0sVnUodCksUHQodCxVZSxsKSk6KChlLmxhbmVzJmEpIT09MCYmKEt1KGUsdCksV24odCxudWxsLG51bGwsYSksJG4oKSksbD1lLm1lbW9pemVkU3RhdGUsaT10Lm1lbW9pemVkU3RhdGUsbC5wYXJlbnQhPT1uPyhsPXtwYXJlbnQ6bixjYWNoZTpufSx0Lm1lbW9pemVkU3RhdGU9bCx0LmxhbmVzPT09MCYmKHQubWVtb2l6ZWRTdGF0ZT10LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1sKSxQdCh0LFVlLG4pKToobj1pLmNhY2hlLFB0KHQsVWUsbiksbiE9PWwuY2FjaGUmJkd1KHQsW1VlXSxhLCEwKSkpLEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMjk6dGhyb3cgdC5wZW5kaW5nUHJvcHN9dGhyb3cgRXJyb3IocygxNTYsdC50YWcpKX1mdW5jdGlvbiBRdChlKXtlLmZsYWdzfD00fWZ1bmN0aW9uIGxmKGUsdCl7aWYodC50eXBlIT09InN0eWxlc2hlZXQifHwodC5zdGF0ZS5sb2FkaW5nJjQpIT09MCllLmZsYWdzJj0tMTY3NzcyMTc7ZWxzZSBpZihlLmZsYWdzfD0xNjc3NzIxNiwhaGQodCkpe2lmKHQ9Z3QuY3VycmVudCx0IT09bnVsbCYmKCh0ZSY0MTk0MDQ4KT09PXRlP0R0IT09bnVsbDoodGUmNjI5MTQ1NjApIT09dGUmJih0ZSY1MzY4NzA5MTIpPT09MHx8dCE9PUR0KSl0aHJvdyBLbj1adSxHcztlLmZsYWdzfD04MTkyfX1mdW5jdGlvbiBnaShlLHQpe3QhPT1udWxsJiYoZS5mbGFnc3w9NCksZS5mbGFncyYxNjM4NCYmKHQ9ZS50YWchPT0yMj9qbygpOjUzNjg3MDkxMixlLmxhbmVzfD10LG1ufD10KX1mdW5jdGlvbiBubChlLHQpe2lmKCF1ZSlzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJoaWRkZW4iOnQ9ZS50YWlsO2Zvcih2YXIgYT1udWxsO3QhPT1udWxsOyl0LmFsdGVybmF0ZSE9PW51bGwmJihhPXQpLHQ9dC5zaWJsaW5nO2E9PT1udWxsP2UudGFpbD1udWxsOmEuc2libGluZz1udWxsO2JyZWFrO2Nhc2UiY29sbGFwc2VkIjphPWUudGFpbDtmb3IodmFyIG49bnVsbDthIT09bnVsbDspYS5hbHRlcm5hdGUhPT1udWxsJiYobj1hKSxhPWEuc2libGluZztuPT09bnVsbD90fHxlLnRhaWw9PT1udWxsP2UudGFpbD1udWxsOmUudGFpbC5zaWJsaW5nPW51bGw6bi5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uIGJlKGUpe3ZhciB0PWUuYWx0ZXJuYXRlIT09bnVsbCYmZS5hbHRlcm5hdGUuY2hpbGQ9PT1lLmNoaWxkLGE9MCxuPTA7aWYodClmb3IodmFyIGw9ZS5jaGlsZDtsIT09bnVsbDspYXw9bC5sYW5lc3xsLmNoaWxkTGFuZXMsbnw9bC5zdWJ0cmVlRmxhZ3MmNjUwMTE3MTIsbnw9bC5mbGFncyY2NTAxMTcxMixsLnJldHVybj1lLGw9bC5zaWJsaW5nO2Vsc2UgZm9yKGw9ZS5jaGlsZDtsIT09bnVsbDspYXw9bC5sYW5lc3xsLmNoaWxkTGFuZXMsbnw9bC5zdWJ0cmVlRmxhZ3Msbnw9bC5mbGFncyxsLnJldHVybj1lLGw9bC5zaWJsaW5nO3JldHVybiBlLnN1YnRyZWVGbGFnc3w9bixlLmNoaWxkTGFuZXM9YSx0fWZ1bmN0aW9uIENtKGUsdCxhKXt2YXIgbj10LnBlbmRpbmdQcm9wcztzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMzE6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gYmUodCksbnVsbDtjYXNlIDE6cmV0dXJuIGJlKHQpLG51bGw7Y2FzZSAzOnJldHVybiBhPXQuc3RhdGVOb2RlLG49bnVsbCxlIT09bnVsbCYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCksWXQoVWUpLEp0KCksYS5wZW5kaW5nQ29udGV4dCYmKGEuY29udGV4dD1hLnBlbmRpbmdDb250ZXh0LGEucGVuZGluZ0NvbnRleHQ9bnVsbCksKGU9PT1udWxsfHxlLmNoaWxkPT09bnVsbCkmJihMbih0KT9RdCh0KTplPT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKHQuZmxhZ3MmMjU2KT09PTB8fCh0LmZsYWdzfD0xMDI0LGpzKCkpKSxiZSh0KSxudWxsO2Nhc2UgMjY6cmV0dXJuIGE9dC5tZW1vaXplZFN0YXRlLGU9PT1udWxsPyhRdCh0KSxhIT09bnVsbD8oYmUodCksbGYodCxhKSk6KGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNykpOmE/YSE9PWUubWVtb2l6ZWRTdGF0ZT8oUXQodCksYmUodCksbGYodCxhKSk6KGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNyk6KGUubWVtb2l6ZWRQcm9wcyE9PW4mJlF0KHQpLGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNyksbnVsbDtjYXNlIDI3Ok9sKHQpLGE9Wi5jdXJyZW50O3ZhciBsPXQudHlwZTtpZihlIT09bnVsbCYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZighbil7aWYodC5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIGJlKHQpLG51bGx9ZT1MLmN1cnJlbnQsTG4odCk/Q3ModCk6KGU9aWQobCxuLGEpLHQuc3RhdGVOb2RlPWUsUXQodCkpfXJldHVybiBiZSh0KSxudWxsO2Nhc2UgNTppZihPbCh0KSxhPXQudHlwZSxlIT09bnVsbCYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZighbil7aWYodC5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIGJlKHQpLG51bGx9aWYoZT1MLmN1cnJlbnQsTG4odCkpQ3ModCk7ZWxzZXtzd2l0Y2gobD13aShaLmN1cnJlbnQpLGUpe2Nhc2UgMTplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYSk7YnJlYWs7Y2FzZSAyOmU9bC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiLGEpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKGEpe2Nhc2Uic3ZnIjplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYSk7YnJlYWs7Y2FzZSJtYXRoIjplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixhKTticmVhaztjYXNlInNjcmlwdCI6ZT1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLGU9ZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjplPXR5cGVvZiBuLmlzPT0ic3RyaW5nIj9sLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lzOm4uaXN9KTpsLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLG4ubXVsdGlwbGU/ZS5tdWx0aXBsZT0hMDpuLnNpemUmJihlLnNpemU9bi5zaXplKTticmVhaztkZWZhdWx0OmU9dHlwZW9mIG4uaXM9PSJzdHJpbmciP2wuY3JlYXRlRWxlbWVudChhLHtpczpuLmlzfSk6bC5jcmVhdGVFbGVtZW50KGEpfX1lW1plXT10LGVbV2VdPW47ZTpmb3IobD10LmNoaWxkO2whPT1udWxsOyl7aWYobC50YWc9PT01fHxsLnRhZz09PTYpZS5hcHBlbmRDaGlsZChsLnN0YXRlTm9kZSk7ZWxzZSBpZihsLnRhZyE9PTQmJmwudGFnIT09MjcmJmwuY2hpbGQhPT1udWxsKXtsLmNoaWxkLnJldHVybj1sLGw9bC5jaGlsZDtjb250aW51ZX1pZihsPT09dClicmVhayBlO2Zvcig7bC5zaWJsaW5nPT09bnVsbDspe2lmKGwucmV0dXJuPT09bnVsbHx8bC5yZXR1cm49PT10KWJyZWFrIGU7bD1sLnJldHVybn1sLnNpYmxpbmcucmV0dXJuPWwucmV0dXJuLGw9bC5zaWJsaW5nfXQuc3RhdGVOb2RlPWU7ZTpzd2l0Y2goUWUoZSxhLG4pLGEpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6ZT0hIW4uYXV0b0ZvY3VzO2JyZWFrIGU7Y2FzZSJpbWciOmU9ITA7YnJlYWsgZTtkZWZhdWx0OmU9ITF9ZSYmUXQodCl9fXJldHVybiBiZSh0KSx0LmZsYWdzJj0tMTY3NzcyMTcsbnVsbDtjYXNlIDY6aWYoZSYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZih0eXBlb2YgbiE9InN0cmluZyImJnQuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihzKDE2NikpO2lmKGU9Wi5jdXJyZW50LExuKHQpKXtpZihlPXQuc3RhdGVOb2RlLGE9dC5tZW1vaXplZFByb3BzLG49bnVsbCxsPUplLGwhPT1udWxsKXN3aXRjaChsLnRhZyl7Y2FzZSAyNzpjYXNlIDU6bj1sLm1lbW9pemVkUHJvcHN9ZVtaZV09dCxlPSEhKGUubm9kZVZhbHVlPT09YXx8biE9PW51bGwmJm4uc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nPT09ITB8fFBmKGUubm9kZVZhbHVlLGEpKSxlfHxEYSh0KX1lbHNlIGU9d2koZSkuY3JlYXRlVGV4dE5vZGUobiksZVtaZV09dCx0LnN0YXRlTm9kZT1lfXJldHVybiBiZSh0KSxudWxsO2Nhc2UgMTM6aWYobj10Lm1lbW9pemVkU3RhdGUsZT09PW51bGx8fGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkIT09bnVsbCl7aWYobD1Mbih0KSxuIT09bnVsbCYmbi5kZWh5ZHJhdGVkIT09bnVsbCl7aWYoZT09PW51bGwpe2lmKCFsKXRocm93IEVycm9yKHMoMzE4KSk7aWYobD10Lm1lbW9pemVkU3RhdGUsbD1sIT09bnVsbD9sLmRlaHlkcmF0ZWQ6bnVsbCwhbCl0aHJvdyBFcnJvcihzKDMxNykpO2xbWmVdPXR9ZWxzZSBHbigpLCh0LmZsYWdzJjEyOCk9PT0wJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7YmUodCksbD0hMX1lbHNlIGw9anMoKSxlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9bCksbD0hMDtpZighbClyZXR1cm4gdC5mbGFncyYyNTY/KEd0KHQpLHQpOihHdCh0KSxudWxsKX1pZihHdCh0KSwodC5mbGFncyYxMjgpIT09MClyZXR1cm4gdC5sYW5lcz1hLHQ7aWYoYT1uIT09bnVsbCxlPWUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsLGEpe249dC5jaGlsZCxsPW51bGwsbi5hbHRlcm5hdGUhPT1udWxsJiZuLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmbi5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYobD1uLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKTt2YXIgaT1udWxsO24ubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJm4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoaT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGkhPT1sJiYobi5mbGFnc3w9MjA0OCl9cmV0dXJuIGEhPT1lJiZhJiYodC5jaGlsZC5mbGFnc3w9ODE5MiksZ2kodCx0LnVwZGF0ZVF1ZXVlKSxiZSh0KSxudWxsO2Nhc2UgNDpyZXR1cm4gSnQoKSxlPT09bnVsbCYmJGModC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksYmUodCksbnVsbDtjYXNlIDEwOnJldHVybiBZdCh0LnR5cGUpLGJlKHQpLG51bGw7Y2FzZSAxOTppZihxKENlKSxsPXQubWVtb2l6ZWRTdGF0ZSxsPT09bnVsbClyZXR1cm4gYmUodCksbnVsbDtpZihuPSh0LmZsYWdzJjEyOCkhPT0wLGk9bC5yZW5kZXJpbmcsaT09PW51bGwpaWYobilubChsLCExKTtlbHNle2lmKEFlIT09MHx8ZSE9PW51bGwmJihlLmZsYWdzJjEyOCkhPT0wKWZvcihlPXQuY2hpbGQ7ZSE9PW51bGw7KXtpZihpPW1pKGUpLGkhPT1udWxsKXtmb3IodC5mbGFnc3w9MTI4LG5sKGwsITEpLGU9aS51cGRhdGVRdWV1ZSx0LnVwZGF0ZVF1ZXVlPWUsZ2kodCxlKSx0LnN1YnRyZWVGbGFncz0wLGU9YSxhPXQuY2hpbGQ7YSE9PW51bGw7KXdzKGEsZSksYT1hLnNpYmxpbmc7cmV0dXJuIFUoQ2UsQ2UuY3VycmVudCYxfDIpLHQuY2hpbGR9ZT1lLnNpYmxpbmd9bC50YWlsIT09bnVsbCYmenQoKT5UaSYmKHQuZmxhZ3N8PTEyOCxuPSEwLG5sKGwsITEpLHQubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighbilpZihlPW1pKGkpLGUhPT1udWxsKXtpZih0LmZsYWdzfD0xMjgsbj0hMCxlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT1lLGdpKHQsZSksbmwobCwhMCksbC50YWlsPT09bnVsbCYmbC50YWlsTW9kZT09PSJoaWRkZW4iJiYhaS5hbHRlcm5hdGUmJiF1ZSlyZXR1cm4gYmUodCksbnVsbH1lbHNlIDIqenQoKS1sLnJlbmRlcmluZ1N0YXJ0VGltZT5UaSYmYSE9PTUzNjg3MDkxMiYmKHQuZmxhZ3N8PTEyOCxuPSEwLG5sKGwsITEpLHQubGFuZXM9NDE5NDMwNCk7bC5pc0JhY2t3YXJkcz8oaS5zaWJsaW5nPXQuY2hpbGQsdC5jaGlsZD1pKTooZT1sLmxhc3QsZSE9PW51bGw/ZS5zaWJsaW5nPWk6dC5jaGlsZD1pLGwubGFzdD1pKX1yZXR1cm4gbC50YWlsIT09bnVsbD8odD1sLnRhaWwsbC5yZW5kZXJpbmc9dCxsLnRhaWw9dC5zaWJsaW5nLGwucmVuZGVyaW5nU3RhcnRUaW1lPXp0KCksdC5zaWJsaW5nPW51bGwsZT1DZS5jdXJyZW50LFUoQ2Usbj9lJjF8MjplJjEpLHQpOihiZSh0KSxudWxsKTtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEd0KHQpLEZ1KCksbj10Lm1lbW9pemVkU3RhdGUhPT1udWxsLGUhPT1udWxsP2UubWVtb2l6ZWRTdGF0ZSE9PW51bGwhPT1uJiYodC5mbGFnc3w9ODE5Mik6biYmKHQuZmxhZ3N8PTgxOTIpLG4/KGEmNTM2ODcwOTEyKSE9PTAmJih0LmZsYWdzJjEyOCk9PT0wJiYoYmUodCksdC5zdWJ0cmVlRmxhZ3MmNiYmKHQuZmxhZ3N8PTgxOTIpKTpiZSh0KSxhPXQudXBkYXRlUXVldWUsYSE9PW51bGwmJmdpKHQsYS5yZXRyeVF1ZXVlKSxhPW51bGwsZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoYT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLG49bnVsbCx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKG49dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxuIT09YSYmKHQuZmxhZ3N8PTIwNDgpLGUhPT1udWxsJiZxKE1hKSxudWxsO2Nhc2UgMjQ6cmV0dXJuIGE9bnVsbCxlIT09bnVsbCYmKGE9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1hJiYodC5mbGFnc3w9MjA0OCksWXQoVWUpLGJlKHQpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKHMoMTU2LHQudGFnKSl9ZnVuY3Rpb24gcW0oZSx0KXtzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMTpyZXR1cm4gZT10LmZsYWdzLGUmNjU1MzY/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSAzOnJldHVybiBZdChVZSksSnQoKSxlPXQuZmxhZ3MsKGUmNjU1MzYpIT09MCYmKGUmMTI4KT09PTA/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gT2wodCksbnVsbDtjYXNlIDEzOmlmKEd0KHQpLGU9dC5tZW1vaXplZFN0YXRlLGUhPT1udWxsJiZlLmRlaHlkcmF0ZWQhPT1udWxsKXtpZih0LmFsdGVybmF0ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDApKTtHbigpfXJldHVybiBlPXQuZmxhZ3MsZSY2NTUzNj8odC5mbGFncz1lJi02NTUzN3wxMjgsdCk6bnVsbDtjYXNlIDE5OnJldHVybiBxKENlKSxudWxsO2Nhc2UgNDpyZXR1cm4gSnQoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFl0KHQudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEd0KHQpLEZ1KCksZSE9PW51bGwmJnEoTWEpLGU9dC5mbGFncyxlJjY1NTM2Pyh0LmZsYWdzPWUmLTY1NTM3fDEyOCx0KTpudWxsO2Nhc2UgMjQ6cmV0dXJuIFl0KFVlKSxudWxsO2Nhc2UgMjU6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gdWYoZSx0KXtzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMzpZdChVZSksSnQoKTticmVhaztjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1Ok9sKHQpO2JyZWFrO2Nhc2UgNDpKdCgpO2JyZWFrO2Nhc2UgMTM6R3QodCk7YnJlYWs7Y2FzZSAxOTpxKENlKTticmVhaztjYXNlIDEwOll0KHQudHlwZSk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOkd0KHQpLEZ1KCksZSE9PW51bGwmJnEoTWEpO2JyZWFrO2Nhc2UgMjQ6WXQoVWUpfX1mdW5jdGlvbiBsbChlLHQpe3RyeXt2YXIgYT10LnVwZGF0ZVF1ZXVlLG49YSE9PW51bGw/YS5sYXN0RWZmZWN0Om51bGw7aWYobiE9PW51bGwpe3ZhciBsPW4ubmV4dDthPWw7ZG97aWYoKGEudGFnJmUpPT09ZSl7bj12b2lkIDA7dmFyIGk9YS5jcmVhdGUsdT1hLmluc3Q7bj1pKCksdS5kZXN0cm95PW59YT1hLm5leHR9d2hpbGUoYSE9PWwpfX1jYXRjaChjKXtfZSh0LHQucmV0dXJuLGMpfX1mdW5jdGlvbiBpYShlLHQsYSl7dHJ5e3ZhciBuPXQudXBkYXRlUXVldWUsbD1uIT09bnVsbD9uLmxhc3RFZmZlY3Q6bnVsbDtpZihsIT09bnVsbCl7dmFyIGk9bC5uZXh0O249aTtkb3tpZigobi50YWcmZSk9PT1lKXt2YXIgdT1uLmluc3QsYz11LmRlc3Ryb3k7aWYoYyE9PXZvaWQgMCl7dS5kZXN0cm95PXZvaWQgMCxsPXQ7dmFyIHI9YSxwPWM7dHJ5e3AoKX1jYXRjaChBKXtfZShsLHIsQSl9fX1uPW4ubmV4dH13aGlsZShuIT09aSl9fWNhdGNoKEEpe19lKHQsdC5yZXR1cm4sQSl9fWZ1bmN0aW9uIGNmKGUpe3ZhciB0PWUudXBkYXRlUXVldWU7aWYodCE9PW51bGwpe3ZhciBhPWUuc3RhdGVOb2RlO3RyeXtLcyh0LGEpfWNhdGNoKG4pe19lKGUsZS5yZXR1cm4sbil9fX1mdW5jdGlvbiBvZihlLHQsYSl7YS5wcm9wcz1VYShlLnR5cGUsZS5tZW1vaXplZFByb3BzKSxhLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZTt0cnl7YS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKG4pe19lKGUsdCxuKX19ZnVuY3Rpb24gaWwoZSx0KXt0cnl7dmFyIGE9ZS5yZWY7aWYoYSE9PW51bGwpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTp2YXIgbj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDMwOm49ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpuPWUuc3RhdGVOb2RlfXR5cGVvZiBhPT0iZnVuY3Rpb24iP2UucmVmQ2xlYW51cD1hKG4pOmEuY3VycmVudD1ufX1jYXRjaChsKXtfZShlLHQsbCl9fWZ1bmN0aW9uIE50KGUsdCl7dmFyIGE9ZS5yZWYsbj1lLnJlZkNsZWFudXA7aWYoYSE9PW51bGwpaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpdHJ5e24oKX1jYXRjaChsKXtfZShlLHQsbCl9ZmluYWxseXtlLnJlZkNsZWFudXA9bnVsbCxlPWUuYWx0ZXJuYXRlLGUhPW51bGwmJihlLnJlZkNsZWFudXA9bnVsbCl9ZWxzZSBpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil0cnl7YShudWxsKX1jYXRjaChsKXtfZShlLHQsbCl9ZWxzZSBhLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBzZihlKXt2YXIgdD1lLnR5cGUsYT1lLm1lbW9pemVkUHJvcHMsbj1lLnN0YXRlTm9kZTt0cnl7ZTpzd2l0Y2godCl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjphLmF1dG9Gb2N1cyYmbi5mb2N1cygpO2JyZWFrIGU7Y2FzZSJpbWciOmEuc3JjP24uc3JjPWEuc3JjOmEuc3JjU2V0JiYobi5zcmNzZXQ9YS5zcmNTZXQpfX1jYXRjaChsKXtfZShlLGUucmV0dXJuLGwpfX1mdW5jdGlvbiB4YyhlLHQsYSl7dHJ5e3ZhciBuPWUuc3RhdGVOb2RlO2FfKG4sZS50eXBlLGEsdCksbltXZV09dH1jYXRjaChsKXtfZShlLGUucmV0dXJuLGwpfX1mdW5jdGlvbiByZihlKXtyZXR1cm4gZS50YWc9PT01fHxlLnRhZz09PTN8fGUudGFnPT09MjZ8fGUudGFnPT09MjcmJmhhKGUudHlwZSl8fGUudGFnPT09NH1mdW5jdGlvbiB6YyhlKXtlOmZvcig7Oyl7Zm9yKDtlLnNpYmxpbmc9PT1udWxsOyl7aWYoZS5yZXR1cm49PT1udWxsfHxyZihlLnJldHVybikpcmV0dXJuIG51bGw7ZT1lLnJldHVybn1mb3IoZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZztlLnRhZyE9PTUmJmUudGFnIT09NiYmZS50YWchPT0xODspe2lmKGUudGFnPT09MjcmJmhhKGUudHlwZSl8fGUuZmxhZ3MmMnx8ZS5jaGlsZD09PW51bGx8fGUudGFnPT09NCljb250aW51ZSBlO2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkfWlmKCEoZS5mbGFncyYyKSlyZXR1cm4gZS5zdGF0ZU5vZGV9fWZ1bmN0aW9uIFJjKGUsdCxhKXt2YXIgbj1lLnRhZztpZihuPT09NXx8bj09PTYpZT1lLnN0YXRlTm9kZSx0PyhhLm5vZGVUeXBlPT09OT9hLmJvZHk6YS5ub2RlTmFtZT09PSJIVE1MIj9hLm93bmVyRG9jdW1lbnQuYm9keTphKS5pbnNlcnRCZWZvcmUoZSx0KToodD1hLm5vZGVUeXBlPT09OT9hLmJvZHk6YS5ub2RlTmFtZT09PSJIVE1MIj9hLm93bmVyRG9jdW1lbnQuYm9keTphLHQuYXBwZW5kQ2hpbGQoZSksYT1hLl9yZWFjdFJvb3RDb250YWluZXIsYSE9bnVsbHx8dC5vbmNsaWNrIT09bnVsbHx8KHQub25jbGljaz1NaSkpO2Vsc2UgaWYobiE9PTQmJihuPT09MjcmJmhhKGUudHlwZSkmJihhPWUuc3RhdGVOb2RlLHQ9bnVsbCksZT1lLmNoaWxkLGUhPT1udWxsKSlmb3IoUmMoZSx0LGEpLGU9ZS5zaWJsaW5nO2UhPT1udWxsOylSYyhlLHQsYSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gYmkoZSx0LGEpe3ZhciBuPWUudGFnO2lmKG49PT01fHxuPT09NillPWUuc3RhdGVOb2RlLHQ/YS5pbnNlcnRCZWZvcmUoZSx0KTphLmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYobiE9PTQmJihuPT09MjcmJmhhKGUudHlwZSkmJihhPWUuc3RhdGVOb2RlKSxlPWUuY2hpbGQsZSE9PW51bGwpKWZvcihiaShlLHQsYSksZT1lLnNpYmxpbmc7ZSE9PW51bGw7KWJpKGUsdCxhKSxlPWUuc2libGluZ31mdW5jdGlvbiBmZihlKXt2YXIgdD1lLnN0YXRlTm9kZSxhPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciBuPWUudHlwZSxsPXQuYXR0cmlidXRlcztsLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKGxbMF0pO1FlKHQsbixhKSx0W1plXT1lLHRbV2VdPWF9Y2F0Y2goaSl7X2UoZSxlLnJldHVybixpKX19dmFyIGt0PSExLFJlPSExLERjPSExLGRmPXR5cGVvZiBXZWFrU2V0PT0iZnVuY3Rpb24iP1dlYWtTZXQ6U2V0LFllPW51bGw7ZnVuY3Rpb24gam0oZSx0KXtpZihlPWUuY29udGFpbmVySW5mbyxQYz1CaSxlPVRzKGUpLHp1KGUpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gZSl2YXIgYT17c3RhcnQ6ZS5zZWxlY3Rpb25TdGFydCxlbmQ6ZS5zZWxlY3Rpb25FbmR9O2Vsc2UgZTp7YT0oYT1lLm93bmVyRG9jdW1lbnQpJiZhLmRlZmF1bHRWaWV3fHx3aW5kb3c7dmFyIG49YS5nZXRTZWxlY3Rpb24mJmEuZ2V0U2VsZWN0aW9uKCk7aWYobiYmbi5yYW5nZUNvdW50IT09MCl7YT1uLmFuY2hvck5vZGU7dmFyIGw9bi5hbmNob3JPZmZzZXQsaT1uLmZvY3VzTm9kZTtuPW4uZm9jdXNPZmZzZXQ7dHJ5e2Eubm9kZVR5cGUsaS5ub2RlVHlwZX1jYXRjaHthPW51bGw7YnJlYWsgZX12YXIgdT0wLGM9LTEscj0tMSxwPTAsQT0wLFI9ZSxnPW51bGw7dDpmb3IoOzspe2Zvcih2YXIgYjtSIT09YXx8bCE9PTAmJlIubm9kZVR5cGUhPT0zfHwoYz11K2wpLFIhPT1pfHxuIT09MCYmUi5ub2RlVHlwZSE9PTN8fChyPXUrbiksUi5ub2RlVHlwZT09PTMmJih1Kz1SLm5vZGVWYWx1ZS5sZW5ndGgpLChiPVIuZmlyc3RDaGlsZCkhPT1udWxsOylnPVIsUj1iO2Zvcig7Oyl7aWYoUj09PWUpYnJlYWsgdDtpZihnPT09YSYmKytwPT09bCYmKGM9dSksZz09PWkmJisrQT09PW4mJihyPXUpLChiPVIubmV4dFNpYmxpbmcpIT09bnVsbClicmVhaztSPWcsZz1SLnBhcmVudE5vZGV9Uj1ifWE9Yz09PS0xfHxyPT09LTE/bnVsbDp7c3RhcnQ6YyxlbmQ6cn19ZWxzZSBhPW51bGx9YT1hfHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSBhPW51bGw7Zm9yKEljPXtmb2N1c2VkRWxlbTplLHNlbGVjdGlvblJhbmdlOmF9LEJpPSExLFllPXQ7WWUhPT1udWxsOylpZih0PVllLGU9dC5jaGlsZCwodC5zdWJ0cmVlRmxhZ3MmMTAyNCkhPT0wJiZlIT09bnVsbCllLnJldHVybj10LFllPWU7ZWxzZSBmb3IoO1llIT09bnVsbDspe3N3aXRjaCh0PVllLGk9dC5hbHRlcm5hdGUsZT10LmZsYWdzLHQudGFnKXtjYXNlIDA6YnJlYWs7Y2FzZSAxMTpjYXNlIDE1OmJyZWFrO2Nhc2UgMTppZigoZSYxMDI0KSE9PTAmJmkhPT1udWxsKXtlPXZvaWQgMCxhPXQsbD1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUsbj1hLnN0YXRlTm9kZTt0cnl7dmFyIGs9VWEoYS50eXBlLGwsYS5lbGVtZW50VHlwZT09PWEudHlwZSk7ZT1uLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGssaSksbi5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1lfWNhdGNoKEcpe19lKGEsYS5yZXR1cm4sRyl9fWJyZWFrO2Nhc2UgMzppZigoZSYxMDI0KSE9PTApe2lmKGU9dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxhPWUubm9kZVR5cGUsYT09PTkpYW8oZSk7ZWxzZSBpZihhPT09MSlzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSJIRUFEIjpjYXNlIkhUTUwiOmNhc2UiQk9EWSI6YW8oZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PSIifX1icmVhaztjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OmlmKChlJjEwMjQpIT09MCl0aHJvdyBFcnJvcihzKDE2MykpfWlmKGU9dC5zaWJsaW5nLGUhPT1udWxsKXtlLnJldHVybj10LnJldHVybixZZT1lO2JyZWFrfVllPXQucmV0dXJufX1mdW5jdGlvbiBoZihlLHQsYSl7dmFyIG49YS5mbGFncztzd2l0Y2goYS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dWEoZSxhKSxuJjQmJmxsKDUsYSk7YnJlYWs7Y2FzZSAxOmlmKHVhKGUsYSksbiY0KWlmKGU9YS5zdGF0ZU5vZGUsdD09PW51bGwpdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaCh1KXtfZShhLGEucmV0dXJuLHUpfWVsc2V7dmFyIGw9VWEoYS50eXBlLHQubWVtb2l6ZWRQcm9wcyk7dD10Lm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKGwsdCxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaCh1KXtfZShhLGEucmV0dXJuLHUpfX1uJjY0JiZjZihhKSxuJjUxMiYmaWwoYSxhLnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKHVhKGUsYSksbiY2NCYmKGU9YS51cGRhdGVRdWV1ZSxlIT09bnVsbCkpe2lmKHQ9bnVsbCxhLmNoaWxkIT09bnVsbClzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgMjc6Y2FzZSA1OnQ9YS5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOnQ9YS5jaGlsZC5zdGF0ZU5vZGV9dHJ5e0tzKGUsdCl9Y2F0Y2godSl7X2UoYSxhLnJldHVybix1KX19YnJlYWs7Y2FzZSAyNzp0PT09bnVsbCYmbiY0JiZmZihhKTtjYXNlIDI2OmNhc2UgNTp1YShlLGEpLHQ9PT1udWxsJiZuJjQmJnNmKGEpLG4mNTEyJiZpbChhLGEucmV0dXJuKTticmVhaztjYXNlIDEyOnVhKGUsYSk7YnJlYWs7Y2FzZSAxMzp1YShlLGEpLG4mNCYmdmYoZSxhKSxuJjY0JiYoZT1hLm1lbW9pemVkU3RhdGUsZSE9PW51bGwmJihlPWUuZGVoeWRyYXRlZCxlIT09bnVsbCYmKGE9Wm0uYmluZChudWxsLGEpLHNfKGUsYSkpKSk7YnJlYWs7Y2FzZSAyMjppZihuPWEubWVtb2l6ZWRTdGF0ZSE9PW51bGx8fGt0LCFuKXt0PXQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsfHxSZSxsPWt0O3ZhciBpPVJlO2t0PW4sKFJlPXQpJiYhaT9jYShlLGEsKGEuc3VidHJlZUZsYWdzJjg3NzIpIT09MCk6dWEoZSxhKSxrdD1sLFJlPWl9YnJlYWs7Y2FzZSAzMDpicmVhaztkZWZhdWx0OnVhKGUsYSl9fWZ1bmN0aW9uIG1mKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO3QhPT1udWxsJiYoZS5hbHRlcm5hdGU9bnVsbCxtZih0KSksZS5jaGlsZD1udWxsLGUuZGVsZXRpb25zPW51bGwsZS5zaWJsaW5nPW51bGwsZS50YWc9PT01JiYodD1lLnN0YXRlTm9kZSx0IT09bnVsbCYmY3UodCkpLGUuc3RhdGVOb2RlPW51bGwsZS5yZXR1cm49bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUucGVuZGluZ1Byb3BzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGx9dmFyIGdlPW51bGwsSWU9ITE7ZnVuY3Rpb24gWnQoZSx0LGEpe2ZvcihhPWEuY2hpbGQ7YSE9PW51bGw7KV9mKGUsdCxhKSxhPWEuc2libGluZ31mdW5jdGlvbiBfZihlLHQsYSl7aWYobHQmJnR5cGVvZiBsdC5vbkNvbW1pdEZpYmVyVW5tb3VudD09ImZ1bmN0aW9uIil0cnl7bHQub25Db21taXRGaWJlclVubW91bnQoem4sYSl9Y2F0Y2h7fXN3aXRjaChhLnRhZyl7Y2FzZSAyNjpSZXx8TnQoYSx0KSxadChlLHQsYSksYS5tZW1vaXplZFN0YXRlP2EubWVtb2l6ZWRTdGF0ZS5jb3VudC0tOmEuc3RhdGVOb2RlJiYoYT1hLnN0YXRlTm9kZSxhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSkpO2JyZWFrO2Nhc2UgMjc6UmV8fE50KGEsdCk7dmFyIG49Z2UsbD1JZTtoYShhLnR5cGUpJiYoZ2U9YS5zdGF0ZU5vZGUsSWU9ITEpLFp0KGUsdCxhKSxtbChhLnN0YXRlTm9kZSksZ2U9bixJZT1sO2JyZWFrO2Nhc2UgNTpSZXx8TnQoYSx0KTtjYXNlIDY6aWYobj1nZSxsPUllLGdlPW51bGwsWnQoZSx0LGEpLGdlPW4sSWU9bCxnZSE9PW51bGwpaWYoSWUpdHJ5eyhnZS5ub2RlVHlwZT09PTk/Z2UuYm9keTpnZS5ub2RlTmFtZT09PSJIVE1MIj9nZS5vd25lckRvY3VtZW50LmJvZHk6Z2UpLnJlbW92ZUNoaWxkKGEuc3RhdGVOb2RlKX1jYXRjaChpKXtfZShhLHQsaSl9ZWxzZSB0cnl7Z2UucmVtb3ZlQ2hpbGQoYS5zdGF0ZU5vZGUpfWNhdGNoKGkpe19lKGEsdCxpKX1icmVhaztjYXNlIDE4OmdlIT09bnVsbCYmKEllPyhlPWdlLG5kKGUubm9kZVR5cGU9PT05P2UuYm9keTplLm5vZGVOYW1lPT09IkhUTUwiP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsYS5zdGF0ZU5vZGUpLFRsKGUpKTpuZChnZSxhLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpuPWdlLGw9SWUsZ2U9YS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxJZT0hMCxadChlLHQsYSksZ2U9bixJZT1sO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpSZXx8aWEoMixhLHQpLFJlfHxpYSg0LGEsdCksWnQoZSx0LGEpO2JyZWFrO2Nhc2UgMTpSZXx8KE50KGEsdCksbj1hLnN0YXRlTm9kZSx0eXBlb2Ygbi5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmb2YoYSx0LG4pKSxadChlLHQsYSk7YnJlYWs7Y2FzZSAyMTpadChlLHQsYSk7YnJlYWs7Y2FzZSAyMjpSZT0obj1SZSl8fGEubWVtb2l6ZWRTdGF0ZSE9PW51bGwsWnQoZSx0LGEpLFJlPW47YnJlYWs7ZGVmYXVsdDpadChlLHQsYSl9fWZ1bmN0aW9uIHZmKGUsdCl7aWYodC5tZW1vaXplZFN0YXRlPT09bnVsbCYmKGU9dC5hbHRlcm5hdGUsZSE9PW51bGwmJihlPWUubWVtb2l6ZWRTdGF0ZSxlIT09bnVsbCYmKGU9ZS5kZWh5ZHJhdGVkLGUhPT1udWxsKSkpKXRyeXtUbChlKX1jYXRjaChhKXtfZSh0LHQucmV0dXJuLGEpfX1mdW5jdGlvbiBIbShlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMTM6Y2FzZSAxOTp2YXIgdD1lLnN0YXRlTm9kZTtyZXR1cm4gdD09PW51bGwmJih0PWUuc3RhdGVOb2RlPW5ldyBkZiksdDtjYXNlIDIyOnJldHVybiBlPWUuc3RhdGVOb2RlLHQ9ZS5fcmV0cnlDYWNoZSx0PT09bnVsbCYmKHQ9ZS5fcmV0cnlDYWNoZT1uZXcgZGYpLHQ7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQzNSxlLnRhZykpfX1mdW5jdGlvbiBOYyhlLHQpe3ZhciBhPUhtKGUpO3QuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgbD1WbS5iaW5kKG51bGwsZSxuKTthLmhhcyhuKXx8KGEuYWRkKG4pLG4udGhlbihsLGwpKX0pfWZ1bmN0aW9uIG90KGUsdCl7dmFyIGE9dC5kZWxldGlvbnM7aWYoYSE9PW51bGwpZm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciBsPWFbbl0saT1lLHU9dCxjPXU7ZTpmb3IoO2MhPT1udWxsOyl7c3dpdGNoKGMudGFnKXtjYXNlIDI3OmlmKGhhKGMudHlwZSkpe2dlPWMuc3RhdGVOb2RlLEllPSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmdlPWMuc3RhdGVOb2RlLEllPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpnZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLEllPSEwO2JyZWFrIGV9Yz1jLnJldHVybn1pZihnZT09PW51bGwpdGhyb3cgRXJyb3IocygxNjApKTtfZihpLHUsbCksZ2U9bnVsbCxJZT0hMSxpPWwuYWx0ZXJuYXRlLGkhPT1udWxsJiYoaS5yZXR1cm49bnVsbCksbC5yZXR1cm49bnVsbH1pZih0LnN1YnRyZWVGbGFncyYxMzg3OClmb3IodD10LmNoaWxkO3QhPT1udWxsOyl5Zih0LGUpLHQ9dC5zaWJsaW5nfXZhciBBdD1udWxsO2Z1bmN0aW9uIHlmKGUsdCl7dmFyIGE9ZS5hbHRlcm5hdGUsbj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1Om90KHQsZSksc3QoZSksbiY0JiYoaWEoMyxlLGUucmV0dXJuKSxsbCgzLGUpLGlhKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpvdCh0LGUpLHN0KGUpLG4mNTEyJiYoUmV8fGE9PT1udWxsfHxOdChhLGEucmV0dXJuKSksbiY2NCYma3QmJihlPWUudXBkYXRlUXVldWUsZSE9PW51bGwmJihuPWUuY2FsbGJhY2tzLG4hPT1udWxsJiYoYT1lLnNoYXJlZC5oaWRkZW5DYWxsYmFja3MsZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPWE9PT1udWxsP246YS5jb25jYXQobikpKSk7YnJlYWs7Y2FzZSAyNjp2YXIgbD1BdDtpZihvdCh0LGUpLHN0KGUpLG4mNTEyJiYoUmV8fGE9PT1udWxsfHxOdChhLGEucmV0dXJuKSksbiY0KXt2YXIgaT1hIT09bnVsbD9hLm1lbW9pemVkU3RhdGU6bnVsbDtpZihuPWUubWVtb2l6ZWRTdGF0ZSxhPT09bnVsbClpZihuPT09bnVsbClpZihlLnN0YXRlTm9kZT09PW51bGwpe2U6e249ZS50eXBlLGE9ZS5tZW1vaXplZFByb3BzLGw9bC5vd25lckRvY3VtZW50fHxsO3Q6c3dpdGNoKG4pe2Nhc2UidGl0bGUiOmk9bC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXSwoIWl8fGlbTm5dfHxpW1plXXx8aS5uYW1lc3BhY2VVUkk9PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifHxpLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkmJihpPWwuY3JlYXRlRWxlbWVudChuKSxsLmhlYWQuaW5zZXJ0QmVmb3JlKGksbC5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKSkpLFFlKGksbixhKSxpW1plXT1lLEhlKGkpLG49aTticmVhayBlO2Nhc2UibGluayI6dmFyIHU9ZmQoImxpbmsiLCJocmVmIixsKS5nZXQobisoYS5ocmVmfHwiIikpO2lmKHUpe2Zvcih2YXIgYz0wO2M8dS5sZW5ndGg7YysrKWlmKGk9dVtjXSxpLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09KGEuaHJlZj09bnVsbHx8YS5ocmVmPT09IiI/bnVsbDphLmhyZWYpJiZpLmdldEF0dHJpYnV0ZSgicmVsIik9PT0oYS5yZWw9PW51bGw/bnVsbDphLnJlbCkmJmkuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpPT09KGEudGl0bGU9PW51bGw/bnVsbDphLnRpdGxlKSYmaS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik9PT0oYS5jcm9zc09yaWdpbj09bnVsbD9udWxsOmEuY3Jvc3NPcmlnaW4pKXt1LnNwbGljZShjLDEpO2JyZWFrIHR9fWk9bC5jcmVhdGVFbGVtZW50KG4pLFFlKGksbixhKSxsLmhlYWQuYXBwZW5kQ2hpbGQoaSk7YnJlYWs7Y2FzZSJtZXRhIjppZih1PWZkKCJtZXRhIiwiY29udGVudCIsbCkuZ2V0KG4rKGEuY29udGVudHx8IiIpKSl7Zm9yKGM9MDtjPHUubGVuZ3RoO2MrKylpZihpPXVbY10saS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKT09PShhLmNvbnRlbnQ9PW51bGw/bnVsbDoiIithLmNvbnRlbnQpJiZpLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09KGEubmFtZT09bnVsbD9udWxsOmEubmFtZSkmJmkuZ2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIpPT09KGEucHJvcGVydHk9PW51bGw/bnVsbDphLnByb3BlcnR5KSYmaS5nZXRBdHRyaWJ1dGUoImh0dHAtZXF1aXYiKT09PShhLmh0dHBFcXVpdj09bnVsbD9udWxsOmEuaHR0cEVxdWl2KSYmaS5nZXRBdHRyaWJ1dGUoImNoYXJzZXQiKT09PShhLmNoYXJTZXQ9PW51bGw/bnVsbDphLmNoYXJTZXQpKXt1LnNwbGljZShjLDEpO2JyZWFrIHR9fWk9bC5jcmVhdGVFbGVtZW50KG4pLFFlKGksbixhKSxsLmhlYWQuYXBwZW5kQ2hpbGQoaSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ2OCxuKSl9aVtaZV09ZSxIZShpKSxuPWl9ZS5zdGF0ZU5vZGU9bn1lbHNlIGRkKGwsZS50eXBlLGUuc3RhdGVOb2RlKTtlbHNlIGUuc3RhdGVOb2RlPXJkKGwsbixlLm1lbW9pemVkUHJvcHMpO2Vsc2UgaSE9PW4/KGk9PT1udWxsP2Euc3RhdGVOb2RlIT09bnVsbCYmKGE9YS5zdGF0ZU5vZGUsYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpKTppLmNvdW50LS0sbj09PW51bGw/ZGQobCxlLnR5cGUsZS5zdGF0ZU5vZGUpOnJkKGwsbixlLm1lbW9pemVkUHJvcHMpKTpuPT09bnVsbCYmZS5zdGF0ZU5vZGUhPT1udWxsJiZ4YyhlLGUubWVtb2l6ZWRQcm9wcyxhLm1lbW9pemVkUHJvcHMpfWJyZWFrO2Nhc2UgMjc6b3QodCxlKSxzdChlKSxuJjUxMiYmKFJlfHxhPT09bnVsbHx8TnQoYSxhLnJldHVybikpLGEhPT1udWxsJiZuJjQmJnhjKGUsZS5tZW1vaXplZFByb3BzLGEubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmlmKG90KHQsZSksc3QoZSksbiY1MTImJihSZXx8YT09PW51bGx8fE50KGEsYS5yZXR1cm4pKSxlLmZsYWdzJjMyKXtsPWUuc3RhdGVOb2RlO3RyeXtaYShsLCIiKX1jYXRjaChiKXtfZShlLGUucmV0dXJuLGIpfX1uJjQmJmUuc3RhdGVOb2RlIT1udWxsJiYobD1lLm1lbW9pemVkUHJvcHMseGMoZSxsLGEhPT1udWxsP2EubWVtb2l6ZWRQcm9wczpsKSksbiYxMDI0JiYoRGM9ITApO2JyZWFrO2Nhc2UgNjppZihvdCh0LGUpLHN0KGUpLG4mNCl7aWYoZS5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTYyKSk7bj1lLm1lbW9pemVkUHJvcHMsYT1lLnN0YXRlTm9kZTt0cnl7YS5ub2RlVmFsdWU9bn1jYXRjaChiKXtfZShlLGUucmV0dXJuLGIpfX1icmVhaztjYXNlIDM6aWYocWk9bnVsbCxsPUF0LEF0PVVpKHQuY29udGFpbmVySW5mbyksb3QodCxlKSxBdD1sLHN0KGUpLG4mNCYmYSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e1RsKHQuY29udGFpbmVySW5mbyl9Y2F0Y2goYil7X2UoZSxlLnJldHVybixiKX1EYyYmKERjPSExLHBmKGUpKTticmVhaztjYXNlIDQ6bj1BdCxBdD1VaShlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxvdCh0LGUpLHN0KGUpLEF0PW47YnJlYWs7Y2FzZSAxMjpvdCh0LGUpLHN0KGUpO2JyZWFrO2Nhc2UgMTM6b3QodCxlKSxzdChlKSxlLmNoaWxkLmZsYWdzJjgxOTImJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwhPShhIT09bnVsbCYmYS5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihxYz16dCgpKSxuJjQmJihuPWUudXBkYXRlUXVldWUsbiE9PW51bGwmJihlLnVwZGF0ZVF1ZXVlPW51bGwsTmMoZSxuKSkpO2JyZWFrO2Nhc2UgMjI6bD1lLm1lbW9pemVkU3RhdGUhPT1udWxsO3ZhciByPWEhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUhPT1udWxsLHA9a3QsQT1SZTtpZihrdD1wfHxsLFJlPUF8fHIsb3QodCxlKSxSZT1BLGt0PXAsc3QoZSksbiY4MTkyKWU6Zm9yKHQ9ZS5zdGF0ZU5vZGUsdC5fdmlzaWJpbGl0eT1sP3QuX3Zpc2liaWxpdHkmLTI6dC5fdmlzaWJpbGl0eXwxLGwmJihhPT09bnVsbHx8cnx8a3R8fFJlfHxDYShlKSksYT1udWxsLHQ9ZTs7KXtpZih0LnRhZz09PTV8fHQudGFnPT09MjYpe2lmKGE9PT1udWxsKXtyPWE9dDt0cnl7aWYoaT1yLnN0YXRlTm9kZSxsKXU9aS5zdHlsZSx0eXBlb2YgdS5zZXRQcm9wZXJ0eT09ImZ1bmN0aW9uIj91LnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOnUuZGlzcGxheT0ibm9uZSI7ZWxzZXtjPXIuc3RhdGVOb2RlO3ZhciBSPXIubWVtb2l6ZWRQcm9wcy5zdHlsZSxnPVIhPW51bGwmJlIuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9SLmRpc3BsYXk6bnVsbDtjLnN0eWxlLmRpc3BsYXk9Zz09bnVsbHx8dHlwZW9mIGc9PSJib29sZWFuIj8iIjooIiIrZykudHJpbSgpfX1jYXRjaChiKXtfZShyLHIucmV0dXJuLGIpfX19ZWxzZSBpZih0LnRhZz09PTYpe2lmKGE9PT1udWxsKXtyPXQ7dHJ5e3Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1sPyIiOnIubWVtb2l6ZWRQcm9wc31jYXRjaChiKXtfZShyLHIucmV0dXJuLGIpfX19ZWxzZSBpZigodC50YWchPT0yMiYmdC50YWchPT0yM3x8dC5tZW1vaXplZFN0YXRlPT09bnVsbHx8dD09PWUpJiZ0LmNoaWxkIT09bnVsbCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWsgZTtmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fHQucmV0dXJuPT09ZSlicmVhayBlO2E9PT10JiYoYT1udWxsKSx0PXQucmV0dXJufWE9PT10JiYoYT1udWxsKSx0LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfW4mNCYmKG49ZS51cGRhdGVRdWV1ZSxuIT09bnVsbCYmKGE9bi5yZXRyeVF1ZXVlLGEhPT1udWxsJiYobi5yZXRyeVF1ZXVlPW51bGwsTmMoZSxhKSkpKTticmVhaztjYXNlIDE5Om90KHQsZSksc3QoZSksbiY0JiYobj1lLnVwZGF0ZVF1ZXVlLG4hPT1udWxsJiYoZS51cGRhdGVRdWV1ZT1udWxsLE5jKGUsbikpKTticmVhaztjYXNlIDMwOmJyZWFrO2Nhc2UgMjE6YnJlYWs7ZGVmYXVsdDpvdCh0LGUpLHN0KGUpfX1mdW5jdGlvbiBzdChlKXt2YXIgdD1lLmZsYWdzO2lmKHQmMil7dHJ5e2Zvcih2YXIgYSxuPWUucmV0dXJuO24hPT1udWxsOyl7aWYocmYobikpe2E9bjticmVha31uPW4ucmV0dXJufWlmKGE9PW51bGwpdGhyb3cgRXJyb3IocygxNjApKTtzd2l0Y2goYS50YWcpe2Nhc2UgMjc6dmFyIGw9YS5zdGF0ZU5vZGUsaT16YyhlKTtiaShlLGksbCk7YnJlYWs7Y2FzZSA1OnZhciB1PWEuc3RhdGVOb2RlO2EuZmxhZ3MmMzImJihaYSh1LCIiKSxhLmZsYWdzJj0tMzMpO3ZhciBjPXpjKGUpO2JpKGUsYyx1KTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciByPWEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8scD16YyhlKTtSYyhlLHAscik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDE2MSkpfX1jYXRjaChBKXtfZShlLGUucmV0dXJuLEEpfWUuZmxhZ3MmPS0zfXQmNDA5NiYmKGUuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiBwZihlKXtpZihlLnN1YnRyZWVGbGFncyYxMDI0KWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXt2YXIgdD1lO3BmKHQpLHQudGFnPT09NSYmdC5mbGFncyYxMDI0JiZ0LnN0YXRlTm9kZS5yZXNldCgpLGU9ZS5zaWJsaW5nfX1mdW5jdGlvbiB1YShlLHQpe2lmKHQuc3VidHJlZUZsYWdzJjg3NzIpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspaGYoZSx0LmFsdGVybmF0ZSx0KSx0PXQuc2libGluZ31mdW5jdGlvbiBDYShlKXtmb3IoZT1lLmNoaWxkO2UhPT1udWxsOyl7dmFyIHQ9ZTtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppYSg0LHQsdC5yZXR1cm4pLENhKHQpO2JyZWFrO2Nhc2UgMTpOdCh0LHQucmV0dXJuKTt2YXIgYT10LnN0YXRlTm9kZTt0eXBlb2YgYS5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmb2YodCx0LnJldHVybixhKSxDYSh0KTticmVhaztjYXNlIDI3Om1sKHQuc3RhdGVOb2RlKTtjYXNlIDI2OmNhc2UgNTpOdCh0LHQucmV0dXJuKSxDYSh0KTticmVhaztjYXNlIDIyOnQubWVtb2l6ZWRTdGF0ZT09PW51bGwmJkNhKHQpO2JyZWFrO2Nhc2UgMzA6Q2EodCk7YnJlYWs7ZGVmYXVsdDpDYSh0KX1lPWUuc2libGluZ319ZnVuY3Rpb24gY2EoZSx0LGEpe2ZvcihhPWEmJih0LnN1YnRyZWVGbGFncyY4NzcyKSE9PTAsdD10LmNoaWxkO3QhPT1udWxsOyl7dmFyIG49dC5hbHRlcm5hdGUsbD1lLGk9dCx1PWkuZmxhZ3M7c3dpdGNoKGkudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhKGwsaSxhKSxsbCg0LGkpO2JyZWFrO2Nhc2UgMTppZihjYShsLGksYSksbj1pLGw9bi5zdGF0ZU5vZGUsdHlwZW9mIGwuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiIpdHJ5e2wuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChwKXtfZShuLG4ucmV0dXJuLHApfWlmKG49aSxsPW4udXBkYXRlUXVldWUsbCE9PW51bGwpe3ZhciBjPW4uc3RhdGVOb2RlO3RyeXt2YXIgcj1sLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYociE9PW51bGwpZm9yKGwuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGw9MDtsPHIubGVuZ3RoO2wrKylWcyhyW2xdLGMpfWNhdGNoKHApe19lKG4sbi5yZXR1cm4scCl9fWEmJnUmNjQmJmNmKGkpLGlsKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6ZmYoaSk7Y2FzZSAyNjpjYXNlIDU6Y2EobCxpLGEpLGEmJm49PT1udWxsJiZ1JjQmJnNmKGkpLGlsKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6Y2EobCxpLGEpO2JyZWFrO2Nhc2UgMTM6Y2EobCxpLGEpLGEmJnUmNCYmdmYobCxpKTticmVhaztjYXNlIDIyOmkubWVtb2l6ZWRTdGF0ZT09PW51bGwmJmNhKGwsaSxhKSxpbChpLGkucmV0dXJuKTticmVhaztjYXNlIDMwOmJyZWFrO2RlZmF1bHQ6Y2EobCxpLGEpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiBPYyhlLHQpe3ZhciBhPW51bGw7ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoYT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGU9bnVsbCx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKGU9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxlIT09YSYmKGUhPW51bGwmJmUucmVmQ291bnQrKyxhIT1udWxsJiZrbihhKSl9ZnVuY3Rpb24gTWMoZSx0KXtlPW51bGwsdC5hbHRlcm5hdGUhPT1udWxsJiYoZT10LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSx0IT09ZSYmKHQucmVmQ291bnQrKyxlIT1udWxsJiZrbihlKSl9ZnVuY3Rpb24gT3QoZSx0LGEsbil7aWYodC5zdWJ0cmVlRmxhZ3MmMTAyNTYpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspZ2YoZSx0LGEsbiksdD10LnNpYmxpbmd9ZnVuY3Rpb24gZ2YoZSx0LGEsbil7dmFyIGw9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6T3QoZSx0LGEsbiksbCYyMDQ4JiZsbCg5LHQpO2JyZWFrO2Nhc2UgMTpPdChlLHQsYSxuKTticmVhaztjYXNlIDM6T3QoZSx0LGEsbiksbCYyMDQ4JiYoZT1udWxsLHQuYWx0ZXJuYXRlIT09bnVsbCYmKGU9dC5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksdD10Lm1lbW9pemVkU3RhdGUuY2FjaGUsdCE9PWUmJih0LnJlZkNvdW50KyssZSE9bnVsbCYma24oZSkpKTticmVhaztjYXNlIDEyOmlmKGwmMjA0OCl7T3QoZSx0LGEsbiksZT10LnN0YXRlTm9kZTt0cnl7dmFyIGk9dC5tZW1vaXplZFByb3BzLHU9aS5pZCxjPWkub25Qb3N0Q29tbWl0O3R5cGVvZiBjPT0iZnVuY3Rpb24iJiZjKHUsdC5hbHRlcm5hdGU9PT1udWxsPyJtb3VudCI6InVwZGF0ZSIsZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24sLTApfWNhdGNoKHIpe19lKHQsdC5yZXR1cm4scil9fWVsc2UgT3QoZSx0LGEsbik7YnJlYWs7Y2FzZSAxMzpPdChlLHQsYSxuKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6aT10LnN0YXRlTm9kZSx1PXQuYWx0ZXJuYXRlLHQubWVtb2l6ZWRTdGF0ZSE9PW51bGw/aS5fdmlzaWJpbGl0eSYyP090KGUsdCxhLG4pOnVsKGUsdCk6aS5fdmlzaWJpbGl0eSYyP090KGUsdCxhLG4pOihpLl92aXNpYmlsaXR5fD0yLGZuKGUsdCxhLG4sKHQuc3VidHJlZUZsYWdzJjEwMjU2KSE9PTApKSxsJjIwNDgmJk9jKHUsdCk7YnJlYWs7Y2FzZSAyNDpPdChlLHQsYSxuKSxsJjIwNDgmJk1jKHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2RlZmF1bHQ6T3QoZSx0LGEsbil9fWZ1bmN0aW9uIGZuKGUsdCxhLG4sbCl7Zm9yKGw9bCYmKHQuc3VidHJlZUZsYWdzJjEwMjU2KSE9PTAsdD10LmNoaWxkO3QhPT1udWxsOyl7dmFyIGk9ZSx1PXQsYz1hLHI9bixwPXUuZmxhZ3M7c3dpdGNoKHUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmZuKGksdSxjLHIsbCksbGwoOCx1KTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIEE9dS5zdGF0ZU5vZGU7dS5tZW1vaXplZFN0YXRlIT09bnVsbD9BLl92aXNpYmlsaXR5JjI/Zm4oaSx1LGMscixsKTp1bChpLHUpOihBLl92aXNpYmlsaXR5fD0yLGZuKGksdSxjLHIsbCkpLGwmJnAmMjA0OCYmT2ModS5hbHRlcm5hdGUsdSk7YnJlYWs7Y2FzZSAyNDpmbihpLHUsYyxyLGwpLGwmJnAmMjA0OCYmTWModS5hbHRlcm5hdGUsdSk7YnJlYWs7ZGVmYXVsdDpmbihpLHUsYyxyLGwpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiB1bChlLHQpe2lmKHQuc3VidHJlZUZsYWdzJjEwMjU2KWZvcih0PXQuY2hpbGQ7dCE9PW51bGw7KXt2YXIgYT1lLG49dCxsPW4uZmxhZ3M7c3dpdGNoKG4udGFnKXtjYXNlIDIyOnVsKGEsbiksbCYyMDQ4JiZPYyhuLmFsdGVybmF0ZSxuKTticmVhaztjYXNlIDI0OnVsKGEsbiksbCYyMDQ4JiZNYyhuLmFsdGVybmF0ZSxuKTticmVhaztkZWZhdWx0OnVsKGEsbil9dD10LnNpYmxpbmd9fXZhciBjbD04MTkyO2Z1bmN0aW9uIGRuKGUpe2lmKGUuc3VidHJlZUZsYWdzJmNsKWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KWJmKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGJmKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpkbihlKSxlLmZsYWdzJmNsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZUXyhBdCxlLm1lbW9pemVkU3RhdGUsZS5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6ZG4oZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgdD1BdDtBdD1VaShlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkbihlKSxBdD10O2JyZWFrO2Nhc2UgMjI6ZS5tZW1vaXplZFN0YXRlPT09bnVsbCYmKHQ9ZS5hbHRlcm5hdGUsdCE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZSE9PW51bGw/KHQ9Y2wsY2w9MTY3NzcyMTYsZG4oZSksY2w9dCk6ZG4oZSkpO2JyZWFrO2RlZmF1bHQ6ZG4oZSl9fWZ1bmN0aW9uIFNmKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKHQhPT1udWxsJiYoZT10LmNoaWxkLGUhPT1udWxsKSl7dC5jaGlsZD1udWxsO2RvIHQ9ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9dDt3aGlsZShlIT09bnVsbCl9fWZ1bmN0aW9uIG9sKGUpe3ZhciB0PWUuZGVsZXRpb25zO2lmKChlLmZsYWdzJjE2KSE9PTApe2lmKHQhPT1udWxsKWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO1llPW4sRWYobixlKX1TZihlKX1pZihlLnN1YnRyZWVGbGFncyYxMDI1Nilmb3IoZT1lLmNoaWxkO2UhPT1udWxsOylUZihlKSxlPWUuc2libGluZ31mdW5jdGlvbiBUZihlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6b2woZSksZS5mbGFncyYyMDQ4JiZpYSg5LGUsZS5yZXR1cm4pO2JyZWFrO2Nhc2UgMzpvbChlKTticmVhaztjYXNlIDEyOm9sKGUpO2JyZWFrO2Nhc2UgMjI6dmFyIHQ9ZS5zdGF0ZU5vZGU7ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmdC5fdmlzaWJpbGl0eSYyJiYoZS5yZXR1cm49PT1udWxsfHxlLnJldHVybi50YWchPT0xMyk/KHQuX3Zpc2liaWxpdHkmPS0zLFNpKGUpKTpvbChlKTticmVhaztkZWZhdWx0Om9sKGUpfX1mdW5jdGlvbiBTaShlKXt2YXIgdD1lLmRlbGV0aW9ucztpZigoZS5mbGFncyYxNikhPT0wKXtpZih0IT09bnVsbClmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG49dFthXTtZZT1uLEVmKG4sZSl9U2YoZSl9Zm9yKGU9ZS5jaGlsZDtlIT09bnVsbDspe3N3aXRjaCh0PWUsdC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWEoOCx0LHQucmV0dXJuKSxTaSh0KTticmVhaztjYXNlIDIyOmE9dC5zdGF0ZU5vZGUsYS5fdmlzaWJpbGl0eSYyJiYoYS5fdmlzaWJpbGl0eSY9LTMsU2kodCkpO2JyZWFrO2RlZmF1bHQ6U2kodCl9ZT1lLnNpYmxpbmd9fWZ1bmN0aW9uIEVmKGUsdCl7Zm9yKDtZZSE9PW51bGw7KXt2YXIgYT1ZZTtzd2l0Y2goYS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWEoOCxhLHQpO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyMjppZihhLm1lbW9pemVkU3RhdGUhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCl7dmFyIG49YS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sO24hPW51bGwmJm4ucmVmQ291bnQrK31icmVhaztjYXNlIDI0OmtuKGEubWVtb2l6ZWRTdGF0ZS5jYWNoZSl9aWYobj1hLmNoaWxkLG4hPT1udWxsKW4ucmV0dXJuPWEsWWU9bjtlbHNlIGU6Zm9yKGE9ZTtZZSE9PW51bGw7KXtuPVllO3ZhciBsPW4uc2libGluZyxpPW4ucmV0dXJuO2lmKG1mKG4pLG49PT1hKXtZZT1udWxsO2JyZWFrIGV9aWYobCE9PW51bGwpe2wucmV0dXJuPWksWWU9bDticmVhayBlfVllPWl9fX12YXIgQm09e2dldENhY2hlRm9yVHlwZTpmdW5jdGlvbihlKXt2YXIgdD1WZShVZSksYT10LmRhdGEuZ2V0KGUpO3JldHVybiBhPT09dm9pZCAwJiYoYT1lKCksdC5kYXRhLnNldChlLGEpKSxhfX0sWW09dHlwZW9mIFdlYWtNYXA9PSJmdW5jdGlvbiI/V2Vha01hcDpNYXAsb2U9MCx5ZT1udWxsLFA9bnVsbCx0ZT0wLHNlPTAscnQ9bnVsbCxvYT0hMSxobj0hMSx3Yz0hMSxWdD0wLEFlPTAsc2E9MCxxYT0wLFVjPTAsYnQ9MCxtbj0wLHNsPW51bGwsZXQ9bnVsbCxDYz0hMSxxYz0wLFRpPTEvMCxFaT1udWxsLHJhPW51bGwsWGU9MCxmYT1udWxsLF9uPW51bGwsdm49MCxqYz0wLEhjPW51bGwsQWY9bnVsbCxybD0wLEJjPW51bGw7ZnVuY3Rpb24gZnQoKXtpZigob2UmMikhPT0wJiZ0ZSE9PTApcmV0dXJuIHRlJi10ZTtpZih4LlQhPT1udWxsKXt2YXIgZT1hbjtyZXR1cm4gZSE9PTA/ZTpaYygpfXJldHVybiBZbygpfWZ1bmN0aW9uIHhmKCl7YnQ9PT0wJiYoYnQ9KHRlJjUzNjg3MDkxMik9PT0wfHx1ZT9xbygpOjUzNjg3MDkxMik7dmFyIGU9Z3QuY3VycmVudDtyZXR1cm4gZSE9PW51bGwmJihlLmZsYWdzfD0zMiksYnR9ZnVuY3Rpb24gZHQoZSx0LGEpeyhlPT09eWUmJihzZT09PTJ8fHNlPT09OSl8fGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGwpJiYoeW4oZSwwKSxkYShlLHRlLGJ0LCExKSksRG4oZSxhKSwoKG9lJjIpPT09MHx8ZSE9PXllKSYmKGU9PT15ZSYmKChvZSYyKT09PTAmJihxYXw9YSksQWU9PT00JiZkYShlLHRlLGJ0LCExKSksTXQoZSkpfWZ1bmN0aW9uIHpmKGUsdCxhKXtpZigob2UmNikhPT0wKXRocm93IEVycm9yKHMoMzI3KSk7dmFyIG49IWEmJih0JjEyNCk9PT0wJiYodCZlLmV4cGlyZWRMYW5lcyk9PT0wfHxSbihlLHQpLGw9bj9YbShlLHQpOkdjKGUsdCwhMCksaT1uO2Rve2lmKGw9PT0wKXtobiYmIW4mJmRhKGUsdCwwLCExKTticmVha31lbHNle2lmKGE9ZS5jdXJyZW50LmFsdGVybmF0ZSxpJiYhTG0oYSkpe2w9R2MoZSx0LCExKSxpPSExO2NvbnRpbnVlfWlmKGw9PT0yKXtpZihpPXQsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyZpKXZhciB1PTA7ZWxzZSB1PWUucGVuZGluZ0xhbmVzJi01MzY4NzA5MTMsdT11IT09MD91OnUmNTM2ODcwOTEyPzUzNjg3MDkxMjowO2lmKHUhPT0wKXt0PXU7ZTp7dmFyIGM9ZTtsPXNsO3ZhciByPWMuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZDtpZihyJiYoeW4oYyx1KS5mbGFnc3w9MjU2KSx1PUdjKGMsdSwhMSksdSE9PTIpe2lmKHdjJiYhcil7Yy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lc3w9aSxxYXw9aSxsPTQ7YnJlYWsgZX1pPWV0LGV0PWwsaSE9PW51bGwmJihldD09PW51bGw/ZXQ9aTpldC5wdXNoLmFwcGx5KGV0LGkpKX1sPXV9aWYoaT0hMSxsIT09Miljb250aW51ZX19aWYobD09PTEpe3luKGUsMCksZGEoZSx0LDAsITApO2JyZWFrfWU6e3N3aXRjaChuPWUsaT1sLGkpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocygzNDUpKTtjYXNlIDQ6aWYoKHQmNDE5NDA0OCkhPT10KWJyZWFrO2Nhc2UgNjpkYShuLHQsYnQsIW9hKTticmVhayBlO2Nhc2UgMjpldD1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDMyOSkpfWlmKCh0JjYyOTE0NTYwKT09PXQmJihsPXFjKzMwMC16dCgpLDEwPGwpKXtpZihkYShuLHQsYnQsIW9hKSxDbChuLDAsITApIT09MClicmVhayBlO24udGltZW91dEhhbmRsZT10ZChSZi5iaW5kKG51bGwsbixhLGV0LEVpLENjLHQsYnQscWEsbW4sb2EsaSwyLC0wLDApLGwpO2JyZWFrIGV9UmYobixhLGV0LEVpLENjLHQsYnQscWEsbW4sb2EsaSwwLC0wLDApfX1icmVha313aGlsZSghMCk7TXQoZSl9ZnVuY3Rpb24gUmYoZSx0LGEsbixsLGksdSxjLHIscCxBLFIsZyxiKXtpZihlLnRpbWVvdXRIYW5kbGU9LTEsUj10LnN1YnRyZWVGbGFncywoUiY4MTkyfHwoUiYxNjc4NTQwOCk9PT0xNjc4NTQwOCkmJih5bD17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLHVuc3VzcGVuZDpTX30sYmYodCksUj1FXygpLFIhPT1udWxsKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PVIoQ2YuYmluZChudWxsLGUsdCxpLGEsbixsLHUsYyxyLEEsMSxnLGIpKSxkYShlLGksdSwhcCk7cmV0dXJufUNmKGUsdCxpLGEsbixsLHUsYyxyKX1mdW5jdGlvbiBMbShlKXtmb3IodmFyIHQ9ZTs7KXt2YXIgYT10LnRhZztpZigoYT09PTB8fGE9PT0xMXx8YT09PTE1KSYmdC5mbGFncyYxNjM4NCYmKGE9dC51cGRhdGVRdWV1ZSxhIT09bnVsbCYmKGE9YS5zdG9yZXMsYSE9PW51bGwpKSlmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKyl7dmFyIGw9YVtuXSxpPWwuZ2V0U25hcHNob3Q7bD1sLnZhbHVlO3RyeXtpZighdXQoaSgpLGwpKXJldHVybiExfWNhdGNoe3JldHVybiExfX1pZihhPXQuY2hpbGQsdC5zdWJ0cmVlRmxhZ3MmMTYzODQmJmEhPT1udWxsKWEucmV0dXJuPXQsdD1hO2Vsc2V7aWYodD09PWUpYnJlYWs7Zm9yKDt0LnNpYmxpbmc9PT1udWxsOyl7aWYodC5yZXR1cm49PT1udWxsfHx0LnJldHVybj09PWUpcmV0dXJuITA7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfX1yZXR1cm4hMH1mdW5jdGlvbiBkYShlLHQsYSxuKXt0Jj1+VWMsdCY9fnFhLGUuc3VzcGVuZGVkTGFuZXN8PXQsZS5waW5nZWRMYW5lcyY9fnQsbiYmKGUud2FybUxhbmVzfD10KSxuPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbD10OzA8bDspe3ZhciBpPTMxLWl0KGwpLHU9MTw8aTtuW2ldPS0xLGwmPX51fWEhPT0wJiZIbyhlLGEsdCl9ZnVuY3Rpb24gQWkoKXtyZXR1cm4ob2UmNik9PT0wPyhmbCgwKSwhMSk6ITB9ZnVuY3Rpb24gWWMoKXtpZihQIT09bnVsbCl7aWYoc2U9PT0wKXZhciBlPVAucmV0dXJuO2Vsc2UgZT1QLEJ0PU5hPW51bGwsYWMoZSksc249bnVsbCx0bD0wLGU9UDtmb3IoO2UhPT1udWxsOyl1ZihlLmFsdGVybmF0ZSxlKSxlPWUucmV0dXJuO1A9bnVsbH19ZnVuY3Rpb24geW4oZSx0KXt2YXIgYT1lLnRpbWVvdXRIYW5kbGU7YSE9PS0xJiYoZS50aW1lb3V0SGFuZGxlPS0xLGxfKGEpKSxhPWUuY2FuY2VsUGVuZGluZ0NvbW1pdCxhIT09bnVsbCYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLGEoKSksWWMoKSx5ZT1lLFA9YT1xdChlLmN1cnJlbnQsbnVsbCksdGU9dCxzZT0wLHJ0PW51bGwsb2E9ITEsaG49Um4oZSx0KSx3Yz0hMSxtbj1idD1VYz1xYT1zYT1BZT0wLGV0PXNsPW51bGwsQ2M9ITEsKHQmOCkhPT0wJiYodHw9dCYzMik7dmFyIG49ZS5lbnRhbmdsZWRMYW5lcztpZihuIT09MClmb3IoZT1lLmVudGFuZ2xlbWVudHMsbiY9dDswPG47KXt2YXIgbD0zMS1pdChuKSxpPTE8PGw7dHw9ZVtsXSxuJj1+aX1yZXR1cm4gVnQ9dCxWbCgpLGF9ZnVuY3Rpb24gRGYoZSx0KXtKPW51bGwseC5IPWZpLHQ9PT1Wbnx8dD09PXRpPyh0PWtzKCksc2U9Myk6dD09PUdzPyh0PWtzKCksc2U9NCk6c2U9dD09PVpyPzg6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIj82OjEscnQ9dCxQPT09bnVsbCYmKEFlPTEsdmkoZSxfdCh0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBOZigpe3ZhciBlPXguSDtyZXR1cm4geC5IPWZpLGU9PT1udWxsP2ZpOmV9ZnVuY3Rpb24gT2YoKXt2YXIgZT14LkE7cmV0dXJuIHguQT1CbSxlfWZ1bmN0aW9uIExjKCl7QWU9NCxvYXx8KHRlJjQxOTQwNDgpIT09dGUmJmd0LmN1cnJlbnQhPT1udWxsfHwoaG49ITApLChzYSYxMzQyMTc3MjcpPT09MCYmKHFhJjEzNDIxNzcyNyk9PT0wfHx5ZT09PW51bGx8fGRhKHllLHRlLGJ0LCExKX1mdW5jdGlvbiBHYyhlLHQsYSl7dmFyIG49b2U7b2V8PTI7dmFyIGw9TmYoKSxpPU9mKCk7KHllIT09ZXx8dGUhPT10KSYmKEVpPW51bGwseW4oZSx0KSksdD0hMTt2YXIgdT1BZTtlOmRvIHRyeXtpZihzZSE9PTAmJlAhPT1udWxsKXt2YXIgYz1QLHI9cnQ7c3dpdGNoKHNlKXtjYXNlIDg6WWMoKSx1PTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6Z3QuY3VycmVudD09PW51bGwmJih0PSEwKTt2YXIgcD1zZTtpZihzZT0wLHJ0PW51bGwscG4oZSxjLHIscCksYSYmaG4pe3U9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6cD1zZSxzZT0wLHJ0PW51bGwscG4oZSxjLHIscCl9fUdtKCksdT1BZTticmVha31jYXRjaChBKXtEZihlLEEpfXdoaWxlKCEwKTtyZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssQnQ9TmE9bnVsbCxvZT1uLHguSD1sLHguQT1pLFA9PT1udWxsJiYoeWU9bnVsbCx0ZT0wLFZsKCkpLHV9ZnVuY3Rpb24gR20oKXtmb3IoO1AhPT1udWxsOylNZihQKX1mdW5jdGlvbiBYbShlLHQpe3ZhciBhPW9lO29lfD0yO3ZhciBuPU5mKCksbD1PZigpO3llIT09ZXx8dGUhPT10PyhFaT1udWxsLFRpPXp0KCkrNTAwLHluKGUsdCkpOmhuPVJuKGUsdCk7ZTpkbyB0cnl7aWYoc2UhPT0wJiZQIT09bnVsbCl7dD1QO3ZhciBpPXJ0O3Q6c3dpdGNoKHNlKXtjYXNlIDE6c2U9MCxydD1udWxsLHBuKGUsdCxpLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYoWHMoaSkpe3NlPTAscnQ9bnVsbCx3Zih0KTticmVha310PWZ1bmN0aW9uKCl7c2UhPT0yJiZzZSE9PTl8fHllIT09ZXx8KHNlPTcpLE10KGUpfSxpLnRoZW4odCx0KTticmVhayBlO2Nhc2UgMzpzZT03O2JyZWFrIGU7Y2FzZSA0OnNlPTU7YnJlYWsgZTtjYXNlIDc6WHMoaSk/KHNlPTAscnQ9bnVsbCx3Zih0KSk6KHNlPTAscnQ9bnVsbCxwbihlLHQsaSw3KSk7YnJlYWs7Y2FzZSA1OnZhciB1PW51bGw7c3dpdGNoKFAudGFnKXtjYXNlIDI2OnU9UC5tZW1vaXplZFN0YXRlO2Nhc2UgNTpjYXNlIDI3OnZhciBjPVA7aWYoIXV8fGhkKHUpKXtzZT0wLHJ0PW51bGw7dmFyIHI9Yy5zaWJsaW5nO2lmKHIhPT1udWxsKVA9cjtlbHNle3ZhciBwPWMucmV0dXJuO3AhPT1udWxsPyhQPXAseGkocCkpOlA9bnVsbH1icmVhayB0fX1zZT0wLHJ0PW51bGwscG4oZSx0LGksNSk7YnJlYWs7Y2FzZSA2OnNlPTAscnQ9bnVsbCxwbihlLHQsaSw2KTticmVhaztjYXNlIDg6WWMoKSxBZT02O2JyZWFrIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ2MikpfX1RbSgpO2JyZWFrfWNhdGNoKEEpe0RmKGUsQSl9d2hpbGUoITApO3JldHVybiBCdD1OYT1udWxsLHguSD1uLHguQT1sLG9lPWEsUCE9PW51bGw/MDooeWU9bnVsbCx0ZT0wLFZsKCksQWUpfWZ1bmN0aW9uIFFtKCl7Zm9yKDtQIT09bnVsbCYmIWZoKCk7KU1mKFApfWZ1bmN0aW9uIE1mKGUpe3ZhciB0PW5mKGUuYWx0ZXJuYXRlLGUsVnQpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyx0PT09bnVsbD94aShlKTpQPXR9ZnVuY3Rpb24gd2YoZSl7dmFyIHQ9ZSxhPXQuYWx0ZXJuYXRlO3N3aXRjaCh0LnRhZyl7Y2FzZSAxNTpjYXNlIDA6dD1GcihhLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLHZvaWQgMCx0ZSk7YnJlYWs7Y2FzZSAxMTp0PUZyKGEsdCx0LnBlbmRpbmdQcm9wcyx0LnR5cGUucmVuZGVyLHQucmVmLHRlKTticmVhaztjYXNlIDU6YWModCk7ZGVmYXVsdDp1ZihhLHQpLHQ9UD13cyh0LFZ0KSx0PW5mKGEsdCxWdCl9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLHQ9PT1udWxsP3hpKGUpOlA9dH1mdW5jdGlvbiBwbihlLHQsYSxuKXtCdD1OYT1udWxsLGFjKHQpLHNuPW51bGwsdGw9MDt2YXIgbD10LnJldHVybjt0cnl7aWYod20oZSxsLHQsYSx0ZSkpe0FlPTEsdmkoZSxfdChhLGUuY3VycmVudCkpLFA9bnVsbDtyZXR1cm59fWNhdGNoKGkpe2lmKGwhPT1udWxsKXRocm93IFA9bCxpO0FlPTEsdmkoZSxfdChhLGUuY3VycmVudCkpLFA9bnVsbDtyZXR1cm59dC5mbGFncyYzMjc2OD8odWV8fG49PT0xP2U9ITA6aG58fCh0ZSY1MzY4NzA5MTIpIT09MD9lPSExOihvYT1lPSEwLChuPT09Mnx8bj09PTl8fG49PT0zfHxuPT09NikmJihuPWd0LmN1cnJlbnQsbiE9PW51bGwmJm4udGFnPT09MTMmJihuLmZsYWdzfD0xNjM4NCkpKSxVZih0LGUpKTp4aSh0KX1mdW5jdGlvbiB4aShlKXt2YXIgdD1lO2Rve2lmKCh0LmZsYWdzJjMyNzY4KSE9PTApe1VmKHQsb2EpO3JldHVybn1lPXQucmV0dXJuO3ZhciBhPUNtKHQuYWx0ZXJuYXRlLHQsVnQpO2lmKGEhPT1udWxsKXtQPWE7cmV0dXJufWlmKHQ9dC5zaWJsaW5nLHQhPT1udWxsKXtQPXQ7cmV0dXJufVA9dD1lfXdoaWxlKHQhPT1udWxsKTtBZT09PTAmJihBZT01KX1mdW5jdGlvbiBVZihlLHQpe2Rve3ZhciBhPXFtKGUuYWx0ZXJuYXRlLGUpO2lmKGEhPT1udWxsKXthLmZsYWdzJj0zMjc2NyxQPWE7cmV0dXJufWlmKGE9ZS5yZXR1cm4sYSE9PW51bGwmJihhLmZsYWdzfD0zMjc2OCxhLnN1YnRyZWVGbGFncz0wLGEuZGVsZXRpb25zPW51bGwpLCF0JiYoZT1lLnNpYmxpbmcsZSE9PW51bGwpKXtQPWU7cmV0dXJufVA9ZT1hfXdoaWxlKGUhPT1udWxsKTtBZT02LFA9bnVsbH1mdW5jdGlvbiBDZihlLHQsYSxuLGwsaSx1LGMscil7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGw7ZG8gemkoKTt3aGlsZShYZSE9PTApO2lmKChvZSY2KSE9PTApdGhyb3cgRXJyb3IocygzMjcpKTtpZih0IT09bnVsbCl7aWYodD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihzKDE3NykpO2lmKGk9dC5sYW5lc3x0LmNoaWxkTGFuZXMsaXw9TXUsU2goZSxhLGksdSxjLHIpLGU9PT15ZSYmKFA9eWU9bnVsbCx0ZT0wKSxfbj10LGZhPWUsdm49YSxqYz1pLEhjPWwsQWY9biwodC5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KHQuZmxhZ3MmMTAyNTYpIT09MD8oZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxLbShNbCxmdW5jdGlvbigpe3JldHVybiBZZigpLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLG49KHQuZmxhZ3MmMTM4NzgpIT09MCwodC5zdWJ0cmVlRmxhZ3MmMTM4NzgpIT09MHx8bil7bj14LlQseC5UPW51bGwsbD1DLnAsQy5wPTIsdT1vZSxvZXw9NDt0cnl7am0oZSx0LGEpfWZpbmFsbHl7b2U9dSxDLnA9bCx4LlQ9bn19WGU9MSxxZigpLGpmKCksSGYoKX19ZnVuY3Rpb24gcWYoKXtpZihYZT09PTEpe1hlPTA7dmFyIGU9ZmEsdD1fbixhPSh0LmZsYWdzJjEzODc4KSE9PTA7aWYoKHQuc3VidHJlZUZsYWdzJjEzODc4KSE9PTB8fGEpe2E9eC5ULHguVD1udWxsO3ZhciBuPUMucDtDLnA9Mjt2YXIgbD1vZTtvZXw9NDt0cnl7eWYodCxlKTt2YXIgaT1JYyx1PVRzKGUuY29udGFpbmVySW5mbyksYz1pLmZvY3VzZWRFbGVtLHI9aS5zZWxlY3Rpb25SYW5nZTtpZih1IT09YyYmYyYmYy5vd25lckRvY3VtZW50JiZTcyhjLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGMpKXtpZihyIT09bnVsbCYmenUoYykpe3ZhciBwPXIuc3RhcnQsQT1yLmVuZDtpZihBPT09dm9pZCAwJiYoQT1wKSwic2VsZWN0aW9uU3RhcnQiaW4gYyljLnNlbGVjdGlvblN0YXJ0PXAsYy5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oQSxjLnZhbHVlLmxlbmd0aCk7ZWxzZXt2YXIgUj1jLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LGc9UiYmUi5kZWZhdWx0Vmlld3x8d2luZG93O2lmKGcuZ2V0U2VsZWN0aW9uKXt2YXIgYj1nLmdldFNlbGVjdGlvbigpLGs9Yy50ZXh0Q29udGVudC5sZW5ndGgsRz1NYXRoLm1pbihyLnN0YXJ0LGspLGRlPXIuZW5kPT09dm9pZCAwP0c6TWF0aC5taW4oci5lbmQsayk7IWIuZXh0ZW5kJiZHPmRlJiYodT1kZSxkZT1HLEc9dSk7dmFyIF89YnMoYyxHKSxoPWJzKGMsZGUpO2lmKF8mJmgmJihiLnJhbmdlQ291bnQhPT0xfHxiLmFuY2hvck5vZGUhPT1fLm5vZGV8fGIuYW5jaG9yT2Zmc2V0IT09Xy5vZmZzZXR8fGIuZm9jdXNOb2RlIT09aC5ub2RlfHxiLmZvY3VzT2Zmc2V0IT09aC5vZmZzZXQpKXt2YXIgdj1SLmNyZWF0ZVJhbmdlKCk7di5zZXRTdGFydChfLm5vZGUsXy5vZmZzZXQpLGIucmVtb3ZlQWxsUmFuZ2VzKCksRz5kZT8oYi5hZGRSYW5nZSh2KSxiLmV4dGVuZChoLm5vZGUsaC5vZmZzZXQpKToodi5zZXRFbmQoaC5ub2RlLGgub2Zmc2V0KSxiLmFkZFJhbmdlKHYpKX19fX1mb3IoUj1bXSxiPWM7Yj1iLnBhcmVudE5vZGU7KWIubm9kZVR5cGU9PT0xJiZSLnB1c2goe2VsZW1lbnQ6YixsZWZ0OmIuc2Nyb2xsTGVmdCx0b3A6Yi5zY3JvbGxUb3B9KTtmb3IodHlwZW9mIGMuZm9jdXM9PSJmdW5jdGlvbiImJmMuZm9jdXMoKSxjPTA7YzxSLmxlbmd0aDtjKyspe3ZhciB6PVJbY107ei5lbGVtZW50LnNjcm9sbExlZnQ9ei5sZWZ0LHouZWxlbWVudC5zY3JvbGxUb3A9ei50b3B9fUJpPSEhUGMsSWM9UGM9bnVsbH1maW5hbGx5e29lPWwsQy5wPW4seC5UPWF9fWUuY3VycmVudD10LFhlPTJ9fWZ1bmN0aW9uIGpmKCl7aWYoWGU9PT0yKXtYZT0wO3ZhciBlPWZhLHQ9X24sYT0odC5mbGFncyY4NzcyKSE9PTA7aWYoKHQuc3VidHJlZUZsYWdzJjg3NzIpIT09MHx8YSl7YT14LlQseC5UPW51bGw7dmFyIG49Qy5wO0MucD0yO3ZhciBsPW9lO29lfD00O3RyeXtoZihlLHQuYWx0ZXJuYXRlLHQpfWZpbmFsbHl7b2U9bCxDLnA9bix4LlQ9YX19WGU9M319ZnVuY3Rpb24gSGYoKXtpZihYZT09PTR8fFhlPT09Myl7WGU9MCxkaCgpO3ZhciBlPWZhLHQ9X24sYT12bixuPUFmOyh0LnN1YnRyZWVGbGFncyYxMDI1NikhPT0wfHwodC5mbGFncyYxMDI1NikhPT0wP1hlPTU6KFhlPTAsX249ZmE9bnVsbCxCZihlLGUucGVuZGluZ0xhbmVzKSk7dmFyIGw9ZS5wZW5kaW5nTGFuZXM7aWYobD09PTAmJihyYT1udWxsKSxpdShhKSx0PXQuc3RhdGVOb2RlLGx0JiZ0eXBlb2YgbHQub25Db21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2x0Lm9uQ29tbWl0RmliZXJSb290KHpuLHQsdm9pZCAwLCh0LmN1cnJlbnQuZmxhZ3MmMTI4KT09PTEyOCl9Y2F0Y2h7fWlmKG4hPT1udWxsKXt0PXguVCxsPUMucCxDLnA9Mix4LlQ9bnVsbDt0cnl7Zm9yKHZhciBpPWUub25SZWNvdmVyYWJsZUVycm9yLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGM9blt1XTtpKGMudmFsdWUse2NvbXBvbmVudFN0YWNrOmMuc3RhY2t9KX19ZmluYWxseXt4LlQ9dCxDLnA9bH19KHZuJjMpIT09MCYmemkoKSxNdChlKSxsPWUucGVuZGluZ0xhbmVzLChhJjQxOTQwOTApIT09MCYmKGwmNDIpIT09MD9lPT09QmM/cmwrKzoocmw9MCxCYz1lKTpybD0wLGZsKDApfX1mdW5jdGlvbiBCZihlLHQpeyhlLnBvb2xlZENhY2hlTGFuZXMmPXQpPT09MCYmKHQ9ZS5wb29sZWRDYWNoZSx0IT1udWxsJiYoZS5wb29sZWRDYWNoZT1udWxsLGtuKHQpKSl9ZnVuY3Rpb24gemkoZSl7cmV0dXJuIHFmKCksamYoKSxIZigpLFlmKCl9ZnVuY3Rpb24gWWYoKXtpZihYZSE9PTUpcmV0dXJuITE7dmFyIGU9ZmEsdD1qYztqYz0wO3ZhciBhPWl1KHZuKSxuPXguVCxsPUMucDt0cnl7Qy5wPTMyPmE/MzI6YSx4LlQ9bnVsbCxhPUhjLEhjPW51bGw7dmFyIGk9ZmEsdT12bjtpZihYZT0wLF9uPWZhPW51bGwsdm49MCwob2UmNikhPT0wKXRocm93IEVycm9yKHMoMzMxKSk7dmFyIGM9b2U7aWYob2V8PTQsVGYoaS5jdXJyZW50KSxnZihpLGkuY3VycmVudCx1LGEpLG9lPWMsZmwoMCwhMSksbHQmJnR5cGVvZiBsdC5vblBvc3RDb21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2x0Lm9uUG9zdENvbW1pdEZpYmVyUm9vdCh6bixpKX1jYXRjaHt9cmV0dXJuITB9ZmluYWxseXtDLnA9bCx4LlQ9bixCZihlLHQpfX1mdW5jdGlvbiBMZihlLHQsYSl7dD1fdChhLHQpLHQ9dmMoZS5zdGF0ZU5vZGUsdCwyKSxlPXRhKGUsdCwyKSxlIT09bnVsbCYmKERuKGUsMiksTXQoZSkpfWZ1bmN0aW9uIF9lKGUsdCxhKXtpZihlLnRhZz09PTMpTGYoZSxlLGEpO2Vsc2UgZm9yKDt0IT09bnVsbDspe2lmKHQudGFnPT09Myl7TGYodCxlLGEpO2JyZWFrfWVsc2UgaWYodC50YWc9PT0xKXt2YXIgbj10LnN0YXRlTm9kZTtpZih0eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj09ImZ1bmN0aW9uInx8dHlwZW9mIG4uY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihyYT09PW51bGx8fCFyYS5oYXMobikpKXtlPV90KGEsZSksYT1RcigyKSxuPXRhKHQsYSwyKSxuIT09bnVsbCYmKGtyKGEsbix0LGUpLERuKG4sMiksTXQobikpO2JyZWFrfX10PXQucmV0dXJufX1mdW5jdGlvbiBYYyhlLHQsYSl7dmFyIG49ZS5waW5nQ2FjaGU7aWYobj09PW51bGwpe249ZS5waW5nQ2FjaGU9bmV3IFltO3ZhciBsPW5ldyBTZXQ7bi5zZXQodCxsKX1lbHNlIGw9bi5nZXQodCksbD09PXZvaWQgMCYmKGw9bmV3IFNldCxuLnNldCh0LGwpKTtsLmhhcyhhKXx8KHdjPSEwLGwuYWRkKGEpLGU9a20uYmluZChudWxsLGUsdCxhKSx0LnRoZW4oZSxlKSl9ZnVuY3Rpb24ga20oZSx0LGEpe3ZhciBuPWUucGluZ0NhY2hlO24hPT1udWxsJiZuLmRlbGV0ZSh0KSxlLnBpbmdlZExhbmVzfD1lLnN1c3BlbmRlZExhbmVzJmEsZS53YXJtTGFuZXMmPX5hLHllPT09ZSYmKHRlJmEpPT09YSYmKEFlPT09NHx8QWU9PT0zJiYodGUmNjI5MTQ1NjApPT09dGUmJjMwMD56dCgpLXFjPyhvZSYyKT09PTAmJnluKGUsMCk6VWN8PWEsbW49PT10ZSYmKG1uPTApKSxNdChlKX1mdW5jdGlvbiBHZihlLHQpe3Q9PT0wJiYodD1qbygpKSxlPVBhKGUsdCksZSE9PW51bGwmJihEbihlLHQpLE10KGUpKX1mdW5jdGlvbiBabShlKXt2YXIgdD1lLm1lbW9pemVkU3RhdGUsYT0wO3QhPT1udWxsJiYoYT10LnJldHJ5TGFuZSksR2YoZSxhKX1mdW5jdGlvbiBWbShlLHQpe3ZhciBhPTA7c3dpdGNoKGUudGFnKXtjYXNlIDEzOnZhciBuPWUuc3RhdGVOb2RlLGw9ZS5tZW1vaXplZFN0YXRlO2whPT1udWxsJiYoYT1sLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpuPWUuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMjI6bj1lLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHMoMzE0KSl9biE9PW51bGwmJm4uZGVsZXRlKHQpLEdmKGUsYSl9ZnVuY3Rpb24gS20oZSx0KXtyZXR1cm4gdHUoZSx0KX12YXIgUmk9bnVsbCxnbj1udWxsLFFjPSExLERpPSExLGtjPSExLGphPTA7ZnVuY3Rpb24gTXQoZSl7ZSE9PWduJiZlLm5leHQ9PT1udWxsJiYoZ249PT1udWxsP1JpPWduPWU6Z249Z24ubmV4dD1lKSxEaT0hMCxRY3x8KFFjPSEwLCRtKCkpfWZ1bmN0aW9uIGZsKGUsdCl7aWYoIWtjJiZEaSl7a2M9ITA7ZG8gZm9yKHZhciBhPSExLG49Umk7biE9PW51bGw7KXtpZihlIT09MCl7dmFyIGw9bi5wZW5kaW5nTGFuZXM7aWYobD09PTApdmFyIGk9MDtlbHNle3ZhciB1PW4uc3VzcGVuZGVkTGFuZXMsYz1uLnBpbmdlZExhbmVzO2k9KDE8PDMxLWl0KDQyfGUpKzEpLTEsaSY9bCZ+KHUmfmMpLGk9aSYyMDEzMjY3NDE/aSYyMDEzMjY3NDF8MTppP2l8MjowfWkhPT0wJiYoYT0hMCxaZihuLGkpKX1lbHNlIGk9dGUsaT1DbChuLG49PT15ZT9pOjAsbi5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbHx8bi50aW1lb3V0SGFuZGxlIT09LTEpLChpJjMpPT09MHx8Um4obixpKXx8KGE9ITAsWmYobixpKSk7bj1uLm5leHR9d2hpbGUoYSk7a2M9ITF9fWZ1bmN0aW9uIEptKCl7WGYoKX1mdW5jdGlvbiBYZigpe0RpPVFjPSExO3ZhciBlPTA7amEhPT0wJiYobl8oKSYmKGU9amEpLGphPTApO2Zvcih2YXIgdD16dCgpLGE9bnVsbCxuPVJpO24hPT1udWxsOyl7dmFyIGw9bi5uZXh0LGk9UWYobix0KTtpPT09MD8obi5uZXh0PW51bGwsYT09PW51bGw/Umk9bDphLm5leHQ9bCxsPT09bnVsbCYmKGduPWEpKTooYT1uLChlIT09MHx8KGkmMykhPT0wKSYmKERpPSEwKSksbj1sfWZsKGUpfWZ1bmN0aW9uIFFmKGUsdCl7Zm9yKHZhciBhPWUuc3VzcGVuZGVkTGFuZXMsbj1lLnBpbmdlZExhbmVzLGw9ZS5leHBpcmF0aW9uVGltZXMsaT1lLnBlbmRpbmdMYW5lcyYtNjI5MTQ1NjE7MDxpOyl7dmFyIHU9MzEtaXQoaSksYz0xPDx1LHI9bFt1XTtyPT09LTE/KChjJmEpPT09MHx8KGMmbikhPT0wKSYmKGxbdV09YmgoYyx0KSk6cjw9dCYmKGUuZXhwaXJlZExhbmVzfD1jKSxpJj1+Y31pZih0PXllLGE9dGUsYT1DbChlLGU9PT10P2E6MCxlLmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHxlLnRpbWVvdXRIYW5kbGUhPT0tMSksbj1lLmNhbGxiYWNrTm9kZSxhPT09MHx8ZT09PXQmJihzZT09PTJ8fHNlPT09OSl8fGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGwpcmV0dXJuIG4hPT1udWxsJiZuIT09bnVsbCYmYXUobiksZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MDtpZigoYSYzKT09PTB8fFJuKGUsYSkpe2lmKHQ9YSYtYSx0PT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChuIT09bnVsbCYmYXUobiksaXUoYSkpe2Nhc2UgMjpjYXNlIDg6YT1VbzticmVhaztjYXNlIDMyOmE9TWw7YnJlYWs7Y2FzZSAyNjg0MzU0NTY6YT1DbzticmVhaztkZWZhdWx0OmE9TWx9cmV0dXJuIG49a2YuYmluZChudWxsLGUpLGE9dHUoYSxuKSxlLmNhbGxiYWNrUHJpb3JpdHk9dCxlLmNhbGxiYWNrTm9kZT1hLHR9cmV0dXJuIG4hPT1udWxsJiZuIT09bnVsbCYmYXUobiksZS5jYWxsYmFja1ByaW9yaXR5PTIsZS5jYWxsYmFja05vZGU9bnVsbCwyfWZ1bmN0aW9uIGtmKGUsdCl7aWYoWGUhPT0wJiZYZSE9PTUpcmV0dXJuIGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTAsbnVsbDt2YXIgYT1lLmNhbGxiYWNrTm9kZTtpZih6aSgpJiZlLmNhbGxiYWNrTm9kZSE9PWEpcmV0dXJuIG51bGw7dmFyIG49dGU7cmV0dXJuIG49Q2woZSxlPT09eWU/bjowLGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGx8fGUudGltZW91dEhhbmRsZSE9PS0xKSxuPT09MD9udWxsOih6ZihlLG4sdCksUWYoZSx6dCgpKSxlLmNhbGxiYWNrTm9kZSE9bnVsbCYmZS5jYWxsYmFja05vZGU9PT1hP2tmLmJpbmQobnVsbCxlKTpudWxsKX1mdW5jdGlvbiBaZihlLHQpe2lmKHppKCkpcmV0dXJuIG51bGw7emYoZSx0LCEwKX1mdW5jdGlvbiAkbSgpe2lfKGZ1bmN0aW9uKCl7KG9lJjYpIT09MD90dSh3byxKbSk6WGYoKX0pfWZ1bmN0aW9uIFpjKCl7cmV0dXJuIGphPT09MCYmKGphPXFvKCkpLGphfWZ1bmN0aW9uIFZmKGUpe3JldHVybiBlPT1udWxsfHx0eXBlb2YgZT09InN5bWJvbCJ8fHR5cGVvZiBlPT0iYm9vbGVhbiI/bnVsbDp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lOllsKCIiK2UpfWZ1bmN0aW9uIEtmKGUsdCl7dmFyIGE9dC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIGEubmFtZT10Lm5hbWUsYS52YWx1ZT10LnZhbHVlLGUuaWQmJmEuc2V0QXR0cmlidXRlKCJmb3JtIixlLmlkKSx0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdCksZT1uZXcgRm9ybURhdGEoZSksYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLGV9ZnVuY3Rpb24gV20oZSx0LGEsbixsKXtpZih0PT09InN1Ym1pdCImJmEmJmEuc3RhdGVOb2RlPT09bCl7dmFyIGk9VmYoKGxbV2VdfHxudWxsKS5hY3Rpb24pLHU9bi5zdWJtaXR0ZXI7dSYmKHQ9KHQ9dVtXZV18fG51bGwpP1ZmKHQuZm9ybUFjdGlvbik6dS5nZXRBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSx0IT09bnVsbCYmKGk9dCx1PW51bGwpKTt2YXIgYz1uZXcgUWwoImFjdGlvbiIsImFjdGlvbiIsbnVsbCxuLGwpO2UucHVzaCh7ZXZlbnQ6YyxsaXN0ZW5lcnM6W3tpbnN0YW5jZTpudWxsLGxpc3RlbmVyOmZ1bmN0aW9uKCl7aWYobi5kZWZhdWx0UHJldmVudGVkKXtpZihqYSE9PTApe3ZhciByPXU/S2YobCx1KTpuZXcgRm9ybURhdGEobCk7ZmMoYSx7cGVuZGluZzohMCxkYXRhOnIsbWV0aG9kOmwubWV0aG9kLGFjdGlvbjppfSxudWxsLHIpfX1lbHNlIHR5cGVvZiBpPT0iZnVuY3Rpb24iJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHI9dT9LZihsLHUpOm5ldyBGb3JtRGF0YShsKSxmYyhhLHtwZW5kaW5nOiEwLGRhdGE6cixtZXRob2Q6bC5tZXRob2QsYWN0aW9uOml9LGkscikpfSxjdXJyZW50VGFyZ2V0Omx9XX0pfX1mb3IodmFyIFZjPTA7VmM8T3UubGVuZ3RoO1ZjKyspe3ZhciBLYz1PdVtWY10sRm09S2MudG9Mb3dlckNhc2UoKSxQbT1LY1swXS50b1VwcGVyQ2FzZSgpK0tjLnNsaWNlKDEpO0V0KEZtLCJvbiIrUG0pfUV0KHhzLCJvbkFuaW1hdGlvbkVuZCIpLEV0KHpzLCJvbkFuaW1hdGlvbkl0ZXJhdGlvbiIpLEV0KFJzLCJvbkFuaW1hdGlvblN0YXJ0IiksRXQoImRibGNsaWNrIiwib25Eb3VibGVDbGljayIpLEV0KCJmb2N1c2luIiwib25Gb2N1cyIpLEV0KCJmb2N1c291dCIsIm9uQmx1ciIpLEV0KF9tLCJvblRyYW5zaXRpb25SdW4iKSxFdCh2bSwib25UcmFuc2l0aW9uU3RhcnQiKSxFdCh5bSwib25UcmFuc2l0aW9uQ2FuY2VsIiksRXQoRHMsIm9uVHJhbnNpdGlvbkVuZCIpLFhhKCJvbk1vdXNlRW50ZXIiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksWGEoIm9uTW91c2VMZWF2ZSIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxYYSgib25Qb2ludGVyRW50ZXIiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLFhhKCJvblBvaW50ZXJMZWF2ZSIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksYmEoIm9uQ2hhbmdlIiwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLGJhKCJvblNlbGVjdCIsImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksYmEoIm9uQmVmb3JlSW5wdXQiLFsiY29tcG9zaXRpb25lbmQiLCJrZXlwcmVzcyIsInRleHRJbnB1dCIsInBhc3RlIl0pLGJhKCJvbkNvbXBvc2l0aW9uRW5kIiwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLGJhKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxiYSgib25Db21wb3NpdGlvblVwZGF0ZSIsImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKTt2YXIgZGw9ImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5zcGxpdCgiICIpLEltPW5ldyBTZXQoImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChkbCkpO2Z1bmN0aW9uIEpmKGUsdCl7dD0odCY0KSE9PTA7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBuPWVbYV0sbD1uLmV2ZW50O249bi5saXN0ZW5lcnM7ZTp7dmFyIGk9dm9pZCAwO2lmKHQpZm9yKHZhciB1PW4ubGVuZ3RoLTE7MDw9dTt1LS0pe3ZhciBjPW5bdV0scj1jLmluc3RhbmNlLHA9Yy5jdXJyZW50VGFyZ2V0O2lmKGM9Yy5saXN0ZW5lcixyIT09aSYmbC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7aT1jLGwuY3VycmVudFRhcmdldD1wO3RyeXtpKGwpfWNhdGNoKEEpe19pKEEpfWwuY3VycmVudFRhcmdldD1udWxsLGk9cn1lbHNlIGZvcih1PTA7dTxuLmxlbmd0aDt1Kyspe2lmKGM9blt1XSxyPWMuaW5zdGFuY2UscD1jLmN1cnJlbnRUYXJnZXQsYz1jLmxpc3RlbmVyLHIhPT1pJiZsLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtpPWMsbC5jdXJyZW50VGFyZ2V0PXA7dHJ5e2kobCl9Y2F0Y2goQSl7X2koQSl9bC5jdXJyZW50VGFyZ2V0PW51bGwsaT1yfX19fWZ1bmN0aW9uIEkoZSx0KXt2YXIgYT10W3V1XTthPT09dm9pZCAwJiYoYT10W3V1XT1uZXcgU2V0KTt2YXIgbj1lKyJfX2J1YmJsZSI7YS5oYXMobil8fCgkZih0LGUsMiwhMSksYS5hZGQobikpfWZ1bmN0aW9uIEpjKGUsdCxhKXt2YXIgbj0wO3QmJihufD00KSwkZihhLGUsbix0KX12YXIgTmk9Il9yZWFjdExpc3RlbmluZyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gJGMoZSl7aWYoIWVbTmldKXtlW05pXT0hMCxHby5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EhPT0ic2VsZWN0aW9uY2hhbmdlIiYmKEltLmhhcyhhKXx8SmMoYSwhMSxlKSxKYyhhLCEwLGUpKX0pO3ZhciB0PWUubm9kZVR5cGU9PT05P2U6ZS5vd25lckRvY3VtZW50O3Q9PT1udWxsfHx0W05pXXx8KHRbTmldPSEwLEpjKCJzZWxlY3Rpb25jaGFuZ2UiLCExLHQpKX19ZnVuY3Rpb24gJGYoZSx0LGEsbil7c3dpdGNoKGdkKHQpKXtjYXNlIDI6dmFyIGw9el87YnJlYWs7Y2FzZSA4Omw9Ul87YnJlYWs7ZGVmYXVsdDpsPXNvfWE9bC5iaW5kKG51bGwsdCxhLGUpLGw9dm9pZCAwLCF5dXx8dCE9PSJ0b3VjaHN0YXJ0IiYmdCE9PSJ0b3VjaG1vdmUiJiZ0IT09IndoZWVsInx8KGw9ITApLG4/bCE9PXZvaWQgMD9lLmFkZEV2ZW50TGlzdGVuZXIodCxhLHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LGEsITApOmwhPT12b2lkIDA/ZS5hZGRFdmVudExpc3RlbmVyKHQsYSx7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsYSwhMSl9ZnVuY3Rpb24gV2MoZSx0LGEsbixsKXt2YXIgaT1uO2lmKCh0JjEpPT09MCYmKHQmMik9PT0wJiZuIT09bnVsbCllOmZvcig7Oyl7aWYobj09PW51bGwpcmV0dXJuO3ZhciB1PW4udGFnO2lmKHU9PT0zfHx1PT09NCl7dmFyIGM9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihjPT09bClicmVhaztpZih1PT09NClmb3IodT1uLnJldHVybjt1IT09bnVsbDspe3ZhciByPXUudGFnO2lmKChyPT09M3x8cj09PTQpJiZ1LnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09bClyZXR1cm47dT11LnJldHVybn1mb3IoO2MhPT1udWxsOyl7aWYodT1ZYShjKSx1PT09bnVsbClyZXR1cm47aWYocj11LnRhZyxyPT09NXx8cj09PTZ8fHI9PT0yNnx8cj09PTI3KXtuPWk9dTtjb250aW51ZSBlfWM9Yy5wYXJlbnROb2RlfX1uPW4ucmV0dXJufXRzKGZ1bmN0aW9uKCl7dmFyIHA9aSxBPV91KGEpLFI9W107ZTp7dmFyIGc9TnMuZ2V0KGUpO2lmKGchPT12b2lkIDApe3ZhciBiPVFsLGs9ZTtzd2l0Y2goZSl7Y2FzZSJrZXlwcmVzcyI6aWYoR2woYSk9PT0wKWJyZWFrIGU7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpiPUtoO2JyZWFrO2Nhc2UiZm9jdXNpbiI6az0iZm9jdXMiLGI9U3U7YnJlYWs7Y2FzZSJmb2N1c291dCI6az0iYmx1ciIsYj1TdTticmVhaztjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpiPVN1O2JyZWFrO2Nhc2UiY2xpY2siOmlmKGEuYnV0dG9uPT09MilicmVhayBlO2Nhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZXVwIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJjb250ZXh0bWVudSI6Yj1sczticmVhaztjYXNlImRyYWciOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpiPXFoO2JyZWFrO2Nhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2htb3ZlIjpjYXNlInRvdWNoc3RhcnQiOmI9V2g7YnJlYWs7Y2FzZSB4czpjYXNlIHpzOmNhc2UgUnM6Yj1CaDticmVhaztjYXNlIERzOmI9UGg7YnJlYWs7Y2FzZSJzY3JvbGwiOmNhc2Uic2Nyb2xsZW5kIjpiPVVoO2JyZWFrO2Nhc2Uid2hlZWwiOmI9ZW07YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6Yj1MaDticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjpiPXVzO2JyZWFrO2Nhc2UidG9nZ2xlIjpjYXNlImJlZm9yZXRvZ2dsZSI6Yj1hbX12YXIgRz0odCY0KSE9PTAsZGU9IUcmJihlPT09InNjcm9sbCJ8fGU9PT0ic2Nyb2xsZW5kIiksXz1HP2chPT1udWxsP2crIkNhcHR1cmUiOm51bGw6ZztHPVtdO2Zvcih2YXIgaD1wLHY7aCE9PW51bGw7KXt2YXIgej1oO2lmKHY9ei5zdGF0ZU5vZGUsej16LnRhZyx6IT09NSYmeiE9PTI2JiZ6IT09Mjd8fHY9PT1udWxsfHxfPT09bnVsbHx8KHo9TW4oaCxfKSx6IT1udWxsJiZHLnB1c2goaGwoaCx6LHYpKSksZGUpYnJlYWs7aD1oLnJldHVybn0wPEcubGVuZ3RoJiYoZz1uZXcgYihnLGssbnVsbCxhLEEpLFIucHVzaCh7ZXZlbnQ6ZyxsaXN0ZW5lcnM6R30pKX19aWYoKHQmNyk9PT0wKXtlOntpZihnPWU9PT0ibW91c2VvdmVyInx8ZT09PSJwb2ludGVyb3ZlciIsYj1lPT09Im1vdXNlb3V0Inx8ZT09PSJwb2ludGVyb3V0IixnJiZhIT09bXUmJihrPWEucmVsYXRlZFRhcmdldHx8YS5mcm9tRWxlbWVudCkmJihZYShrKXx8a1tCYV0pKWJyZWFrIGU7aWYoKGJ8fGcpJiYoZz1BLndpbmRvdz09PUE/QTooZz1BLm93bmVyRG9jdW1lbnQpP2cuZGVmYXVsdFZpZXd8fGcucGFyZW50V2luZG93OndpbmRvdyxiPyhrPWEucmVsYXRlZFRhcmdldHx8YS50b0VsZW1lbnQsYj1wLGs9az9ZYShrKTpudWxsLGshPT1udWxsJiYoZGU9TyhrKSxHPWsudGFnLGshPT1kZXx8RyE9PTUmJkchPT0yNyYmRyE9PTYpJiYoaz1udWxsKSk6KGI9bnVsbCxrPXApLGIhPT1rKSl7aWYoRz1scyx6PSJvbk1vdXNlTGVhdmUiLF89Im9uTW91c2VFbnRlciIsaD0ibW91c2UiLChlPT09InBvaW50ZXJvdXQifHxlPT09InBvaW50ZXJvdmVyIikmJihHPXVzLHo9Im9uUG9pbnRlckxlYXZlIixfPSJvblBvaW50ZXJFbnRlciIsaD0icG9pbnRlciIpLGRlPWI9PW51bGw/ZzpPbihiKSx2PWs9PW51bGw/ZzpPbihrKSxnPW5ldyBHKHosaCsibGVhdmUiLGIsYSxBKSxnLnRhcmdldD1kZSxnLnJlbGF0ZWRUYXJnZXQ9dix6PW51bGwsWWEoQSk9PT1wJiYoRz1uZXcgRyhfLGgrImVudGVyIixrLGEsQSksRy50YXJnZXQ9dixHLnJlbGF0ZWRUYXJnZXQ9ZGUsej1HKSxkZT16LGImJmspdDp7Zm9yKEc9YixfPWssaD0wLHY9Rzt2O3Y9Ym4odikpaCsrO2Zvcih2PTAsej1fO3o7ej1ibih6KSl2Kys7Zm9yKDswPGgtdjspRz1ibihHKSxoLS07Zm9yKDswPHYtaDspXz1ibihfKSx2LS07Zm9yKDtoLS07KXtpZihHPT09X3x8XyE9PW51bGwmJkc9PT1fLmFsdGVybmF0ZSlicmVhayB0O0c9Ym4oRyksXz1ibihfKX1HPW51bGx9ZWxzZSBHPW51bGw7YiE9PW51bGwmJldmKFIsZyxiLEcsITEpLGshPT1udWxsJiZkZSE9PW51bGwmJldmKFIsZGUsayxHLCEwKX19ZTp7aWYoZz1wP09uKHApOndpbmRvdyxiPWcubm9kZU5hbWUmJmcubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxiPT09InNlbGVjdCJ8fGI9PT0iaW5wdXQiJiZnLnR5cGU9PT0iZmlsZSIpdmFyIGo9bXM7ZWxzZSBpZihkcyhnKSlpZihfcylqPWRtO2Vsc2V7aj1ybTt2YXIgJD1zbX1lbHNlIGI9Zy5ub2RlTmFtZSwhYnx8Yi50b0xvd2VyQ2FzZSgpIT09ImlucHV0Inx8Zy50eXBlIT09ImNoZWNrYm94IiYmZy50eXBlIT09InJhZGlvIj9wJiZodShwLmVsZW1lbnRUeXBlKSYmKGo9bXMpOmo9Zm07aWYoaiYmKGo9aihlLHApKSl7aHMoUixqLGEsQSk7YnJlYWsgZX0kJiYkKGUsZyxwKSxlPT09ImZvY3Vzb3V0IiYmcCYmZy50eXBlPT09Im51bWJlciImJnAubWVtb2l6ZWRQcm9wcy52YWx1ZSE9bnVsbCYmZHUoZywibnVtYmVyIixnLnZhbHVlKX1zd2l0Y2goJD1wP09uKHApOndpbmRvdyxlKXtjYXNlImZvY3VzaW4iOihkcygkKXx8JC5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpJiYoJGE9JCxSdT1wLFluPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOlluPVJ1PSRhPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOkR1PSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjpEdT0hMSxFcyhSLGEsQSk7YnJlYWs7Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmlmKG1tKWJyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6RXMoUixhLEEpfXZhciBCO2lmKEV1KWU6e3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnZhciBYPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6WD0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgZTtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpYPSJvbkNvbXBvc2l0aW9uVXBkYXRlIjticmVhayBlfVg9dm9pZCAwfWVsc2UgSmE/cnMoZSxhKSYmKFg9Im9uQ29tcG9zaXRpb25FbmQiKTplPT09ImtleWRvd24iJiZhLmtleUNvZGU9PT0yMjkmJihYPSJvbkNvbXBvc2l0aW9uU3RhcnQiKTtYJiYoY3MmJmEubG9jYWxlIT09ImtvIiYmKEphfHxYIT09Im9uQ29tcG9zaXRpb25TdGFydCI/WD09PSJvbkNvbXBvc2l0aW9uRW5kIiYmSmEmJihCPWFzKCkpOihGdD1BLHB1PSJ2YWx1ZSJpbiBGdD9GdC52YWx1ZTpGdC50ZXh0Q29udGVudCxKYT0hMCkpLCQ9T2kocCxYKSwwPCQubGVuZ3RoJiYoWD1uZXcgaXMoWCxlLG51bGwsYSxBKSxSLnB1c2goe2V2ZW50OlgsbGlzdGVuZXJzOiR9KSxCP1guZGF0YT1COihCPWZzKGEpLEIhPT1udWxsJiYoWC5kYXRhPUIpKSkpLChCPWxtP2ltKGUsYSk6dW0oZSxhKSkmJihYPU9pKHAsIm9uQmVmb3JlSW5wdXQiKSwwPFgubGVuZ3RoJiYoJD1uZXcgaXMoIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxhLEEpLFIucHVzaCh7ZXZlbnQ6JCxsaXN0ZW5lcnM6WH0pLCQuZGF0YT1CKSksV20oUixlLHAsYSxBKX1KZihSLHQpfSl9ZnVuY3Rpb24gaGwoZSx0LGEpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOnQsY3VycmVudFRhcmdldDphfX1mdW5jdGlvbiBPaShlLHQpe2Zvcih2YXIgYT10KyJDYXB0dXJlIixuPVtdO2UhPT1udWxsOyl7dmFyIGw9ZSxpPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbCE9PTUmJmwhPT0yNiYmbCE9PTI3fHxpPT09bnVsbHx8KGw9TW4oZSxhKSxsIT1udWxsJiZuLnVuc2hpZnQoaGwoZSxsLGkpKSxsPU1uKGUsdCksbCE9bnVsbCYmbi5wdXNoKGhsKGUsbCxpKSkpLGUudGFnPT09MylyZXR1cm4gbjtlPWUucmV0dXJufXJldHVybltdfWZ1bmN0aW9uIGJuKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2RvIGU9ZS5yZXR1cm47d2hpbGUoZSYmZS50YWchPT01JiZlLnRhZyE9PTI3KTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBXZihlLHQsYSxuLGwpe2Zvcih2YXIgaT10Ll9yZWFjdE5hbWUsdT1bXTthIT09bnVsbCYmYSE9PW47KXt2YXIgYz1hLHI9Yy5hbHRlcm5hdGUscD1jLnN0YXRlTm9kZTtpZihjPWMudGFnLHIhPT1udWxsJiZyPT09bilicmVhaztjIT09NSYmYyE9PTI2JiZjIT09Mjd8fHA9PT1udWxsfHwocj1wLGw/KHA9TW4oYSxpKSxwIT1udWxsJiZ1LnVuc2hpZnQoaGwoYSxwLHIpKSk6bHx8KHA9TW4oYSxpKSxwIT1udWxsJiZ1LnB1c2goaGwoYSxwLHIpKSkpLGE9YS5yZXR1cm59dS5sZW5ndGghPT0wJiZlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOnV9KX12YXIgZV89L1xyXG4/L2csdF89L1x1MDAwMHxcdUZGRkQvZztmdW5jdGlvbiBGZihlKXtyZXR1cm4odHlwZW9mIGU9PSJzdHJpbmciP2U6IiIrZSkucmVwbGFjZShlXyxgCmApLnJlcGxhY2UodF8sIiIpfWZ1bmN0aW9uIFBmKGUsdCl7cmV0dXJuIHQ9RmYodCksRmYoZSk9PT10fWZ1bmN0aW9uIE1pKCl7fWZ1bmN0aW9uIGZlKGUsdCxhLG4sbCxpKXtzd2l0Y2goYSl7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIG49PSJzdHJpbmciP3Q9PT0iYm9keSJ8fHQ9PT0idGV4dGFyZWEiJiZuPT09IiJ8fFphKGUsbik6KHR5cGVvZiBuPT0ibnVtYmVyInx8dHlwZW9mIG49PSJiaWdpbnQiKSYmdCE9PSJib2R5IiYmWmEoZSwiIituKTticmVhaztjYXNlImNsYXNzTmFtZSI6amwoZSwiY2xhc3MiLG4pO2JyZWFrO2Nhc2UidGFiSW5kZXgiOmpsKGUsInRhYmluZGV4IixuKTticmVhaztjYXNlImRpciI6Y2FzZSJyb2xlIjpjYXNlInZpZXdCb3giOmNhc2Uid2lkdGgiOmNhc2UiaGVpZ2h0IjpqbChlLGEsbik7YnJlYWs7Y2FzZSJzdHlsZSI6SW8oZSxuLGkpO2JyZWFrO2Nhc2UiZGF0YSI6aWYodCE9PSJvYmplY3QiKXtqbChlLCJkYXRhIixuKTticmVha31jYXNlInNyYyI6Y2FzZSJocmVmIjppZihuPT09IiImJih0IT09ImEifHxhIT09ImhyZWYiKSl7ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7YnJlYWt9aWYobj09bnVsbHx8dHlwZW9mIG49PSJmdW5jdGlvbiJ8fHR5cGVvZiBuPT0ic3ltYm9sInx8dHlwZW9mIG49PSJib29sZWFuIil7ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7YnJlYWt9bj1ZbCgiIituKSxlLnNldEF0dHJpYnV0ZShhLG4pO2JyZWFrO2Nhc2UiYWN0aW9uIjpjYXNlImZvcm1BY3Rpb24iOmlmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKXtlLnNldEF0dHJpYnV0ZShhLCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcJ3JlIHRyeWluZyB0byB1c2UgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgaW4gYSBzdWJtaXQgZXZlbnQgaGFuZGxlciwgY29uc2lkZXIgYWxzbyBjYWxsaW5nIGV2ZW50LnByZXZlbnREZWZhdWx0KCkuJykiKTticmVha31lbHNlIHR5cGVvZiBpPT0iZnVuY3Rpb24iJiYoYT09PSJmb3JtQWN0aW9uIj8odCE9PSJpbnB1dCImJmZlKGUsdCwibmFtZSIsbC5uYW1lLGwsbnVsbCksZmUoZSx0LCJmb3JtRW5jVHlwZSIsbC5mb3JtRW5jVHlwZSxsLG51bGwpLGZlKGUsdCwiZm9ybU1ldGhvZCIsbC5mb3JtTWV0aG9kLGwsbnVsbCksZmUoZSx0LCJmb3JtVGFyZ2V0IixsLmZvcm1UYXJnZXQsbCxudWxsKSk6KGZlKGUsdCwiZW5jVHlwZSIsbC5lbmNUeXBlLGwsbnVsbCksZmUoZSx0LCJtZXRob2QiLGwubWV0aG9kLGwsbnVsbCksZmUoZSx0LCJ0YXJnZXQiLGwudGFyZ2V0LGwsbnVsbCkpKTtpZihuPT1udWxsfHx0eXBlb2Ygbj09InN5bWJvbCJ8fHR5cGVvZiBuPT0iYm9vbGVhbiIpe2UucmVtb3ZlQXR0cmlidXRlKGEpO2JyZWFrfW49WWwoIiIrbiksZS5zZXRBdHRyaWJ1dGUoYSxuKTticmVhaztjYXNlIm9uQ2xpY2siOm4hPW51bGwmJihlLm9uY2xpY2s9TWkpO2JyZWFrO2Nhc2Uib25TY3JvbGwiOm4hPW51bGwmJkkoInNjcm9sbCIsZSk7YnJlYWs7Y2FzZSJvblNjcm9sbEVuZCI6biE9bnVsbCYmSSgic2Nyb2xsZW5kIixlKTticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihuIT1udWxsKXtpZih0eXBlb2YgbiE9Im9iamVjdCJ8fCEoIl9faHRtbCJpbiBuKSl0aHJvdyBFcnJvcihzKDYxKSk7aWYoYT1uLl9faHRtbCxhIT1udWxsKXtpZihsLmNoaWxkcmVuIT1udWxsKXRocm93IEVycm9yKHMoNjApKTtlLmlubmVySFRNTD1hfX1icmVhaztjYXNlIm11bHRpcGxlIjplLm11bHRpcGxlPW4mJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI7YnJlYWs7Y2FzZSJtdXRlZCI6ZS5tdXRlZD1uJiZ0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmdHlwZW9mIG4hPSJzeW1ib2wiO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJkZWZhdWx0VmFsdWUiOmNhc2UiZGVmYXVsdENoZWNrZWQiOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6YnJlYWs7Y2FzZSJhdXRvRm9jdXMiOmJyZWFrO2Nhc2UieGxpbmtIcmVmIjppZihuPT1udWxsfHx0eXBlb2Ygbj09ImZ1bmN0aW9uInx8dHlwZW9mIG49PSJib29sZWFuInx8dHlwZW9mIG49PSJzeW1ib2wiKXtlLnJlbW92ZUF0dHJpYnV0ZSgieGxpbms6aHJlZiIpO2JyZWFrfWE9WWwoIiIrbiksZS5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmhyZWYiLGEpO2JyZWFrO2Nhc2UiY29udGVudEVkaXRhYmxlIjpjYXNlInNwZWxsQ2hlY2siOmNhc2UiZHJhZ2dhYmxlIjpjYXNlInZhbHVlIjpjYXNlImF1dG9SZXZlcnNlIjpjYXNlImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOmNhc2UiZm9jdXNhYmxlIjpjYXNlInByZXNlcnZlQWxwaGEiOm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI/ZS5zZXRBdHRyaWJ1dGUoYSwiIituKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImluZXJ0IjpjYXNlImFsbG93RnVsbFNjcmVlbiI6Y2FzZSJhc3luYyI6Y2FzZSJhdXRvUGxheSI6Y2FzZSJjb250cm9scyI6Y2FzZSJkZWZhdWx0IjpjYXNlImRlZmVyIjpjYXNlImRpc2FibGVkIjpjYXNlImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIjpjYXNlImRpc2FibGVSZW1vdGVQbGF5YmFjayI6Y2FzZSJmb3JtTm9WYWxpZGF0ZSI6Y2FzZSJoaWRkZW4iOmNhc2UibG9vcCI6Y2FzZSJub01vZHVsZSI6Y2FzZSJub1ZhbGlkYXRlIjpjYXNlIm9wZW4iOmNhc2UicGxheXNJbmxpbmUiOmNhc2UicmVhZE9ubHkiOmNhc2UicmVxdWlyZWQiOmNhc2UicmV2ZXJzZWQiOmNhc2Uic2NvcGVkIjpjYXNlInNlYW1sZXNzIjpjYXNlIml0ZW1TY29wZSI6biYmdHlwZW9mIG4hPSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ic3ltYm9sIj9lLnNldEF0dHJpYnV0ZShhLCIiKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImNhcHR1cmUiOmNhc2UiZG93bmxvYWQiOm49PT0hMD9lLnNldEF0dHJpYnV0ZShhLCIiKTpuIT09ITEmJm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI/ZS5zZXRBdHRyaWJ1dGUoYSxuKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImNvbHMiOmNhc2Uicm93cyI6Y2FzZSJzaXplIjpjYXNlInNwYW4iOm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCImJiFpc05hTihuKSYmMTw9bj9lLnNldEF0dHJpYnV0ZShhLG4pOmUucmVtb3ZlQXR0cmlidXRlKGEpO2JyZWFrO2Nhc2Uicm93U3BhbiI6Y2FzZSJzdGFydCI6bj09bnVsbHx8dHlwZW9mIG49PSJmdW5jdGlvbiJ8fHR5cGVvZiBuPT0ic3ltYm9sInx8aXNOYU4obik/ZS5yZW1vdmVBdHRyaWJ1dGUoYSk6ZS5zZXRBdHRyaWJ1dGUoYSxuKTticmVhaztjYXNlInBvcG92ZXIiOkkoImJlZm9yZXRvZ2dsZSIsZSksSSgidG9nZ2xlIixlKSxxbChlLCJwb3BvdmVyIixuKTticmVhaztjYXNlInhsaW5rQWN0dWF0ZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmFjdHVhdGUiLG4pO2JyZWFrO2Nhc2UieGxpbmtBcmNyb2xlIjpVdChlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6YXJjcm9sZSIsbik7YnJlYWs7Y2FzZSJ4bGlua1JvbGUiOlV0KGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazpyb2xlIixuKTticmVhaztjYXNlInhsaW5rU2hvdyI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnNob3ciLG4pO2JyZWFrO2Nhc2UieGxpbmtUaXRsZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnRpdGxlIixuKTticmVhaztjYXNlInhsaW5rVHlwZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnR5cGUiLG4pO2JyZWFrO2Nhc2UieG1sQmFzZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmJhc2UiLG4pO2JyZWFrO2Nhc2UieG1sTGFuZyI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciLG4pO2JyZWFrO2Nhc2UieG1sU3BhY2UiOlV0KGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpzcGFjZSIsbik7YnJlYWs7Y2FzZSJpcyI6cWwoZSwiaXMiLG4pO2JyZWFrO2Nhc2UiaW5uZXJUZXh0IjpjYXNlInRleHRDb250ZW50IjpicmVhaztkZWZhdWx0OighKDI8YS5sZW5ndGgpfHxhWzBdIT09Im8iJiZhWzBdIT09Ik8ifHxhWzFdIT09Im4iJiZhWzFdIT09Ik4iKSYmKGE9TWguZ2V0KGEpfHxhLHFsKGUsYSxuKSl9fWZ1bmN0aW9uIEZjKGUsdCxhLG4sbCxpKXtzd2l0Y2goYSl7Y2FzZSJzdHlsZSI6SW8oZSxuLGkpO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG4hPW51bGwpe2lmKHR5cGVvZiBuIT0ib2JqZWN0Inx8ISgiX19odG1sImluIG4pKXRocm93IEVycm9yKHMoNjEpKTtpZihhPW4uX19odG1sLGEhPW51bGwpe2lmKGwuY2hpbGRyZW4hPW51bGwpdGhyb3cgRXJyb3Iocyg2MCkpO2UuaW5uZXJIVE1MPWF9fWJyZWFrO2Nhc2UiY2hpbGRyZW4iOnR5cGVvZiBuPT0ic3RyaW5nIj9aYShlLG4pOih0eXBlb2Ygbj09Im51bWJlciJ8fHR5cGVvZiBuPT0iYmlnaW50IikmJlphKGUsIiIrbik7YnJlYWs7Y2FzZSJvblNjcm9sbCI6biE9bnVsbCYmSSgic2Nyb2xsIixlKTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjpuIT1udWxsJiZJKCJzY3JvbGxlbmQiLGUpO2JyZWFrO2Nhc2Uib25DbGljayI6biE9bnVsbCYmKGUub25jbGljaz1NaSk7YnJlYWs7Y2FzZSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOmNhc2Uic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjpjYXNlImlubmVySFRNTCI6Y2FzZSJyZWYiOmJyZWFrO2Nhc2UiaW5uZXJUZXh0IjpjYXNlInRleHRDb250ZW50IjpicmVhaztkZWZhdWx0OmlmKCFYby5oYXNPd25Qcm9wZXJ0eShhKSllOntpZihhWzBdPT09Im8iJiZhWzFdPT09Im4iJiYobD1hLmVuZHNXaXRoKCJDYXB0dXJlIiksdD1hLnNsaWNlKDIsbD9hLmxlbmd0aC03OnZvaWQgMCksaT1lW1dlXXx8bnVsbCxpPWkhPW51bGw/aVthXTpudWxsLHR5cGVvZiBpPT0iZnVuY3Rpb24iJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxpLGwpLHR5cGVvZiBuPT0iZnVuY3Rpb24iKSl7dHlwZW9mIGkhPSJmdW5jdGlvbiImJmkhPT1udWxsJiYoYSBpbiBlP2VbYV09bnVsbDplLmhhc0F0dHJpYnV0ZShhKSYmZS5yZW1vdmVBdHRyaWJ1dGUoYSkpLGUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sbCk7YnJlYWsgZX1hIGluIGU/ZVthXT1uOm49PT0hMD9lLnNldEF0dHJpYnV0ZShhLCIiKTpxbChlLGEsbil9fX1mdW5jdGlvbiBRZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiZGl2IjpjYXNlInNwYW4iOmNhc2Uic3ZnIjpjYXNlInBhdGgiOmNhc2UiYSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UibGkiOmJyZWFrO2Nhc2UiaW1nIjpJKCJlcnJvciIsZSksSSgibG9hZCIsZSk7dmFyIG49ITEsbD0hMSxpO2ZvcihpIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShpKSl7dmFyIHU9YVtpXTtpZih1IT1udWxsKXN3aXRjaChpKXtjYXNlInNyYyI6bj0hMDticmVhaztjYXNlInNyY1NldCI6bD0hMDticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcihzKDEzNyx0KSk7ZGVmYXVsdDpmZShlLHQsaSx1LGEsbnVsbCl9fWwmJmZlKGUsdCwic3JjU2V0IixhLnNyY1NldCxhLG51bGwpLG4mJmZlKGUsdCwic3JjIixhLnNyYyxhLG51bGwpO3JldHVybjtjYXNlImlucHV0IjpJKCJpbnZhbGlkIixlKTt2YXIgYz1pPXU9bD1udWxsLHI9bnVsbCxwPW51bGw7Zm9yKG4gaW4gYSlpZihhLmhhc093blByb3BlcnR5KG4pKXt2YXIgQT1hW25dO2lmKEEhPW51bGwpc3dpdGNoKG4pe2Nhc2UibmFtZSI6bD1BO2JyZWFrO2Nhc2UidHlwZSI6dT1BO2JyZWFrO2Nhc2UiY2hlY2tlZCI6cj1BO2JyZWFrO2Nhc2UiZGVmYXVsdENoZWNrZWQiOnA9QTticmVhaztjYXNlInZhbHVlIjppPUE7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmM9QTticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihBIT1udWxsKXRocm93IEVycm9yKHMoMTM3LHQpKTticmVhaztkZWZhdWx0OmZlKGUsdCxuLEEsYSxudWxsKX19JG8oZSxpLGMscixwLHUsbCwhMSksSGwoZSk7cmV0dXJuO2Nhc2Uic2VsZWN0IjpJKCJpbnZhbGlkIixlKSxuPXU9aT1udWxsO2ZvcihsIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShsKSYmKGM9YVtsXSxjIT1udWxsKSlzd2l0Y2gobCl7Y2FzZSJ2YWx1ZSI6aT1jO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjp1PWM7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1jO2RlZmF1bHQ6ZmUoZSx0LGwsYyxhLG51bGwpfXQ9aSxhPXUsZS5tdWx0aXBsZT0hIW4sdCE9bnVsbD9rYShlLCEhbix0LCExKTphIT1udWxsJiZrYShlLCEhbixhLCEwKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6SSgiaW52YWxpZCIsZSksaT1sPW49bnVsbDtmb3IodSBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkodSkmJihjPWFbdV0sYyE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOm49YzticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6bD1jO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmk9YzticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihjIT1udWxsKXRocm93IEVycm9yKHMoOTEpKTticmVhaztkZWZhdWx0OmZlKGUsdCx1LGMsYSxudWxsKX1GbyhlLG4sbCxpKSxIbChlKTtyZXR1cm47Y2FzZSJvcHRpb24iOmZvcihyIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShyKSYmKG49YVtyXSxuIT1udWxsKSYmKHI9PT0ic2VsZWN0ZWQiP2Uuc2VsZWN0ZWQ9biYmdHlwZW9mIG4hPSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ic3ltYm9sIjpmZShlLHQscixuLGEsbnVsbCkpO3JldHVybjtjYXNlImRpYWxvZyI6SSgiYmVmb3JldG9nZ2xlIixlKSxJKCJ0b2dnbGUiLGUpLEkoImNhbmNlbCIsZSksSSgiY2xvc2UiLGUpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6SSgibG9hZCIsZSk7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKG49MDtuPGRsLmxlbmd0aDtuKyspSShkbFtuXSxlKTticmVhaztjYXNlImltYWdlIjpJKCJlcnJvciIsZSksSSgibG9hZCIsZSk7YnJlYWs7Y2FzZSJkZXRhaWxzIjpJKCJ0b2dnbGUiLGUpO2JyZWFrO2Nhc2UiZW1iZWQiOmNhc2Uic291cmNlIjpjYXNlImxpbmsiOkkoImVycm9yIixlKSxJKCJsb2FkIixlKTtjYXNlImFyZWEiOmNhc2UiYmFzZSI6Y2FzZSJiciI6Y2FzZSJjb2wiOmNhc2UiaHIiOmNhc2Uia2V5Z2VuIjpjYXNlIm1ldGEiOmNhc2UicGFyYW0iOmNhc2UidHJhY2siOmNhc2Uid2JyIjpjYXNlIm1lbnVpdGVtIjpmb3IocCBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkocCkmJihuPWFbcF0sbiE9bnVsbCkpc3dpdGNoKHApe2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKHMoMTM3LHQpKTtkZWZhdWx0OmZlKGUsdCxwLG4sYSxudWxsKX1yZXR1cm47ZGVmYXVsdDppZihodSh0KSl7Zm9yKEEgaW4gYSlhLmhhc093blByb3BlcnR5KEEpJiYobj1hW0FdLG4hPT12b2lkIDAmJkZjKGUsdCxBLG4sYSx2b2lkIDApKTtyZXR1cm59fWZvcihjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKG49YVtjXSxuIT1udWxsJiZmZShlLHQsYyxuLGEsbnVsbCkpfWZ1bmN0aW9uIGFfKGUsdCxhLG4pe3N3aXRjaCh0KXtjYXNlImRpdiI6Y2FzZSJzcGFuIjpjYXNlInN2ZyI6Y2FzZSJwYXRoIjpjYXNlImEiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlImxpIjpicmVhaztjYXNlImlucHV0Ijp2YXIgbD1udWxsLGk9bnVsbCx1PW51bGwsYz1udWxsLHI9bnVsbCxwPW51bGwsQT1udWxsO2ZvcihiIGluIGEpe3ZhciBSPWFbYl07aWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmUiE9bnVsbClzd2l0Y2goYil7Y2FzZSJjaGVja2VkIjpicmVhaztjYXNlInZhbHVlIjpicmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6cj1SO2RlZmF1bHQ6bi5oYXNPd25Qcm9wZXJ0eShiKXx8ZmUoZSx0LGIsbnVsbCxuLFIpfX1mb3IodmFyIGcgaW4gbil7dmFyIGI9bltnXTtpZihSPWFbZ10sbi5oYXNPd25Qcm9wZXJ0eShnKSYmKGIhPW51bGx8fFIhPW51bGwpKXN3aXRjaChnKXtjYXNlInR5cGUiOmk9YjticmVhaztjYXNlIm5hbWUiOmw9YjticmVhaztjYXNlImNoZWNrZWQiOnA9YjticmVhaztjYXNlImRlZmF1bHRDaGVja2VkIjpBPWI7YnJlYWs7Y2FzZSJ2YWx1ZSI6dT1iO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpjPWI7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoYiE9bnVsbCl0aHJvdyBFcnJvcihzKDEzNyx0KSk7YnJlYWs7ZGVmYXVsdDpiIT09UiYmZmUoZSx0LGcsYixuLFIpfX1mdShlLHUsYyxyLHAsQSxpLGwpO3JldHVybjtjYXNlInNlbGVjdCI6Yj11PWM9Zz1udWxsO2ZvcihpIGluIGEpaWYocj1hW2ldLGEuaGFzT3duUHJvcGVydHkoaSkmJnIhPW51bGwpc3dpdGNoKGkpe2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UibXVsdGlwbGUiOmI9cjtkZWZhdWx0Om4uaGFzT3duUHJvcGVydHkoaSl8fGZlKGUsdCxpLG51bGwsbixyKX1mb3IobCBpbiBuKWlmKGk9bltsXSxyPWFbbF0sbi5oYXNPd25Qcm9wZXJ0eShsKSYmKGkhPW51bGx8fHIhPW51bGwpKXN3aXRjaChsKXtjYXNlInZhbHVlIjpnPWk7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmM9aTticmVhaztjYXNlIm11bHRpcGxlIjp1PWk7ZGVmYXVsdDppIT09ciYmZmUoZSx0LGwsaSxuLHIpfXQ9YyxhPXUsbj1iLGchPW51bGw/a2EoZSwhIWEsZywhMSk6ISFuIT0hIWEmJih0IT1udWxsP2thKGUsISFhLHQsITApOmthKGUsISFhLGE/W106IiIsITEpKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6Yj1nPW51bGw7Zm9yKGMgaW4gYSlpZihsPWFbY10sYS5oYXNPd25Qcm9wZXJ0eShjKSYmbCE9bnVsbCYmIW4uaGFzT3duUHJvcGVydHkoYykpc3dpdGNoKGMpe2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UiY2hpbGRyZW4iOmJyZWFrO2RlZmF1bHQ6ZmUoZSx0LGMsbnVsbCxuLGwpfWZvcih1IGluIG4paWYobD1uW3VdLGk9YVt1XSxuLmhhc093blByb3BlcnR5KHUpJiYobCE9bnVsbHx8aSE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOmc9bDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6Yj1sO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmJyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKGwhPW51bGwpdGhyb3cgRXJyb3Iocyg5MSkpO2JyZWFrO2RlZmF1bHQ6bCE9PWkmJmZlKGUsdCx1LGwsbixpKX1XbyhlLGcsYik7cmV0dXJuO2Nhc2Uib3B0aW9uIjpmb3IodmFyIGsgaW4gYSlnPWFba10sYS5oYXNPd25Qcm9wZXJ0eShrKSYmZyE9bnVsbCYmIW4uaGFzT3duUHJvcGVydHkoaykmJihrPT09InNlbGVjdGVkIj9lLnNlbGVjdGVkPSExOmZlKGUsdCxrLG51bGwsbixnKSk7Zm9yKHIgaW4gbilnPW5bcl0sYj1hW3JdLG4uaGFzT3duUHJvcGVydHkocikmJmchPT1iJiYoZyE9bnVsbHx8YiE9bnVsbCkmJihyPT09InNlbGVjdGVkIj9lLnNlbGVjdGVkPWcmJnR5cGVvZiBnIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZyE9InN5bWJvbCI6ZmUoZSx0LHIsZyxuLGIpKTtyZXR1cm47Y2FzZSJpbWciOmNhc2UibGluayI6Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImVtYmVkIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInNvdXJjZSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcih2YXIgRyBpbiBhKWc9YVtHXSxhLmhhc093blByb3BlcnR5KEcpJiZnIT1udWxsJiYhbi5oYXNPd25Qcm9wZXJ0eShHKSYmZmUoZSx0LEcsbnVsbCxuLGcpO2ZvcihwIGluIG4paWYoZz1uW3BdLGI9YVtwXSxuLmhhc093blByb3BlcnR5KHApJiZnIT09YiYmKGchPW51bGx8fGIhPW51bGwpKXN3aXRjaChwKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihnIT1udWxsKXRocm93IEVycm9yKHMoMTM3LHQpKTticmVhaztkZWZhdWx0OmZlKGUsdCxwLGcsbixiKX1yZXR1cm47ZGVmYXVsdDppZihodSh0KSl7Zm9yKHZhciBkZSBpbiBhKWc9YVtkZV0sYS5oYXNPd25Qcm9wZXJ0eShkZSkmJmchPT12b2lkIDAmJiFuLmhhc093blByb3BlcnR5KGRlKSYmRmMoZSx0LGRlLHZvaWQgMCxuLGcpO2ZvcihBIGluIG4pZz1uW0FdLGI9YVtBXSwhbi5oYXNPd25Qcm9wZXJ0eShBKXx8Zz09PWJ8fGc9PT12b2lkIDAmJmI9PT12b2lkIDB8fEZjKGUsdCxBLGcsbixiKTtyZXR1cm59fWZvcih2YXIgXyBpbiBhKWc9YVtfXSxhLmhhc093blByb3BlcnR5KF8pJiZnIT1udWxsJiYhbi5oYXNPd25Qcm9wZXJ0eShfKSYmZmUoZSx0LF8sbnVsbCxuLGcpO2ZvcihSIGluIG4pZz1uW1JdLGI9YVtSXSwhbi5oYXNPd25Qcm9wZXJ0eShSKXx8Zz09PWJ8fGc9PW51bGwmJmI9PW51bGx8fGZlKGUsdCxSLGcsbixiKX12YXIgUGM9bnVsbCxJYz1udWxsO2Z1bmN0aW9uIHdpKGUpe3JldHVybiBlLm5vZGVUeXBlPT09OT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBJZihlKXtzd2l0Y2goZSl7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6cmV0dXJuIDE7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBlZChlLHQpe2lmKGU9PT0wKXN3aXRjaCh0KXtjYXNlInN2ZyI6cmV0dXJuIDE7Y2FzZSJtYXRoIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfXJldHVybiBlPT09MSYmdD09PSJmb3JlaWduT2JqZWN0Ij8wOmV9ZnVuY3Rpb24gZW8oZSx0KXtyZXR1cm4gZT09PSJ0ZXh0YXJlYSJ8fGU9PT0ibm9zY3JpcHQifHx0eXBlb2YgdC5jaGlsZHJlbj09InN0cmluZyJ8fHR5cGVvZiB0LmNoaWxkcmVuPT0ibnVtYmVyInx8dHlwZW9mIHQuY2hpbGRyZW49PSJiaWdpbnQifHx0eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTD09Im9iamVjdCImJnQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwhPT1udWxsJiZ0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCE9bnVsbH12YXIgdG89bnVsbDtmdW5jdGlvbiBuXygpe3ZhciBlPXdpbmRvdy5ldmVudDtyZXR1cm4gZSYmZS50eXBlPT09InBvcHN0YXRlIj9lPT09dG8/ITE6KHRvPWUsITApOih0bz1udWxsLCExKX12YXIgdGQ9dHlwZW9mIHNldFRpbWVvdXQ9PSJmdW5jdGlvbiI/c2V0VGltZW91dDp2b2lkIDAsbF89dHlwZW9mIGNsZWFyVGltZW91dD09ImZ1bmN0aW9uIj9jbGVhclRpbWVvdXQ6dm9pZCAwLGFkPXR5cGVvZiBQcm9taXNlPT0iZnVuY3Rpb24iP1Byb21pc2U6dm9pZCAwLGlfPXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz09ImZ1bmN0aW9uIj9xdWV1ZU1pY3JvdGFzazp0eXBlb2YgYWQ8InUiP2Z1bmN0aW9uKGUpe3JldHVybiBhZC5yZXNvbHZlKG51bGwpLnRoZW4oZSkuY2F0Y2godV8pfTp0ZDtmdW5jdGlvbiB1XyhlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfWZ1bmN0aW9uIGhhKGUpe3JldHVybiBlPT09ImhlYWQifWZ1bmN0aW9uIG5kKGUsdCl7dmFyIGE9dCxuPTAsbD0wO2Rve3ZhciBpPWEubmV4dFNpYmxpbmc7aWYoZS5yZW1vdmVDaGlsZChhKSxpJiZpLm5vZGVUeXBlPT09OClpZihhPWkuZGF0YSxhPT09Ii8kIil7aWYoMDxuJiY4Pm4pe2E9bjt2YXIgdT1lLm93bmVyRG9jdW1lbnQ7aWYoYSYxJiZtbCh1LmRvY3VtZW50RWxlbWVudCksYSYyJiZtbCh1LmJvZHkpLGEmNClmb3IoYT11LmhlYWQsbWwoYSksdT1hLmZpcnN0Q2hpbGQ7dTspe3ZhciBjPXUubmV4dFNpYmxpbmcscj11Lm5vZGVOYW1lO3VbTm5dfHxyPT09IlNDUklQVCJ8fHI9PT0iU1RZTEUifHxyPT09IkxJTksiJiZ1LnJlbC50b0xvd2VyQ2FzZSgpPT09InN0eWxlc2hlZXQifHxhLnJlbW92ZUNoaWxkKHUpLHU9Y319aWYobD09PTApe2UucmVtb3ZlQ2hpbGQoaSksVGwodCk7cmV0dXJufWwtLX1lbHNlIGE9PT0iJCJ8fGE9PT0iJD8ifHxhPT09IiQhIj9sKys6bj1hLmNoYXJDb2RlQXQoMCktNDg7ZWxzZSBuPTA7YT1pfXdoaWxlKGEpO1RsKHQpfWZ1bmN0aW9uIGFvKGUpe3ZhciB0PWUuZmlyc3RDaGlsZDtmb3IodCYmdC5ub2RlVHlwZT09PTEwJiYodD10Lm5leHRTaWJsaW5nKTt0Oyl7dmFyIGE9dDtzd2l0Y2godD10Lm5leHRTaWJsaW5nLGEubm9kZU5hbWUpe2Nhc2UiSFRNTCI6Y2FzZSJIRUFEIjpjYXNlIkJPRFkiOmFvKGEpLGN1KGEpO2NvbnRpbnVlO2Nhc2UiU0NSSVBUIjpjYXNlIlNUWUxFIjpjb250aW51ZTtjYXNlIkxJTksiOmlmKGEucmVsLnRvTG93ZXJDYXNlKCk9PT0ic3R5bGVzaGVldCIpY29udGludWV9ZS5yZW1vdmVDaGlsZChhKX19ZnVuY3Rpb24gY18oZSx0LGEsbil7Zm9yKDtlLm5vZGVUeXBlPT09MTspe3ZhciBsPWE7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKXtpZighbiYmKGUubm9kZU5hbWUhPT0iSU5QVVQifHxlLnR5cGUhPT0iaGlkZGVuIikpYnJlYWt9ZWxzZSBpZihuKXtpZighZVtObl0pc3dpdGNoKHQpe2Nhc2UibWV0YSI6aWYoIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2Nhc2UibGluayI6aWYoaT1lLmdldEF0dHJpYnV0ZSgicmVsIiksaT09PSJzdHlsZXNoZWV0IiYmZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO2lmKGkhPT1sLnJlbHx8ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PShsLmhyZWY9PW51bGx8fGwuaHJlZj09PSIiP251bGw6bC5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0obC5jcm9zc09yaWdpbj09bnVsbD9udWxsOmwuY3Jvc3NPcmlnaW4pfHxlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSE9PShsLnRpdGxlPT1udWxsP251bGw6bC50aXRsZSkpYnJlYWs7cmV0dXJuIGU7Y2FzZSJzdHlsZSI6aWYoZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO3JldHVybiBlO2Nhc2Uic2NyaXB0IjppZihpPWUuZ2V0QXR0cmlidXRlKCJzcmMiKSwoaSE9PShsLnNyYz09bnVsbD9udWxsOmwuc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PShsLnR5cGU9PW51bGw/bnVsbDpsLnR5cGUpfHxlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PShsLmNyb3NzT3JpZ2luPT1udWxsP251bGw6bC5jcm9zc09yaWdpbikpJiZpJiZlLmhhc0F0dHJpYnV0ZSgiYXN5bmMiKSYmIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2RlZmF1bHQ6cmV0dXJuIGV9fWVsc2UgaWYodD09PSJpbnB1dCImJmUudHlwZT09PSJoaWRkZW4iKXt2YXIgaT1sLm5hbWU9PW51bGw/bnVsbDoiIitsLm5hbWU7aWYobC50eXBlPT09ImhpZGRlbiImJmUuZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1pKXJldHVybiBlfWVsc2UgcmV0dXJuIGU7aWYoZT14dChlLm5leHRTaWJsaW5nKSxlPT09bnVsbClicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBvXyhlLHQsYSl7aWYodD09PSIiKXJldHVybiBudWxsO2Zvcig7ZS5ub2RlVHlwZSE9PTM7KWlmKChlLm5vZGVUeXBlIT09MXx8ZS5ub2RlTmFtZSE9PSJJTlBVVCJ8fGUudHlwZSE9PSJoaWRkZW4iKSYmIWF8fChlPXh0KGUubmV4dFNpYmxpbmcpLGU9PT1udWxsKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX1mdW5jdGlvbiBubyhlKXtyZXR1cm4gZS5kYXRhPT09IiQhInx8ZS5kYXRhPT09IiQ/IiYmZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUifWZ1bmN0aW9uIHNfKGUsdCl7dmFyIGE9ZS5vd25lckRvY3VtZW50O2lmKGUuZGF0YSE9PSIkPyJ8fGEucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdCgpO2Vsc2V7dmFyIG49ZnVuY3Rpb24oKXt0KCksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixuKX07YS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixuKSxlLl9yZWFjdFJldHJ5PW59fWZ1bmN0aW9uIHh0KGUpe2Zvcig7ZSE9bnVsbDtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYodD09PTF8fHQ9PT0zKWJyZWFrO2lmKHQ9PT04KXtpZih0PWUuZGF0YSx0PT09IiQifHx0PT09IiQhInx8dD09PSIkPyJ8fHQ9PT0iRiEifHx0PT09IkYiKWJyZWFrO2lmKHQ9PT0iLyQiKXJldHVybiBudWxsfX1yZXR1cm4gZX12YXIgbG89bnVsbDtmdW5jdGlvbiBsZChlKXtlPWUucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZihlLm5vZGVUeXBlPT09OCl7dmFyIGE9ZS5kYXRhO2lmKGE9PT0iJCJ8fGE9PT0iJCEifHxhPT09IiQ/Iil7aWYodD09PTApcmV0dXJuIGU7dC0tfWVsc2UgYT09PSIvJCImJnQrK31lPWUucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGlkKGUsdCxhKXtzd2l0Y2godD13aShhKSxlKXtjYXNlImh0bWwiOmlmKGU9dC5kb2N1bWVudEVsZW1lbnQsIWUpdGhyb3cgRXJyb3Iocyg0NTIpKTtyZXR1cm4gZTtjYXNlImhlYWQiOmlmKGU9dC5oZWFkLCFlKXRocm93IEVycm9yKHMoNDUzKSk7cmV0dXJuIGU7Y2FzZSJib2R5IjppZihlPXQuYm9keSwhZSl0aHJvdyBFcnJvcihzKDQ1NCkpO3JldHVybiBlO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NTEpKX19ZnVuY3Rpb24gbWwoZSl7Zm9yKHZhciB0PWUuYXR0cmlidXRlczt0Lmxlbmd0aDspZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKHRbMF0pO2N1KGUpfXZhciBTdD1uZXcgTWFwLHVkPW5ldyBTZXQ7ZnVuY3Rpb24gVWkoZSl7cmV0dXJuIHR5cGVvZiBlLmdldFJvb3ROb2RlPT0iZnVuY3Rpb24iP2UuZ2V0Um9vdE5vZGUoKTplLm5vZGVUeXBlPT09OT9lOmUub3duZXJEb2N1bWVudH12YXIgS3Q9Qy5kO0MuZD17ZjpyXyxyOmZfLEQ6ZF8sQzpoXyxMOm1fLG06X18sWDp5XyxTOnZfLE06cF99O2Z1bmN0aW9uIHJfKCl7dmFyIGU9S3QuZigpLHQ9QWkoKTtyZXR1cm4gZXx8dH1mdW5jdGlvbiBmXyhlKXt2YXIgdD1MYShlKTt0IT09bnVsbCYmdC50YWc9PT01JiZ0LnR5cGU9PT0iZm9ybSI/eHIodCk6S3QucihlKX12YXIgU249dHlwZW9mIGRvY3VtZW50PiJ1Ij9udWxsOmRvY3VtZW50O2Z1bmN0aW9uIGNkKGUsdCxhKXt2YXIgbj1TbjtpZihuJiZ0eXBlb2YgdD09InN0cmluZyImJnQpe3ZhciBsPW10KHQpO2w9J2xpbmtbcmVsPSInK2UrJyJdW2hyZWY9IicrbCsnIl0nLHR5cGVvZiBhPT0ic3RyaW5nIiYmKGwrPSdbY3Jvc3NvcmlnaW49IicrYSsnIl0nKSx1ZC5oYXMobCl8fCh1ZC5hZGQobCksZT17cmVsOmUsY3Jvc3NPcmlnaW46YSxocmVmOnR9LG4ucXVlcnlTZWxlY3RvcihsKT09PW51bGwmJih0PW4uY3JlYXRlRWxlbWVudCgibGluayIpLFFlKHQsImxpbmsiLGUpLEhlKHQpLG4uaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBkXyhlKXtLdC5EKGUpLGNkKCJkbnMtcHJlZmV0Y2giLGUsbnVsbCl9ZnVuY3Rpb24gaF8oZSx0KXtLdC5DKGUsdCksY2QoInByZWNvbm5lY3QiLGUsdCl9ZnVuY3Rpb24gbV8oZSx0LGEpe0t0LkwoZSx0LGEpO3ZhciBuPVNuO2lmKG4mJmUmJnQpe3ZhciBsPSdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSInK210KHQpKyciXSc7dD09PSJpbWFnZSImJmEmJmEuaW1hZ2VTcmNTZXQ/KGwrPSdbaW1hZ2VzcmNzZXQ9IicrbXQoYS5pbWFnZVNyY1NldCkrJyJdJyx0eXBlb2YgYS5pbWFnZVNpemVzPT0ic3RyaW5nIiYmKGwrPSdbaW1hZ2VzaXplcz0iJyttdChhLmltYWdlU2l6ZXMpKyciXScpKTpsKz0nW2hyZWY9IicrbXQoZSkrJyJdJzt2YXIgaT1sO3N3aXRjaCh0KXtjYXNlInN0eWxlIjppPVRuKGUpO2JyZWFrO2Nhc2Uic2NyaXB0IjppPUVuKGUpfVN0LmhhcyhpKXx8KGU9TSh7cmVsOiJwcmVsb2FkIixocmVmOnQ9PT0iaW1hZ2UiJiZhJiZhLmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOnR9LGEpLFN0LnNldChpLGUpLG4ucXVlcnlTZWxlY3RvcihsKSE9PW51bGx8fHQ9PT0ic3R5bGUiJiZuLnF1ZXJ5U2VsZWN0b3IoX2woaSkpfHx0PT09InNjcmlwdCImJm4ucXVlcnlTZWxlY3Rvcih2bChpKSl8fCh0PW4uY3JlYXRlRWxlbWVudCgibGluayIpLFFlKHQsImxpbmsiLGUpLEhlKHQpLG4uaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBfXyhlLHQpe0t0Lm0oZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj10JiZ0eXBlb2YgdC5hcz09InN0cmluZyI/dC5hczoic2NyaXB0IixsPSdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdW2FzPSInK210KG4pKyciXVtocmVmPSInK210KGUpKyciXScsaT1sO3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aT1FbihlKX1pZighU3QuaGFzKGkpJiYoZT1NKHtyZWw6Im1vZHVsZXByZWxvYWQiLGhyZWY6ZX0sdCksU3Quc2V0KGksZSksYS5xdWVyeVNlbGVjdG9yKGwpPT09bnVsbCkpe3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYoYS5xdWVyeVNlbGVjdG9yKHZsKGkpKSlyZXR1cm59bj1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxRZShuLCJsaW5rIixlKSxIZShuKSxhLmhlYWQuYXBwZW5kQ2hpbGQobil9fX1mdW5jdGlvbiB2XyhlLHQsYSl7S3QuUyhlLHQsYSk7dmFyIG49U247aWYobiYmZSl7dmFyIGw9R2EobikuaG9pc3RhYmxlU3R5bGVzLGk9VG4oZSk7dD10fHwiZGVmYXVsdCI7dmFyIHU9bC5nZXQoaSk7aWYoIXUpe3ZhciBjPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZih1PW4ucXVlcnlTZWxlY3RvcihfbChpKSkpYy5sb2FkaW5nPTU7ZWxzZXtlPU0oe3JlbDoic3R5bGVzaGVldCIsaHJlZjplLCJkYXRhLXByZWNlZGVuY2UiOnR9LGEpLChhPVN0LmdldChpKSkmJmlvKGUsYSk7dmFyIHI9dT1uLmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtIZShyKSxRZShyLCJsaW5rIixlKSxyLl9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsQSl7ci5vbmxvYWQ9cCxyLm9uZXJyb3I9QX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtjLmxvYWRpbmd8PTF9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2MubG9hZGluZ3w9Mn0pLGMubG9hZGluZ3w9NCxDaSh1LHQsbil9dT17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6dSxjb3VudDoxLHN0YXRlOmN9LGwuc2V0KGksdSl9fX1mdW5jdGlvbiB5XyhlLHQpe0t0LlgoZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj1HYShhKS5ob2lzdGFibGVTY3JpcHRzLGw9RW4oZSksaT1uLmdldChsKTtpfHwoaT1hLnF1ZXJ5U2VsZWN0b3IodmwobCkpLGl8fChlPU0oe3NyYzplLGFzeW5jOiEwfSx0KSwodD1TdC5nZXQobCkpJiZ1byhlLHQpLGk9YS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxIZShpKSxRZShpLCJsaW5rIixlKSxhLmhlYWQuYXBwZW5kQ2hpbGQoaSkpLGk9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6aSxjb3VudDoxLHN0YXRlOm51bGx9LG4uc2V0KGwsaSkpfX1mdW5jdGlvbiBwXyhlLHQpe0t0Lk0oZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj1HYShhKS5ob2lzdGFibGVTY3JpcHRzLGw9RW4oZSksaT1uLmdldChsKTtpfHwoaT1hLnF1ZXJ5U2VsZWN0b3IodmwobCkpLGl8fChlPU0oe3NyYzplLGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LHQpLCh0PVN0LmdldChsKSkmJnVvKGUsdCksaT1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEhlKGkpLFFlKGksImxpbmsiLGUpLGEuaGVhZC5hcHBlbmRDaGlsZChpKSksaT17dHlwZToic2NyaXB0IixpbnN0YW5jZTppLGNvdW50OjEsc3RhdGU6bnVsbH0sbi5zZXQobCxpKSl9fWZ1bmN0aW9uIG9kKGUsdCxhLG4pe3ZhciBsPShsPVouY3VycmVudCk/VWkobCk6bnVsbDtpZighbCl0aHJvdyBFcnJvcihzKDQ0NikpO3N3aXRjaChlKXtjYXNlIm1ldGEiOmNhc2UidGl0bGUiOnJldHVybiBudWxsO2Nhc2Uic3R5bGUiOnJldHVybiB0eXBlb2YgYS5wcmVjZWRlbmNlPT0ic3RyaW5nIiYmdHlwZW9mIGEuaHJlZj09InN0cmluZyI/KHQ9VG4oYS5ocmVmKSxhPUdhKGwpLmhvaXN0YWJsZVN0eWxlcyxuPWEuZ2V0KHQpLG58fChuPXt0eXBlOiJzdHlsZSIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LGEuc2V0KHQsbikpLG4pOnt0eXBlOiJ2b2lkIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07Y2FzZSJsaW5rIjppZihhLnJlbD09PSJzdHlsZXNoZWV0IiYmdHlwZW9mIGEuaHJlZj09InN0cmluZyImJnR5cGVvZiBhLnByZWNlZGVuY2U9PSJzdHJpbmciKXtlPVRuKGEuaHJlZik7dmFyIGk9R2EobCkuaG9pc3RhYmxlU3R5bGVzLHU9aS5nZXQoZSk7aWYodXx8KGw9bC5vd25lckRvY3VtZW50fHxsLHU9e3R5cGU6InN0eWxlc2hlZXQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTp7bG9hZGluZzowLHByZWxvYWQ6bnVsbH19LGkuc2V0KGUsdSksKGk9bC5xdWVyeVNlbGVjdG9yKF9sKGUpKSkmJiFpLl9wJiYodS5pbnN0YW5jZT1pLHUuc3RhdGUubG9hZGluZz01KSxTdC5oYXMoZSl8fChhPXtyZWw6InByZWxvYWQiLGFzOiJzdHlsZSIsaHJlZjphLmhyZWYsY3Jvc3NPcmlnaW46YS5jcm9zc09yaWdpbixpbnRlZ3JpdHk6YS5pbnRlZ3JpdHksbWVkaWE6YS5tZWRpYSxocmVmTGFuZzphLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5OmEucmVmZXJyZXJQb2xpY3l9LFN0LnNldChlLGEpLGl8fGdfKGwsZSxhLHUuc3RhdGUpKSksdCYmbj09PW51bGwpdGhyb3cgRXJyb3Iocyg1MjgsIiIpKTtyZXR1cm4gdX1pZih0JiZuIT09bnVsbCl0aHJvdyBFcnJvcihzKDUyOSwiIikpO3JldHVybiBudWxsO2Nhc2Uic2NyaXB0IjpyZXR1cm4gdD1hLmFzeW5jLGE9YS5zcmMsdHlwZW9mIGE9PSJzdHJpbmciJiZ0JiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdHlwZW9mIHQhPSJzeW1ib2wiPyh0PUVuKGEpLGE9R2EobCkuaG9pc3RhYmxlU2NyaXB0cyxuPWEuZ2V0KHQpLG58fChuPXt0eXBlOiJzY3JpcHQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxhLnNldCh0LG4pKSxuKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NDQsZSkpfX1mdW5jdGlvbiBUbihlKXtyZXR1cm4naHJlZj0iJyttdChlKSsnIid9ZnVuY3Rpb24gX2woZSl7cmV0dXJuJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bJytlKyJdIn1mdW5jdGlvbiBzZChlKXtyZXR1cm4gTSh7fSxlLHsiZGF0YS1wcmVjZWRlbmNlIjplLnByZWNlZGVuY2UscHJlY2VkZW5jZTpudWxsfSl9ZnVuY3Rpb24gZ18oZSx0LGEsbil7ZS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSJzdHlsZSJdWycrdCsiXSIpP24ubG9hZGluZz0xOih0PWUuY3JlYXRlRWxlbWVudCgibGluayIpLG4ucHJlbG9hZD10LHQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gbi5sb2FkaW5nfD0xfSksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oKXtyZXR1cm4gbi5sb2FkaW5nfD0yfSksUWUodCwibGluayIsYSksSGUodCksZS5oZWFkLmFwcGVuZENoaWxkKHQpKX1mdW5jdGlvbiBFbihlKXtyZXR1cm4nW3NyYz0iJyttdChlKSsnIl0nfWZ1bmN0aW9uIHZsKGUpe3JldHVybiJzY3JpcHRbYXN5bmNdIitlfWZ1bmN0aW9uIHJkKGUsdCxhKXtpZih0LmNvdW50KyssdC5pbnN0YW5jZT09PW51bGwpc3dpdGNoKHQudHlwZSl7Y2FzZSJzdHlsZSI6dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWhyZWZ+PSInK210KGEuaHJlZikrJyJdJyk7aWYobilyZXR1cm4gdC5pbnN0YW5jZT1uLEhlKG4pLG47dmFyIGw9TSh7fSxhLHsiZGF0YS1ocmVmIjphLmhyZWYsImRhdGEtcHJlY2VkZW5jZSI6YS5wcmVjZWRlbmNlLGhyZWY6bnVsbCxwcmVjZWRlbmNlOm51bGx9KTtyZXR1cm4gbj0oZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLEhlKG4pLFFlKG4sInN0eWxlIixsKSxDaShuLGEucHJlY2VkZW5jZSxlKSx0Lmluc3RhbmNlPW47Y2FzZSJzdHlsZXNoZWV0IjpsPVRuKGEuaHJlZik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKF9sKGwpKTtpZihpKXJldHVybiB0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1pLEhlKGkpLGk7bj1zZChhKSwobD1TdC5nZXQobCkpJiZpbyhuLGwpLGk9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudCgibGluayIpLEhlKGkpO3ZhciB1PWk7cmV0dXJuIHUuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oYyxyKXt1Lm9ubG9hZD1jLHUub25lcnJvcj1yfSksUWUoaSwibGluayIsbiksdC5zdGF0ZS5sb2FkaW5nfD00LENpKGksYS5wcmVjZWRlbmNlLGUpLHQuaW5zdGFuY2U9aTtjYXNlInNjcmlwdCI6cmV0dXJuIGk9RW4oYS5zcmMpLChsPWUucXVlcnlTZWxlY3Rvcih2bChpKSkpPyh0Lmluc3RhbmNlPWwsSGUobCksbCk6KG49YSwobD1TdC5nZXQoaSkpJiYobj1NKHt9LGEpLHVvKG4sbCkpLGU9ZS5vd25lckRvY3VtZW50fHxlLGw9ZS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxIZShsKSxRZShsLCJsaW5rIixuKSxlLmhlYWQuYXBwZW5kQ2hpbGQobCksdC5pbnN0YW5jZT1sKTtjYXNlInZvaWQiOnJldHVybiBudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NDMsdC50eXBlKSl9ZWxzZSB0LnR5cGU9PT0ic3R5bGVzaGVldCImJih0LnN0YXRlLmxvYWRpbmcmNCk9PT0wJiYobj10Lmluc3RhbmNlLHQuc3RhdGUubG9hZGluZ3w9NCxDaShuLGEucHJlY2VkZW5jZSxlKSk7cmV0dXJuIHQuaW5zdGFuY2V9ZnVuY3Rpb24gQ2koZSx0LGEpe2Zvcih2YXIgbj1hLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdJyksbD1uLmxlbmd0aD9uW24ubGVuZ3RoLTFdOm51bGwsaT1sLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGM9blt1XTtpZihjLmRhdGFzZXQucHJlY2VkZW5jZT09PXQpaT1jO2Vsc2UgaWYoaSE9PWwpYnJlYWt9aT9pLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsaS5uZXh0U2libGluZyk6KHQ9YS5ub2RlVHlwZT09PTk/YS5oZWFkOmEsdC5pbnNlcnRCZWZvcmUoZSx0LmZpcnN0Q2hpbGQpKX1mdW5jdGlvbiBpbyhlLHQpe2UuY3Jvc3NPcmlnaW49PW51bGwmJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLGUucmVmZXJyZXJQb2xpY3k9PW51bGwmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLGUudGl0bGU9PW51bGwmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIHVvKGUsdCl7ZS5jcm9zc09yaWdpbj09bnVsbCYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksZS5yZWZlcnJlclBvbGljeT09bnVsbCYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksZS5pbnRlZ3JpdHk9PW51bGwmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIHFpPW51bGw7ZnVuY3Rpb24gZmQoZSx0LGEpe2lmKHFpPT09bnVsbCl7dmFyIG49bmV3IE1hcCxsPXFpPW5ldyBNYXA7bC5zZXQoYSxuKX1lbHNlIGw9cWksbj1sLmdldChhKSxufHwobj1uZXcgTWFwLGwuc2V0KGEsbikpO2lmKG4uaGFzKGUpKXJldHVybiBuO2ZvcihuLnNldChlLG51bGwpLGE9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShlKSxsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBpPWFbbF07aWYoIShpW05uXXx8aVtaZV18fGU9PT0ibGluayImJmkuZ2V0QXR0cmlidXRlKCJyZWwiKT09PSJzdHlsZXNoZWV0IikmJmkubmFtZXNwYWNlVVJJIT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIil7dmFyIHU9aS5nZXRBdHRyaWJ1dGUodCl8fCIiO3U9ZSt1O3ZhciBjPW4uZ2V0KHUpO2M/Yy5wdXNoKGkpOm4uc2V0KHUsW2ldKX19cmV0dXJuIG59ZnVuY3Rpb24gZGQoZSx0LGEpe2U9ZS5vd25lckRvY3VtZW50fHxlLGUuaGVhZC5pbnNlcnRCZWZvcmUoYSx0PT09InRpdGxlIj9lLnF1ZXJ5U2VsZWN0b3IoImhlYWQgPiB0aXRsZSIpOm51bGwpfWZ1bmN0aW9uIGJfKGUsdCxhKXtpZihhPT09MXx8dC5pdGVtUHJvcCE9bnVsbClyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZSJtZXRhIjpjYXNlInRpdGxlIjpyZXR1cm4hMDtjYXNlInN0eWxlIjppZih0eXBlb2YgdC5wcmVjZWRlbmNlIT0ic3RyaW5nInx8dHlwZW9mIHQuaHJlZiE9InN0cmluZyJ8fHQuaHJlZj09PSIiKWJyZWFrO3JldHVybiEwO2Nhc2UibGluayI6aWYodHlwZW9mIHQucmVsIT0ic3RyaW5nInx8dHlwZW9mIHQuaHJlZiE9InN0cmluZyJ8fHQuaHJlZj09PSIifHx0Lm9uTG9hZHx8dC5vbkVycm9yKWJyZWFrO3JldHVybiB0LnJlbD09PSJzdHlsZXNoZWV0Ij8oZT10LmRpc2FibGVkLHR5cGVvZiB0LnByZWNlZGVuY2U9PSJzdHJpbmciJiZlPT1udWxsKTohMDtjYXNlInNjcmlwdCI6aWYodC5hc3luYyYmdHlwZW9mIHQuYXN5bmMhPSJmdW5jdGlvbiImJnR5cGVvZiB0LmFzeW5jIT0ic3ltYm9sIiYmIXQub25Mb2FkJiYhdC5vbkVycm9yJiZ0LnNyYyYmdHlwZW9mIHQuc3JjPT0ic3RyaW5nIilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBoZChlKXtyZXR1cm4hKGUudHlwZT09PSJzdHlsZXNoZWV0IiYmKGUuc3RhdGUubG9hZGluZyYzKT09PTApfXZhciB5bD1udWxsO2Z1bmN0aW9uIFNfKCl7fWZ1bmN0aW9uIFRfKGUsdCxhKXtpZih5bD09PW51bGwpdGhyb3cgRXJyb3Iocyg0NzUpKTt2YXIgbj15bDtpZih0LnR5cGU9PT0ic3R5bGVzaGVldCImJih0eXBlb2YgYS5tZWRpYSE9InN0cmluZyJ8fG1hdGNoTWVkaWEoYS5tZWRpYSkubWF0Y2hlcyE9PSExKSYmKHQuc3RhdGUubG9hZGluZyY0KT09PTApe2lmKHQuaW5zdGFuY2U9PT1udWxsKXt2YXIgbD1UbihhLmhyZWYpLGk9ZS5xdWVyeVNlbGVjdG9yKF9sKGwpKTtpZihpKXtlPWkuX3AsZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIiYmKG4uY291bnQrKyxuPWppLmJpbmQobiksZS50aGVuKG4sbikpLHQuc3RhdGUubG9hZGluZ3w9NCx0Lmluc3RhbmNlPWksSGUoaSk7cmV0dXJufWk9ZS5vd25lckRvY3VtZW50fHxlLGE9c2QoYSksKGw9U3QuZ2V0KGwpKSYmaW8oYSxsKSxpPWkuY3JlYXRlRWxlbWVudCgibGluayIpLEhlKGkpO3ZhciB1PWk7dS5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihjLHIpe3Uub25sb2FkPWMsdS5vbmVycm9yPXJ9KSxRZShpLCJsaW5rIixhKSx0Lmluc3RhbmNlPWl9bi5zdHlsZXNoZWV0cz09PW51bGwmJihuLnN0eWxlc2hlZXRzPW5ldyBNYXApLG4uc3R5bGVzaGVldHMuc2V0KHQsZSksKGU9dC5zdGF0ZS5wcmVsb2FkKSYmKHQuc3RhdGUubG9hZGluZyYzKT09PTAmJihuLmNvdW50KyssdD1qaS5iaW5kKG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdCkpfX1mdW5jdGlvbiBFXygpe2lmKHlsPT09bnVsbCl0aHJvdyBFcnJvcihzKDQ3NSkpO3ZhciBlPXlsO3JldHVybiBlLnN0eWxlc2hlZXRzJiZlLmNvdW50PT09MCYmY28oZSxlLnN0eWxlc2hlZXRzKSwwPGUuY291bnQ/ZnVuY3Rpb24odCl7dmFyIGE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKGUuc3R5bGVzaGVldHMmJmNvKGUsZS5zdHlsZXNoZWV0cyksZS51bnN1c3BlbmQpe3ZhciBuPWUudW5zdXNwZW5kO2UudW5zdXNwZW5kPW51bGwsbigpfX0sNmU0KTtyZXR1cm4gZS51bnN1c3BlbmQ9dCxmdW5jdGlvbigpe2UudW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KGEpfX06bnVsbH1mdW5jdGlvbiBqaSgpe2lmKHRoaXMuY291bnQtLSx0aGlzLmNvdW50PT09MCl7aWYodGhpcy5zdHlsZXNoZWV0cyljbyh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIEhpPW51bGw7ZnVuY3Rpb24gY28oZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsZS51bnN1c3BlbmQhPT1udWxsJiYoZS5jb3VudCsrLEhpPW5ldyBNYXAsdC5mb3JFYWNoKEFfLGUpLEhpPW51bGwsamkuY2FsbChlKSl9ZnVuY3Rpb24gQV8oZSx0KXtpZighKHQuc3RhdGUubG9hZGluZyY0KSl7dmFyIGE9SGkuZ2V0KGUpO2lmKGEpdmFyIG49YS5nZXQobnVsbCk7ZWxzZXthPW5ldyBNYXAsSGkuc2V0KGUsYSk7Zm9yKHZhciBsPWUucXVlcnlTZWxlY3RvckFsbCgibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iKSxpPTA7aTxsLmxlbmd0aDtpKyspe3ZhciB1PWxbaV07KHUubm9kZU5hbWU9PT0iTElOSyJ8fHUuZ2V0QXR0cmlidXRlKCJtZWRpYSIpIT09Im5vdCBhbGwiKSYmKGEuc2V0KHUuZGF0YXNldC5wcmVjZWRlbmNlLHUpLG49dSl9biYmYS5zZXQobnVsbCxuKX1sPXQuaW5zdGFuY2UsdT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIiksaT1hLmdldCh1KXx8bixpPT09biYmYS5zZXQobnVsbCxsKSxhLnNldCh1LGwpLHRoaXMuY291bnQrKyxuPWppLmJpbmQodGhpcyksbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuKSxsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKSxpP2kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxpLm5leHRTaWJsaW5nKTooZT1lLm5vZGVUeXBlPT09OT9lLmhlYWQ6ZSxlLmluc2VydEJlZm9yZShsLGUuZmlyc3RDaGlsZCkpLHQuc3RhdGUubG9hZGluZ3w9NH19dmFyIHBsPXskJHR5cGVvZjpTZSxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2N1cnJlbnRWYWx1ZTpRLF9jdXJyZW50VmFsdWUyOlEsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIHhfKGUsdCxhLG4sbCxpLHUsYyl7dGhpcy50YWc9MSx0aGlzLmNvbnRhaW5lckluZm89ZSx0aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5jYWxsYmFja05vZGU9dGhpcy5uZXh0PXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PXRoaXMuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXhwaXJhdGlvblRpbWVzPW51KC0xKSx0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuc2hlbGxTdXNwZW5kQ291bnRlcj10aGlzLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMud2FybUxhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz1udSgwKSx0aGlzLmhpZGRlblVwZGF0ZXM9bnUobnVsbCksdGhpcy5pZGVudGlmaWVyUHJlZml4PW4sdGhpcy5vblVuY2F1Z2h0RXJyb3I9bCx0aGlzLm9uQ2F1Z2h0RXJyb3I9aSx0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj11LHRoaXMucG9vbGVkQ2FjaGU9bnVsbCx0aGlzLnBvb2xlZENhY2hlTGFuZXM9MCx0aGlzLmZvcm1TdGF0ZT1jLHRoaXMuaW5jb21wbGV0ZVRyYW5zaXRpb25zPW5ldyBNYXB9ZnVuY3Rpb24gbWQoZSx0LGEsbixsLGksdSxjLHIscCxBLFIpe3JldHVybiBlPW5ldyB4XyhlLHQsYSx1LGMscixwLFIpLHQ9MSxpPT09ITAmJih0fD0yNCksaT1jdCgzLG51bGwsbnVsbCx0KSxlLmN1cnJlbnQ9aSxpLnN0YXRlTm9kZT1lLHQ9WHUoKSx0LnJlZkNvdW50KyssZS5wb29sZWRDYWNoZT10LHQucmVmQ291bnQrKyxpLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bixpc0RlaHlkcmF0ZWQ6YSxjYWNoZTp0fSxWdShpKSxlfWZ1bmN0aW9uIF9kKGUpe3JldHVybiBlPyhlPUlhLGUpOklhfWZ1bmN0aW9uIHZkKGUsdCxhLG4sbCxpKXtsPV9kKGwpLG4uY29udGV4dD09PW51bGw/bi5jb250ZXh0PWw6bi5wZW5kaW5nQ29udGV4dD1sLG49ZWEodCksbi5wYXlsb2FkPXtlbGVtZW50OmF9LGk9aT09PXZvaWQgMD9udWxsOmksaSE9PW51bGwmJihuLmNhbGxiYWNrPWkpLGE9dGEoZSxuLHQpLGEhPT1udWxsJiYoZHQoYSxlLHQpLEpuKGEsZSx0KSl9ZnVuY3Rpb24geWQoZSx0KXtpZihlPWUubWVtb2l6ZWRTdGF0ZSxlIT09bnVsbCYmZS5kZWh5ZHJhdGVkIT09bnVsbCl7dmFyIGE9ZS5yZXRyeUxhbmU7ZS5yZXRyeUxhbmU9YSE9PTAmJmE8dD9hOnR9fWZ1bmN0aW9uIG9vKGUsdCl7eWQoZSx0KSwoZT1lLmFsdGVybmF0ZSkmJnlkKGUsdCl9ZnVuY3Rpb24gcGQoZSl7aWYoZS50YWc9PT0xMyl7dmFyIHQ9UGEoZSw2NzEwODg2NCk7dCE9PW51bGwmJmR0KHQsZSw2NzEwODg2NCksb28oZSw2NzEwODg2NCl9fXZhciBCaT0hMDtmdW5jdGlvbiB6XyhlLHQsYSxuKXt2YXIgbD14LlQ7eC5UPW51bGw7dmFyIGk9Qy5wO3RyeXtDLnA9MixzbyhlLHQsYSxuKX1maW5hbGx5e0MucD1pLHguVD1sfX1mdW5jdGlvbiBSXyhlLHQsYSxuKXt2YXIgbD14LlQ7eC5UPW51bGw7dmFyIGk9Qy5wO3RyeXtDLnA9OCxzbyhlLHQsYSxuKX1maW5hbGx5e0MucD1pLHguVD1sfX1mdW5jdGlvbiBzbyhlLHQsYSxuKXtpZihCaSl7dmFyIGw9cm8obik7aWYobD09PW51bGwpV2MoZSx0LG4sWWksYSksYmQoZSxuKTtlbHNlIGlmKE5fKGwsZSx0LGEsbikpbi5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKGJkKGUsbiksdCY0JiYtMTxEXy5pbmRleE9mKGUpKXtmb3IoO2whPT1udWxsOyl7dmFyIGk9TGEobCk7aWYoaSE9PW51bGwpc3dpdGNoKGkudGFnKXtjYXNlIDM6aWYoaT1pLnN0YXRlTm9kZSxpLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciB1PWdhKGkucGVuZGluZ0xhbmVzKTtpZih1IT09MCl7dmFyIGM9aTtmb3IoYy5wZW5kaW5nTGFuZXN8PTIsYy5lbnRhbmdsZWRMYW5lc3w9Mjt1Oyl7dmFyIHI9MTw8MzEtaXQodSk7Yy5lbnRhbmdsZW1lbnRzWzFdfD1yLHUmPX5yfU10KGkpLChvZSY2KT09PTAmJihUaT16dCgpKzUwMCxmbCgwKSl9fWJyZWFrO2Nhc2UgMTM6Yz1QYShpLDIpLGMhPT1udWxsJiZkdChjLGksMiksQWkoKSxvbyhpLDIpfWlmKGk9cm8obiksaT09PW51bGwmJldjKGUsdCxuLFlpLGEpLGk9PT1sKWJyZWFrO2w9aX1sIT09bnVsbCYmbi5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIFdjKGUsdCxuLG51bGwsYSl9fWZ1bmN0aW9uIHJvKGUpe3JldHVybiBlPV91KGUpLGZvKGUpfXZhciBZaT1udWxsO2Z1bmN0aW9uIGZvKGUpe2lmKFlpPW51bGwsZT1ZYShlKSxlIT09bnVsbCl7dmFyIHQ9TyhlKTtpZih0PT09bnVsbCllPW51bGw7ZWxzZXt2YXIgYT10LnRhZztpZihhPT09MTMpe2lmKGU9dyh0KSxlIT09bnVsbClyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZihhPT09Myl7aWYodC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gdC50YWc9PT0zP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSB0IT09ZSYmKGU9bnVsbCl9fXJldHVybiBZaT1lLG51bGx9ZnVuY3Rpb24gZ2QoZSl7c3dpdGNoKGUpe2Nhc2UiYmVmb3JldG9nZ2xlIjpjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2hzdGFydCI6Y2FzZSJ2b2x1bWVjaGFuZ2UiOmNhc2UiY2hhbmdlIjpjYXNlInNlbGVjdGlvbmNoYW5nZSI6Y2FzZSJ0ZXh0SW5wdXQiOmNhc2UiY29tcG9zaXRpb25zdGFydCI6Y2FzZSJjb21wb3NpdGlvbmVuZCI6Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Y2FzZSJiZWZvcmVpbnB1dCI6Y2FzZSJibHVyIjpjYXNlImZ1bGxzY3JlZW5jaGFuZ2UiOmNhc2UiZm9jdXMiOmNhc2UiaGFzaGNoYW5nZSI6Y2FzZSJwb3BzdGF0ZSI6Y2FzZSJzZWxlY3QiOmNhc2Uic2VsZWN0c3RhcnQiOnJldHVybiAyO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJzY3JvbGwiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gODtjYXNlIm1lc3NhZ2UiOnN3aXRjaChoaCgpKXtjYXNlIHdvOnJldHVybiAyO2Nhc2UgVW86cmV0dXJuIDg7Y2FzZSBNbDpjYXNlIG1oOnJldHVybiAzMjtjYXNlIENvOnJldHVybiAyNjg0MzU0NTY7ZGVmYXVsdDpyZXR1cm4gMzJ9ZGVmYXVsdDpyZXR1cm4gMzJ9fXZhciBobz0hMSxtYT1udWxsLF9hPW51bGwsdmE9bnVsbCxnbD1uZXcgTWFwLGJsPW5ldyBNYXAseWE9W10sRF89Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBiZChlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOm1hPW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpfYT1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0Ijp2YT1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6Z2wuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6YmwuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gU2woZSx0LGEsbixsLGkpe3JldHVybiBlPT09bnVsbHx8ZS5uYXRpdmVFdmVudCE9PWk/KGU9e2Jsb2NrZWRPbjp0LGRvbUV2ZW50TmFtZTphLGV2ZW50U3lzdGVtRmxhZ3M6bixuYXRpdmVFdmVudDppLHRhcmdldENvbnRhaW5lcnM6W2xdfSx0IT09bnVsbCYmKHQ9TGEodCksdCE9PW51bGwmJnBkKHQpKSxlKTooZS5ldmVudFN5c3RlbUZsYWdzfD1uLHQ9ZS50YXJnZXRDb250YWluZXJzLGwhPT1udWxsJiZ0LmluZGV4T2YobCk9PT0tMSYmdC5wdXNoKGwpLGUpfWZ1bmN0aW9uIE5fKGUsdCxhLG4sbCl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIG1hPVNsKG1hLGUsdCxhLG4sbCksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBfYT1TbChfYSxlLHQsYSxuLGwpLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gdmE9U2wodmEsZSx0LGEsbixsKSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgaT1sLnBvaW50ZXJJZDtyZXR1cm4gZ2wuc2V0KGksU2woZ2wuZ2V0KGkpfHxudWxsLGUsdCxhLG4sbCkpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBpPWwucG9pbnRlcklkLGJsLnNldChpLFNsKGJsLmdldChpKXx8bnVsbCxlLHQsYSxuLGwpKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBTZChlKXt2YXIgdD1ZYShlLnRhcmdldCk7aWYodCE9PW51bGwpe3ZhciBhPU8odCk7aWYoYSE9PW51bGwpe2lmKHQ9YS50YWcsdD09PTEzKXtpZih0PXcoYSksdCE9PW51bGwpe2UuYmxvY2tlZE9uPXQsVGgoZS5wcmlvcml0eSxmdW5jdGlvbigpe2lmKGEudGFnPT09MTMpe3ZhciBuPWZ0KCk7bj1sdShuKTt2YXIgbD1QYShhLG4pO2whPT1udWxsJiZkdChsLGEsbiksb28oYSxuKX19KTtyZXR1cm59fWVsc2UgaWYodD09PTMmJmEuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2UuYmxvY2tlZE9uPWEudGFnPT09Mz9hLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBMaShlKXtpZihlLmJsb2NrZWRPbiE9PW51bGwpcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIGE9cm8oZS5uYXRpdmVFdmVudCk7aWYoYT09PW51bGwpe2E9ZS5uYXRpdmVFdmVudDt2YXIgbj1uZXcgYS5jb25zdHJ1Y3RvcihhLnR5cGUsYSk7bXU9bixhLnRhcmdldC5kaXNwYXRjaEV2ZW50KG4pLG11PW51bGx9ZWxzZSByZXR1cm4gdD1MYShhKSx0IT09bnVsbCYmcGQodCksZS5ibG9ja2VkT249YSwhMTt0LnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gVGQoZSx0LGEpe0xpKGUpJiZhLmRlbGV0ZSh0KX1mdW5jdGlvbiBPXygpe2hvPSExLG1hIT09bnVsbCYmTGkobWEpJiYobWE9bnVsbCksX2EhPT1udWxsJiZMaShfYSkmJihfYT1udWxsKSx2YSE9PW51bGwmJkxpKHZhKSYmKHZhPW51bGwpLGdsLmZvckVhY2goVGQpLGJsLmZvckVhY2goVGQpfWZ1bmN0aW9uIEdpKGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCxob3x8KGhvPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LE9fKSkpfXZhciBYaT1udWxsO2Z1bmN0aW9uIEVkKGUpe1hpIT09ZSYmKFhpPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXtYaT09PWUmJihYaT1udWxsKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrPTMpe3ZhciBhPWVbdF0sbj1lW3QrMV0sbD1lW3QrMl07aWYodHlwZW9mIG4hPSJmdW5jdGlvbiIpe2lmKGZvKG58fGEpPT09bnVsbCljb250aW51ZTticmVha312YXIgaT1MYShhKTtpIT09bnVsbCYmKGUuc3BsaWNlKHQsMyksdC09MyxmYyhpLHtwZW5kaW5nOiEwLGRhdGE6bCxtZXRob2Q6YS5tZXRob2QsYWN0aW9uOm59LG4sbCkpfX0pKX1mdW5jdGlvbiBUbChlKXtmdW5jdGlvbiB0KHIpe3JldHVybiBHaShyLGUpfW1hIT09bnVsbCYmR2kobWEsZSksX2EhPT1udWxsJiZHaShfYSxlKSx2YSE9PW51bGwmJkdpKHZhLGUpLGdsLmZvckVhY2godCksYmwuZm9yRWFjaCh0KTtmb3IodmFyIGE9MDthPHlhLmxlbmd0aDthKyspe3ZhciBuPXlhW2FdO24uYmxvY2tlZE9uPT09ZSYmKG4uYmxvY2tlZE9uPW51bGwpfWZvcig7MDx5YS5sZW5ndGgmJihhPXlhWzBdLGEuYmxvY2tlZE9uPT09bnVsbCk7KVNkKGEpLGEuYmxvY2tlZE9uPT09bnVsbCYmeWEuc2hpZnQoKTtpZihhPShlLm93bmVyRG9jdW1lbnR8fGUpLiQkcmVhY3RGb3JtUmVwbGF5LGEhPW51bGwpZm9yKG49MDtuPGEubGVuZ3RoO24rPTMpe3ZhciBsPWFbbl0saT1hW24rMV0sdT1sW1dlXXx8bnVsbDtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIil1fHxFZChhKTtlbHNlIGlmKHUpe3ZhciBjPW51bGw7aWYoaSYmaS5oYXNBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSl7aWYobD1pLHU9aVtXZV18fG51bGwpYz11LmZvcm1BY3Rpb247ZWxzZSBpZihmbyhsKSE9PW51bGwpY29udGludWV9ZWxzZSBjPXUuYWN0aW9uO3R5cGVvZiBjPT0iZnVuY3Rpb24iP2FbbisxXT1jOihhLnNwbGljZShuLDMpLG4tPTMpLEVkKGEpfX19ZnVuY3Rpb24gbW8oZSl7dGhpcy5faW50ZXJuYWxSb290PWV9UWkucHJvdG90eXBlLnJlbmRlcj1tby5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZih0PT09bnVsbCl0aHJvdyBFcnJvcihzKDQwOSkpO3ZhciBhPXQuY3VycmVudCxuPWZ0KCk7dmQoYSxuLGUsdCxudWxsLG51bGwpfSxRaS5wcm90b3R5cGUudW5tb3VudD1tby5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihlIT09bnVsbCl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO3ZkKGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLEFpKCksdFtCYV09bnVsbH19O2Z1bmN0aW9uIFFpKGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfVFpLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1ZbygpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgYT0wO2E8eWEubGVuZ3RoJiZ0IT09MCYmdDx5YVthXS5wcmlvcml0eTthKyspO3lhLnNwbGljZShhLDAsZSksYT09PTAmJlNkKGUpfX07dmFyIEFkPWYudmVyc2lvbjtpZihBZCE9PSIxOS4xLjEiKXRocm93IEVycm9yKHMoNTI3LEFkLCIxOS4xLjEiKSk7Qy5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgdD1lLl9yZWFjdEludGVybmFscztpZih0PT09dm9pZCAwKXRocm93IHR5cGVvZiBlLnJlbmRlcj09ImZ1bmN0aW9uIj9FcnJvcihzKDE4OCkpOihlPU9iamVjdC5rZXlzKGUpLmpvaW4oIiwiKSxFcnJvcihzKDI2OCxlKSkpO3JldHVybiBlPUQodCksZT1lIT09bnVsbD9TKGUpOm51bGwsZT1lPT09bnVsbD9udWxsOmUuc3RhdGVOb2RlLGV9O3ZhciBNXz17YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjEuMSIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIixjdXJyZW50RGlzcGF0Y2hlclJlZjp4LHJlY29uY2lsZXJWZXJzaW9uOiIxOS4xLjEifTtpZih0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPCJ1Iil7dmFyIGtpPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZigha2kuaXNEaXNhYmxlZCYma2kuc3VwcG9ydHNGaWJlcil0cnl7em49a2kuaW5qZWN0KE1fKSxsdD1raX1jYXRjaHt9fXJldHVybiBBbC5jcmVhdGVSb290PWZ1bmN0aW9uKGUsdCl7aWYoIVQoZSkpdGhyb3cgRXJyb3IocygyOTkpKTt2YXIgYT0hMSxuPSIiLGw9WXIsaT1Mcix1PUdyLGM9bnVsbDtyZXR1cm4gdCE9bnVsbCYmKHQudW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYoYT0hMCksdC5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYobj10LmlkZW50aWZpZXJQcmVmaXgpLHQub25VbmNhdWdodEVycm9yIT09dm9pZCAwJiYobD10Lm9uVW5jYXVnaHRFcnJvciksdC5vbkNhdWdodEVycm9yIT09dm9pZCAwJiYoaT10Lm9uQ2F1Z2h0RXJyb3IpLHQub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYodT10Lm9uUmVjb3ZlcmFibGVFcnJvciksdC51bnN0YWJsZV90cmFuc2l0aW9uQ2FsbGJhY2tzIT09dm9pZCAwJiYoYz10LnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MpKSx0PW1kKGUsMSwhMSxudWxsLG51bGwsYSxuLGwsaSx1LGMsbnVsbCksZVtCYV09dC5jdXJyZW50LCRjKGUpLG5ldyBtbyh0KX0sQWwuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oZSx0LGEpe2lmKCFUKGUpKXRocm93IEVycm9yKHMoMjk5KSk7dmFyIG49ITEsbD0iIixpPVlyLHU9THIsYz1HcixyPW51bGwscD1udWxsO3JldHVybiBhIT1udWxsJiYoYS51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihuPSEwKSxhLmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJihsPWEuaWRlbnRpZmllclByZWZpeCksYS5vblVuY2F1Z2h0RXJyb3IhPT12b2lkIDAmJihpPWEub25VbmNhdWdodEVycm9yKSxhLm9uQ2F1Z2h0RXJyb3IhPT12b2lkIDAmJih1PWEub25DYXVnaHRFcnJvciksYS5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJihjPWEub25SZWNvdmVyYWJsZUVycm9yKSxhLnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MhPT12b2lkIDAmJihyPWEudW5zdGFibGVfdHJhbnNpdGlvbkNhbGxiYWNrcyksYS5mb3JtU3RhdGUhPT12b2lkIDAmJihwPWEuZm9ybVN0YXRlKSksdD1tZChlLDEsITAsdCxhPz9udWxsLG4sbCxpLHUsYyxyLHApLHQuY29udGV4dD1fZChudWxsKSxhPXQuY3VycmVudCxuPWZ0KCksbj1sdShuKSxsPWVhKG4pLGwuY2FsbGJhY2s9bnVsbCx0YShhLGwsbiksYT1uLHQuY3VycmVudC5sYW5lcz1hLERuKHQsYSksTXQodCksZVtCYV09dC5jdXJyZW50LCRjKGUpLG5ldyBRaSh0KX0sQWwudmVyc2lvbj0iMTkuMS4xIixBbH12YXIgQ2Q7ZnVuY3Rpb24gR18oKXtpZihDZClyZXR1cm4gdm8uZXhwb3J0cztDZD0xO2Z1bmN0aW9uIG8oKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18+InUifHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT0iZnVuY3Rpb24iKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKG8pfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoZil9fXJldHVybiBvKCksdm8uZXhwb3J0cz1MXygpLHZvLmV4cG9ydHN9dmFyIFhfPUdfKCk7Y29uc3QgUV89Im1vZHVsZXByZWxvYWQiLGtfPWZ1bmN0aW9uKG8pe3JldHVybiIvdjIvIitvfSxxZD17fSx4bj1mdW5jdGlvbihmLG0scyl7bGV0IFQ9UHJvbWlzZS5yZXNvbHZlKCk7aWYobSYmbS5sZW5ndGg+MCl7bGV0IEQ9ZnVuY3Rpb24oUyl7cmV0dXJuIFByb21pc2UuYWxsKFMubWFwKE09PlByb21pc2UucmVzb2x2ZShNKS50aGVuKFY9Pih7c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOlZ9KSxWPT4oe3N0YXR1czoicmVqZWN0ZWQiLHJlYXNvbjpWfSkpKSl9O2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIik7Y29uc3Qgdz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtZXRhW3Byb3BlcnR5PWNzcC1ub25jZV0iKSxFPXc/Lm5vbmNlfHx3Py5nZXRBdHRyaWJ1dGUoIm5vbmNlIik7VD1EKG0ubWFwKFM9PntpZihTPWtfKFMpLFMgaW4gcWQpcmV0dXJuO3FkW1NdPSEwO2NvbnN0IE09Uy5lbmRzV2l0aCgiLmNzcyIpLFY9TT8nW3JlbD0ic3R5bGVzaGVldCJdJzoiIjtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9IiR7U30iXSR7Vn1gKSlyZXR1cm47Y29uc3QgSD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7aWYoSC5yZWw9TT8ic3R5bGVzaGVldCI6UV8sTXx8KEguYXM9InNjcmlwdCIpLEguY3Jvc3NPcmlnaW49IiIsSC5ocmVmPVMsRSYmSC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixFKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEgpLE0pcmV0dXJuIG5ldyBQcm9taXNlKChjZSxoZSk9PntILmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGNlKSxILmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+aGUobmV3IEVycm9yKGBVbmFibGUgdG8gcHJlbG9hZCBDU1MgZm9yICR7U31gKSkpfSl9KSl9ZnVuY3Rpb24gTyh3KXtjb25zdCBFPW5ldyBFdmVudCgidml0ZTpwcmVsb2FkRXJyb3IiLHtjYW5jZWxhYmxlOiEwfSk7aWYoRS5wYXlsb2FkPXcsd2luZG93LmRpc3BhdGNoRXZlbnQoRSksIUUuZGVmYXVsdFByZXZlbnRlZCl0aHJvdyB3fXJldHVybiBULnRoZW4odz0+e2Zvcihjb25zdCBFIG9mIHd8fFtdKUUuc3RhdHVzPT09InJlamVjdGVkIiYmTyhFLnJlYXNvbik7cmV0dXJuIGYoKS5jYXRjaChPKX0pfTt2YXIgWT16bygpO2NvbnN0IFpfPXsic2hlbGwuc3dpdGNoX2xpZ2h0Ijoi5YiH5o2i5rWF6Imy5qih5byPIiwic2hlbGwuc3dpdGNoX2RhcmsiOiLliIfmjaLmt7HoibLmqKHlvI8iLCJzaGVsbC51cGRhdGVfYXZhaWxhYmxlIjoi5paw54mI5bey5bCx57uq77yM5Yi35paw5ZCO5L2/55So44CCIiwic2hlbGwucmVsb2FkIjoi5Yi35paw6aG16Z2iIiwiYXBwLm5hbWUiOiJRdWFudFN0cmF0ZWd5TGFiIiwibmF2Lm1haW4iOiLkuLvlr7zoiKoiLCJuYXYub3ZlcnZpZXciOiLmgLvop4giLCJuYXYucGVyZm9ybWFuY2UiOiLmlLbnm4rliIbmnpAiLCJuYXYuZGVjaXNpb25zIjoi5b6F5YqeIiwibmF2LmFjY291bnRzIjoi6LSm5oi3IiwibmF2LnN0cmF0ZWdpZXMiOiLnrZbnlaUiLCJuYXYuaGVhbHRoIjoi6L+Q6KGM54q25oCBIiwibmF2Lm1vcmUiOiLmm7TlpJoiLCJjb21tb24ubG9hZGluZyI6Iuato+WcqOivu+WPluKApiIsImNvbW1vbi5yZXRyeSI6IumHjeivlSIsImNvbW1vbi5jbG9zZSI6IuWFs+mXrSIsImNvbW1vbi5jYW5jZWwiOiLlj5bmtogiLCJjb21tb24uY29uZmlybSI6IuehruiupOe7p+e7rSIsImNvbW1vbi5zYXZlIjoi5L+d5a2YIiwiY29tbW9uLmVkaXQiOiLnvJbovpEiLCJjb21tb24uYmFjayI6Iui/lOWbniIsImNvbW1vbi5hbGwiOiLlhajpg6giLCJjb21tb24ubm9uZSI6IuaXoCIsImNvbW1vbi51bmtub3duIjoi5pyq55+lIiwiY29tbW9uLm5hIjoi4oCUIiwiY29tbW9uLmFzX29mIjoi5pWw5o2u5pel5pyfIHt2YWx1ZX0iLCJjb21tb24udXBkYXRlZF9hdCI6IuabtOaWsOS6jiB7dmFsdWV9IiwiY29tbW9uLnJlZnJlc2giOiLliLfmlrAiLCJjb21tb24ucmVmcmVzaGluZyI6Iuato+WcqOWIt+aWsOKApiIsImNvbW1vbi5jb3B5Ijoi5aSN5Yi2IiwiY29tbW9uLmNvcGllZCI6IuW3suWkjeWItiIsImNvbW1vbi52aWV3X2FsbCI6Iuafpeeci+WFqOmDqCIsImNvbW1vbi5sb2FkX21vcmUiOiLliqDovb3mm7TlpJoiLCJjb21tb24uZXhwYW5kIjoi5bGV5byAIiwiY29tbW9uLmNvbGxhcHNlIjoi5pS26LW3IiwiY29tbW9uLmFjY291bnQiOiLotKbmiLciLCJjb21tb24ucGxhdGZvcm0iOiLlubPlj7AiLCJjb21tb24uc3RyYXRlZ3kiOiLnrZbnlaUiLCJjb21tb24udGltZSI6IuaXtumXtCIsImNvbW1vbi5zdGF0dXMiOiLnirbmgIEiLCJjb21tb24uZGV0YWlscyI6IuivpuaDhSIsImNvbW1vbi5zeW50aGV0aWNfYmFkZ2UiOiLlkIjmiJDmvJTnpLoiLCJjb21tb24ucGFwZXJfYmFkZ2UiOiLmqKHmi58iLCJjb21tb24ucmVhZF9mYWlsZWRfYmFubmVyIjoi6YOo5YiG5pWw5o2u6K+75Y+W5aSx6LSl77yM6K+356iN5ZCO6YeN6K+V77yb6K+75Y+W5aSx6LSl5LiN5Luj6KGo5rKh5pyJ5YaF5a6544CCIiwiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiOiLmlL7lvIPmnKrkv53lrZjnmoTkv67mlLnvvJ8iLCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5Ijoi5b2T5YmN5pyJ5pyq5L+d5a2Y55qE5L+u5pS577yM56a75byA5ZCO5bCG5Lii5aSx44CCIiwic3RhdGUudW5rbm93bl9zdGF0dXMiOiLmnKrnn6XnirbmgIEiLCJzdGF0ZS5yZXZpZXciOiLlvoXlpI3moLgiLCJzdGF0ZS53YXRjaCI6IumcgOWFs+azqCIsInN0YXRlLmNyaXRpY2FsIjoi5Lil6YeNIiwic3RhdGUuYmxvY2tlZCI6Iui/kOihjOWPl+mYuyIsInN0YXRlLmZhaWxlZCI6Iui/kOihjOWksei0pSIsInN0YXRlLnJlYWRfaW5jb21wbGV0ZSI6Iuivu+WPluS4jeWujOaVtCIsInN0YXRlLmluc3VmZmljaWVudCI6Iui1hOaWmeS4jei2syIsInN0YXRlLnByZXZpZXdlZCI6IuW3sumihOiniCIsInN0YXRlLm5vX3N1Ym1pc3Npb24iOiLmnKrmj5DkuqTorqLljZUiLCJzdGF0ZS5ub19yZWJhbGFuY2UiOiLml6DpnIDosIPku5MiLCJzdGF0ZS5maWxsZWQiOiLlt7LmiJDkuqQiLCJzdGF0ZS5ub3RfZHVlIjoi5bCa5pyq5Yiw6L+Q6KGM5pe26Ze0Iiwic3RhdGUubWFya2V0X2Nsb3NlZCI6IuS8keW4giIsInN0YXRlLm91dHNpZGVfd2luZG93Ijoi5LiN5Zyo6L+Q6KGM5pe25q61Iiwic3RhdGUud2l0aGluX2dyYWNlIjoi5LuN5Zyo562J5b6F5pyfIiwic3RhdGUubWlzc2luZ19yZXBvcnQiOiLnvLrlsJHmiqXlkYoiLCJzdGF0ZS5lcnJvciI6Iui/kOihjOmUmeivryIsInN0YXRlLmhlYWx0aHkiOiLlgaXlurciLCJzdGF0ZS5ub19zaWduYWwiOiLml6Dkv6Hlj7ciLCJzdGF0ZS5vayI6Iuato+W4uCIsInN0YXRlLnBhcnRpYWwiOiLpg6jliIbmlbDmja4iLCJzdGF0ZS5zdGFsZSI6IuaVsOaNruWBj+aXpyIsInN0YXRlLm5vX2RhdGEiOiLmmoLml6DmlbDmja4iLCJzdGF0ZS5ub3RfY29ubmVjdGVkIjoi5pyq5o6l5YWlIiwic3RhdGUudW5hdmFpbGFibGUiOiLmmoLkuI3lj6/orqHnrpciLCJzdGF0ZS5yZWFkX2ZhaWxlZCI6Iuivu+WPluWksei0pSIsInJlYXNvbi5leHRlcm5hbF9jYXNoZmxvd19yZXF1aXJlZCI6Iue8uuWwkeWujOaVtOWHuuWFpemHkeiusOW9le+8jOmHkemineWPquiDveaMiei1hOS6p+WPmOWKqOWxleekuiIsInJlYXNvbi5maWxsc19ub3RfY29ubmVjdGVkIjoi5oiQ5Lqk6K6w5b2V5rqQ5pyq5o6l5YWlIiwicmVhc29uLmF2Z19jb3N0X21pc3NpbmciOiLnvLrlsJHmiJDmnKzku7fvvIzmnKrlrp7njrDnm4jkuo/mmoLkuI3lj6/orqHnrpciLCJyZWFzb24ubWl4ZWRfY3VycmVuY3kiOiLlpJrluIHnp43ml6Dms5XlkIjlubbkuLrljZXkuIDph5Hpop3vvJvmjInluIHnp43liIbliKvlsZXnpLoiLCJyZWFzb24uc25hcHNob3RfaGlzdG9yeV9taXNzaW5nIjoi57y65bCR5Y6G5Y+y6LWE5Lqn5b+r54WnIiwicmVhc29uLnNuYXBzaG90X21pc3NpbmciOiLnvLrlsJHotYTkuqflv6vnhaciLCJyZWFzb24ucHJldmlvdXNfc25hcHNob3RfbWlzc2luZyI6Iue8uuWwkeWJjeS4gOaXpeeahOi1hOS6p+W/q+eFpyIsInJlYXNvbi5ub25fdHJhZGluZ193ZWVrZW5kIjoi6Z2e5Lqk5piT5pelIiwicmVhc29uLmluY29tcGxldGVfbW9udGgiOiLlvZPmnIjmlbDmja7lsJrkuI3lrozmlbQiLCJyZWFzb24uaW5zdWZmaWNpZW50X29ic2VydmF0aW9ucyI6IuWOhuWPsuaVsOaNruS4jei2syIsInJlYXNvbi5pbnZhbGlkX3JldHVybl9wZXJpb2QiOiLljLrpl7Tnq6/ngrnml6DmlYgiLCJyZWFzb24ucG9zaXRpb25zX3BhcnRpYWxfY292ZXJhZ2UiOiLmjIHku5Pku4Xopobnm5bpg6jliIbotYTkuqciLCJyZWFzb24ucG9zaXRpb25zX25vdF9jb25uZWN0ZWQiOiLmjIHku5PmlbDmja7mupDmnKrmjqXlhaUiLCJyZWFzb24ucG9zaXRpb25zX3N0YWxlIjoi5oyB5LuT5pWw5o2u5YGP5penIiwicmVhc29uLmJlbmNobWFya19oaXN0b3J5X3VucmVhZGFibGUiOiLln7rlh4bmlbDmja7or7vlj5blpLHotKUiLCJyZWFzb24ucG9zaXRpb25fdmFsdWVfbWlzc2luZyI6Iue8uuWwkeaMgeS7k+W4guWAvCIsInJlYXNvbi5ub19jb21tb25fZGF0ZSI6IuS4juWfuuWHhuayoeacieWPr+Wvuem9kOeahOWFseWQjOaXpeacnyIsInJlYXNvbi5iZW5jaG1hcmtfaGlzdG9yeV9taXNzaW5nIjoi57y65bCR5Z+65YeG5Y6G5Y+y5pWw5o2uIiwicmVhc29uLnN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiOiLlrZjlgqjorrDlvZXor7vlj5blpLHotKUiLCJyZWFzb24uZWZmZWN0X3ZlcmlmaWNhdGlvbl9ub3RfcmVjb3JkZWQiOiLnlJ/mlYjnu5PmnpzmsqHmnInorrDlvZXmnaXmupAiLCJyZWFzb24uYm91bmRlZF9hdWRpdF9sb2ciOiLljoblj7LorrDlvZXmnInkv53nlZnkuIrpmZDvvIzlj6/og73kuI3lrozmlbQiLCJyZWFzb24ubm9fY2xvc2VkX3RyYWRlcyI6IuayoeacieW3suW5s+S7k+eahOS6pOaYkyIsInJlYXNvbi5ub3RpZmljYXRpb25fbG9nX25vdF9jb25uZWN0ZWQiOiLpgJrnn6Xlj5HpgIHorrDlvZXmupDmnKrmjqXlhaUiLCJyZWFzb24ucnVudGltZV9kYWlseV9ub3RfY29ubmVjdGVkIjoi6L+Q6KGM6K6w5b2V5rqQ5pyq5o6l5YWlIiwicmVhc29uLnRvZGF5X3JlY29yZF9taXNzaW5nIjoi5LuK5pel5pqC5peg6L+Q6KGM6K6w5b2VIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfc3RhbGUiOiLov5DooYzorrDlvZXlt7Lov4fmnJ8iLCJyZWFzb24ucnVudGltZV9kYWlseV9pbmNvbXBsZXRlIjoi6L+Q6KGM6K6w5b2V5LiN5a6M5pW0IiwicmVhc29uLnN0cmF0ZWd5X2hlYWx0aF9ub3RfY29ubmVjdGVkIjoi562W55Wl5YGl5bq35bqm5p2l5rqQ5pyq5o6l5YWlIiwicmVhc29uLmF2YWlsYWJsZSI6IuWPr+aTjeS9nCIsInJlYXNvbi5hZG1pbl9yZXF1aXJlZCI6IumcgOimgeeuoeeQhuWRmOadg+mZkCIsInJlYXNvbi5kaXNwYXRjaF91bmF2YWlsYWJsZSI6IuaJp+ihjOmAmumBk+aaguS4jeWPr+eUqCIsInJlYXNvbi5zdG9wX3BlbmRpbmdfb3JfaWRlbnRpdHlfdW5hdmFpbGFibGUiOiLlt7LmnInlgZznlKjor7fmsYLlvoXnoa7orqTmiJbouqvku73mmoLkuI3lj6/nlKgiLCJyZWFzb24uc3RyYXRlZ3lfYXBwbGljYXRpb25fbm90X2Nvbm5lY3RlZCI6IuetlueVpeW6lOeUqOmAmumBk+acquaOpeWFpSIsInJlYXNvbi5leGlzdGluZ19yZWNvdmVyeV9ub3RfYXZhaWxhYmxlIjoi5rKh5pyJ5Y+v55So55qE5pei5pyJ5oGi5aSN5rWB56iLIiwicmVhc29uLnJ1bnRpbWVfaW5zdGFuY2VzX25vdF9ib3VuZCI6Iui/kOihjOWunuS+i+acque7keWumiIsInJlYXNvbi5hY2NvdW50X3NldHRpbmdzX2lkZW50aXR5X2NvbmZsaWN0Ijoi6I2J5qGI57uR5a6a55qE5piv5pen6Lqr5Lu977yM6ZyA5YWI56Gu6K6kIiwicmVhc29uLnByb2ZpbGVfZHJhZnRfcmVxdWlyZWQiOiLpnIDopoHlvZPliY3ouqvku73nmoTojYnmoYgiLCJyZWFzb24ucHJvZmlsZV9vbmx5X3JlcXVpcmVkIjoi5LuF5pSv5oyB562W55Wl5qGj5qGI57G76I2J5qGIIiwicmVhc29uLnByb2ZpbGVfbm90X3NlbGVjdGFibGUiOiLor6XnrZbnlaXmoaPmoYjkuI3lj6/pgIkiLCJyZWFzb24ucnVudGltZV9yZWFkYmFja191bmF2YWlsYWJsZSI6Iui/kOihjOeKtuaAgeivu+WbnuS4jeWPr+eUqCIsInJlYXNvbi5ydW50aW1lX3RhcmdldF9ub3RfZGlzYWJsZWQiOiLov5DooYznm67moIflsJrmnKrlgZznlKgiLCJyZWFzb24uY3VycmVudF9wcm9maWxlX2NvbmZsaWN0Ijoi5b2T5YmN562W55Wl5qGj5qGI5Yay56qBIiwicmVhc29uLnByb2ZpbGVfYXBwbGljYXRpb25fcGVuZGluZyI6IuW3suacieW6lOeUqOivt+axguWkhOeQhuS4rSIsInJlYXNvbi5zeW50aGV0aWNfZ3VhcmRfYmxvY2tlZCI6IuWQiOaIkOa8lOekuueOr+Wig+S4jeaPkOS+m+ivpeaTjeS9nCIsInJlYXNvbi51bmtub3duIjoi5Y6f5Zug5pyq55+lIiwiYXV0aC5sb2dpbl90aXRsZSI6IueZu+W9leWQjue7p+e7reS9v+eUqCIsImF1dGgubG9naW5fYm9keSI6IueZu+W9leWQjuWPr+afpeeci+i0puaIt+aAu+iniOOAgeaUtuebiuWIhuaekOOAgeW+heWKnuS4jui/kOihjOeKtuaAgeOAgiIsImF1dGgubG9naW4iOiLnmbvlvZUiLCJhdXRoLmRlbmllZF90aXRsZSI6Iuayoeacieiuv+mXruadg+mZkCIsImF1dGguZGVuaWVkX2JvZHkiOiLlvZPliY3otKblj7fmnKrooqvlhYHorrjorr/pl67mraTmjqfliLblj7DjgIIiLCJhdXRoLmVycm9yX3RpdGxlIjoi5pqC5pe25peg5rOV6K+75Y+W5o6n5Yi25Y+wIiwiYXV0aC5lcnJvcl9ib2R5Ijoi5Lya6K+d5pyN5Yqh5pqC5pe25LiN5Y+v55So77yM6K+356iN5ZCO6YeN6K+V44CCIiwic2hlbGwuc2NvcGUiOiLotKbmiLfojIPlm7QiLCJzaGVsbC5zY29wZV9hbGwiOiLlhajpg6jotKbmiLciLCJzaGVsbC5zY29wZV9wYXBlcl9ncm91cCI6IuaooeaLn+i0puaItyIsInNoZWxsLmhpZGVfYW1vdW50cyI6IumakOiXj+mHkeminSIsInNoZWxsLnNob3dfYW1vdW50cyI6IuaYvuekuumHkeminSIsInNoZWxsLnVzZXJfbWVudSI6IueUqOaIt+iPnOWNlSIsInNoZWxsLnByZWZlcmVuY2VzIjoi5YGP5aW96K6+572uIiwic2hlbGwubG9nb3V0Ijoi6YCA5Ye655m75b2VIiwic2hlbGwuc2tpcF90b19jb250ZW50Ijoi6Lez5Yiw5Li76KaB5YaF5a65IiwicHJlZnMudGl0bGUiOiLlgY/lpb3orr7nva4iLCJwcmVmcy50aGVtZSI6IuS4u+mimCIsInByZWZzLnRoZW1lX2xpZ2h0Ijoi5rWF6ImyIiwicHJlZnMudGhlbWVfZGFyayI6Iua3seiJsiIsInByZWZzLnRoZW1lX3N5c3RlbSI6Iui3n+maj+ezu+e7nyIsInByZWZzLmxhbmd1YWdlIjoi6K+t6KiAIiwicHJlZnMudXBkb3duIjoi5rao6LeM6aKc6ImyIiwicHJlZnMudXBkb3duX2dyZWVuX3VwIjoi57u/5rao57qi6LeMIiwicHJlZnMudXBkb3duX3JlZF91cCI6Iue6oua2qOe7v+i3jCIsInByZWZzLmhpZGVfYW1vdW50cyI6Ium7mOiupOmakOiXj+mHkeminSIsInByZWZzLmRlZmF1bHRfcmFuZ2UiOiLpu5jorqTljLrpl7QiLCJwcmVmcy5ub3RlIjoi5YGP5aW95LuF5L+d5a2Y5Zyo5q2k5rWP6KeI5Zmo5Lit44CCIiwib3ZlcnZpZXcudG90YWxfYXNzZXRzIjoi5oC76LWE5LqnIiwib3ZlcnZpZXcucmFuZ2VfcmV0dXJuIjoi5Yy66Ze05pS255uKIHtyYW5nZX0iLCJvdmVydmlldy5sYXN0X2RheV9jaGFuZ2UiOiLmnIDov5HkuIDml6XotYTkuqflj5jliqgiLCJvdmVydmlldy50b2RvcyI6IuW+heWKniIsIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCI6Intjb3VudH0g57Sn5oClIiwib3ZlcnZpZXcucnVuc19vayI6Iui/kOihjCB7b2t9L3t0b3RhbH0g5q2j5bi4Iiwib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIjoi5pS255uK6LWw5Yq/Iiwib3ZlcnZpZXcudG9kb19wcmV2aWV3Ijoi5b6F5Yqe6aKE6KeIIiwib3ZlcnZpZXcubXlfYWNjb3VudHMiOiLmiJHnmoTotKbmiLciLCJvdmVydmlldy5hY2NvdW50X3N0cmF0ZWd5Ijoi562W55WlIiwib3ZlcnZpZXcuYWNjb3VudF9hc3NldHMiOiLotYTkuqciLCJvdmVydmlldy5hY2NvdW50X2Nhc2giOiLnjrDph5EiLCJvdmVydmlldy5ub19hY2NvdW50cyI6IuaaguaXoOi0puaItyIsIm92ZXJ2aWV3LnR3cl90YWciOiJUV1IiLCJvdmVydmlldy5vcGVuX3BlcmZvcm1hbmNlIjoi5omT5byA5pS255uK5YiG5p6QIiwib3ZlcnZpZXcub3Blbl9oZWFsdGgiOiLmiZPlvIDov5DooYznirbmgIEiLCJvdmVydmlldy5vcGVuX2RlY2lzaW9ucyI6IuaJk+W8gOW+heWKniIsInBlcmYudmFsdWVfa2luZF9wbmwiOiLnm4jkuo8iLCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIjoi6LWE5Lqn5Y+Y5YqoIiwicGVyZi5yYW5nZS4xTSI6IjHmnIgiLCJwZXJmLnJhbmdlLjNNIjoiM+aciCIsInBlcmYucmFuZ2UuWVREIjoi5bm05Yid6Iez5LuKIiwicGVyZi5yYW5nZS4xWSI6IjHlubQiLCJwZXJmLnJhbmdlLkFMTCI6IuWFqOmDqCIsInBlcmYucmFuZ2UubGFiZWwiOiLml7bpl7TljLrpl7QiLCJwZXJmLnJhbmdlLnJldHVybl9sYWJlbCI6IntyYW5nZX0g5pS255uKIiwicGVyZi5jYXJkLnR3ciI6Iue0r+iuoeaUtuebiu+8iFRXUu+8iSIsInBlcmYuY2FyZC5hbW91bnQiOiLnm4jkuo/ph5Hpop0iLCJwZXJmLmNhcmQuYW1vdW50X2Fzc2V0X2NoYW5nZSI6Iui1hOS6p+WPmOWKqCIsInBlcmYuY2FyZC5tYXhfZHJhd2Rvd24iOiLmnIDlpKflm57mkqQiLCJwZXJmLmNhcmQubWF4X2RyYXdkb3duX2RhdGVzIjoie3BlYWt9IOKGkiB7dHJvdWdofSIsInBlcmYuY2FyZC5leGNlc3MiOiLnm7jlr7nln7rlh4botoXpop0iLCJwZXJmLmNhcmQuYmVzdF9kYXkiOiLmnIDlpb3nmoTkuIDlpKkiLCJwZXJmLmNhcmQud29yc3RfZGF5Ijoi5pyA5beu55qE5LiA5aSpIiwicGVyZi5yZXR1cm5zX3RpdGxlIjoi5pS255uK546HIHZzIOWfuuWHhiIsInBlcmYucmV0dXJuc19jdW11bGF0aXZlIjoi57Sv56evIiwicGVyZi5yZXR1cm5zX2RhaWx5Ijoi5q+P5pelIiwicGVyZi5yZXR1cm5zX21haW5fc2VyaWVzIjoi5pys6IyD5Zu0IiwicGVyZi5ob3dfY2FsY3VsYXRlZCI6IuWmguS9leiuoeeul++8nyIsInBlcmYubWV0aG9kX3RpdGxlIjoi5pS255uK5aaC5L2V6K6h566XIiwicGVyZi5tZXRob2RfYm9keSI6IuaUtuebiueOh+aMieaXtumXtOWKoOadg++8iFRXUu+8ieiuoeeul++8muavj+aXpeaUtuebiuWFiOWBmui1hOmHkeWKoOadg++8jOWGjemAkOaXpeWkjeWIqe+8m+WMuumXtOi1t+eCueW9kumbtuOAguWHgOaKleWFpe+8iOWHuuWFpemHke+8ieS4jeiuoeWFpeebiOS6j+OAgue8uuWwkeWujOaVtOWHuuWFpemHkeiusOW9leaXtu+8jOWPquWxleekuuacque7j+i1hOmHkea1geiwg+aVtOeahOi1hOS6p+WPmOWKqOavlOS+i++8jFRXUiDkuI7lm57mkqTnlZnnqbrjgILln7rlh4bluo/liJfni6znq4vlr7npvZDliLDlhbHlkIzotbfngrnvvIzkuI3ku6PooajkuI7mnKzotKbmiLfnmoTlj6/mr5Tnu4TlkIjmlLbnm4rjgIIiLCJwZXJmLmFzc2V0c190aXRsZSI6IuaAu+i1hOS6pyIsInBlcmYuYXNzZXRzX25vdGUiOiLku4XlsZXnpLrlvZPliY3otKbmiLfojIPlm7TnmoTotYTkuqfvvIzkuI3lj6DliqDln7rlh4bjgIIiLCJwZXJmLmFzc2V0c19mbG93X21hcmsiOiLlh7rlhaXph5EiLCJwZXJmLmNhbGVuZGFyX3RpdGxlIjoi5pS255uK5pel5Y6GIiwicGVyZi5jYWxlbmRhcl9tb250aCI6IuaciCIsInBlcmYuY2FsZW5kYXJfeWVhciI6IuW5tCIsInBlcmYuY2FsZW5kYXJfZGVwb3NpdF9ub3RlIjoi5Ye65YWl6YeR5b2T5pel5LiN6K6h5YWl55uI5LqPIiwicGVyZi5ob2xkaW5nc190aXRsZSI6IuaMgeS7kyIsInBlcmYuaG9sZGluZ3Nfbm90ZSI6IuW9k+WJjeaMgeS7kyDCtyDmnKrlrp7njrDnm4jkuo8iLCJwZXJmLnJhbmtpbmdfdGl0bGUiOiLkuKrogqHnm4jkuo/mppwiLCJwZXJmLnRyYWRlc190aXRsZSI6IuaIkOS6pOe7n+iuoSIsInBlcmYudHJhZGVzX25vdF9jb25uZWN0ZWQiOiLmiJDkuqTnu5/orqHmnKrmjqXlhaXjgIIiLCJwZXJmLm1peGVkX2N1cnJlbmN5X3RpdGxlIjoi5aSa5biB56eN6K+05piOIiwicGVyZi5jb2wuc3ltYm9sIjoi5qCH55qEIiwicGVyZi5jb2wucXVhbnRpdHkiOiLmlbDph48iLCJwZXJmLmNvbC5tYXJrZXRfdmFsdWUiOiLluILlgLwiLCJwZXJmLmNvbC5jdXJyZW5jeSI6IuW4geenjSIsInBlcmYuY29sLmF2Z19jb3N0Ijoi5oiQ5pys5Lu3IiwicGVyZi5jb2wudW5yZWFsaXplZF9wbmwiOiLmnKrlrp7njrDnm4jkuo8iLCJwZXJmLmNvbC5hY2NvdW50Ijoi6LSm5oi3IiwicGVyZi5jb2wuZGF0ZSI6IuaXpeacnyIsInBlcmYuY29sLmFtb3VudCI6IumHkeminSIsInBlcmYuY29sLnJldHVybiI6IuaUtuebiueOhyIsImRlY2lzaW9ucy50aXRsZSI6IuW+heWKniIsImRlY2lzaW9ucy5maWx0ZXIuYWxsIjoi5YWo6YOoIiwiZGVjaXNpb25zLnRhYi5wZW5kaW5nIjoi5b6F5aSE55CGIiwiZGVjaXNpb25zLnRhYi5kZWNpZGVkIjoi5bey5aSE55CGIiwiY2F0ZWdvcnkucmVjb25jaWxpYXRpb25fcmVjb3ZlcnkiOiLlr7notKbmgaLlpI0iLCJjYXRlZ29yeS5zdHJhdGVneV9wcm9tb3Rpb24iOiLnrZbnlaXmmYvnuqciLCJjYXRlZ29yeS5vd25lcl9kZWNpc2lvbiI6Iui0n+i0o+S6uuWGs+WumiIsImNhdGVnb3J5LmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiLlh63or4Hnu7TmiqQiLCJjYXRlZ29yeS5wYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIjoi5qih5ouf6LSm5oi35bqU55SoIiwiZGVjaXNpb25zLnByaW9yaXR5LmhpZ2giOiLpq5giLCJkZWNpc2lvbnMucHJpb3JpdHkubWVkaXVtIjoi5LitIiwiZGVjaXNpb25zLnByaW9yaXR5Lm5vcm1hbCI6IuaZrumAmiIsImRlY2lzaW9ucy5zdGF0dXMucGVuZGluZyI6IuW+heWkhOeQhiIsImRlY2lzaW9ucy5zdGF0dXMuZGVjaWRlZCI6IuW3suWkhOeQhiIsImRlY2lzaW9ucy5zdGF0dXMuZXhwaXJlZCI6IuW3sui/h+acnyIsImRlY2lzaW9ucy5xdWVzdGlvbiI6IumcgOimgeS9oOWGs+WumiIsImRlY2lzaW9ucy5kaWZmX3RpdGxlIjoi5pS55YmNIOKGkiDmlLnlkI4iLCJkZWNpc2lvbnMuY29sLmZpZWxkIjoi5a2X5q61IiwiZGVjaXNpb25zLmNvbC5jdXJyZW50Ijoi546w5ZyoIiwiZGVjaXNpb25zLmNvbC5wcm9wb3NlZCI6IuW7uuiuriIsImRlY2lzaW9ucy5jb2wuYWZmZWN0c19saXZlIjoi5b2x5ZON5a6e55uYIiwiZGVjaXNpb25zLmFmZmVjdHNfbGl2ZV95ZXMiOiLmmK8iLCJkZWNpc2lvbnMuYWZmZWN0c19saXZlX25vIjoi5ZCmIiwiZGVjaXNpb25zLm1hdGVyaWFscyI6IuadkOaWmSIsImRlY2lzaW9ucy5hZG9wdF9pbnRlbnQiOiLorrDlvZXph4fnlKjmhI/lkJEiLCJkZWNpc2lvbnMuZGVjbGluZV9pbnRlbnQiOiLorrDlvZXkuI3ph4fnlKjmhI/lkJEiLCJkZWNpc2lvbnMuaW50ZW50X25vdGUiOiLlj6rorrDlvZXmhI/lkJHvvIzkuI3kvJrkuIvljZXmiJbmlLnlj5jku7vkvZXmnYPpmZDjgIIiLCJkZWNpc2lvbnMuY29uZmlybV9hZG9wdF90aXRsZSI6IuehruiupOiusOW9lemHh+eUqOaEj+WQke+8nyIsImRlY2lzaW9ucy5jb25maXJtX2RlY2xpbmVfdGl0bGUiOiLnoa7orqTorrDlvZXkuI3ph4fnlKjmhI/lkJHvvJ8iLCJkZWNpc2lvbnMuY29uZmlybV9ib2R5Ijoi5pys5qyh5Y+q6K6w5b2V5oSP5ZCR77yM5LiN5Lya5o+Q5Lqk6K6i5Y2V5oiW5pS55Y+Y5Lqk5piT5p2D6ZmQ44CCIiwiZGVjaXNpb25zLmhpc3RvcnlfdGl0bGUiOiLlpITnkIborrDlvZUiLCJkZWNpc2lvbnMuaGlzdG9yeS5lbXB0eSI6IuaaguaXoOWkhOeQhuiusOW9lSIsImRlY2lzaW9ucy5hY3Rpb24uYWRvcHRfaW50ZW50Ijoi6K6w5b2V6YeH55So5oSP5ZCRIiwiZGVjaXNpb25zLmFjdGlvbi5kZWNsaW5lX2ludGVudCI6IuiusOW9leS4jemHh+eUqOaEj+WQkSIsImRlY2lzaW9ucy5lbXB0eV9wZW5kaW5nIjoi5rKh5pyJ5b6F5aSE55CG55qE5LqL6aG5IiwiZGVjaXNpb25zLmFjY291bnRfZ2xvYmFsIjoi5YWo6YOo6LSm5oi3IiwiZGVjaXNpb25zLnJlZiI6Iue8luWPtyB7aWR9IiwiZGVjaXNpb25zLmV4cGlyZXNfYXQiOiLmiKrmraIge3ZhbHVlfSIsImRlY2lzaW9ucy5jcmVhdGVkX2F0Ijoi5Yib5bu65LqOIHt2YWx1ZX0iLCJkZWNpc2lvbnMucmVhZF9mYWlsZWQiOiLlvoXlip7or7vlj5blpLHotKXvvIzor7fph43or5XvvJvov5nkuI3ku6PooajmsqHmnInlvoXlip7jgIIiLCJkZWNpc2lvbnMuYXBwbGljYXRpb25fc3RhdHVzIjoi5bqU55So54q25oCB77yae3ZhbHVlfSIsImFjY291bnRzLnRpdGxlIjoi6LSm5oi3IiwiYWNjb3VudHMuY29sLmFsaWFzIjoi5Yir5ZCNIiwiYWNjb3VudHMuY29sLnBsYXRmb3JtIjoi5bmz5Y+wIiwiYWNjb3VudHMuY29sLnN0cmF0ZWd5Ijoi5b2T5YmN562W55WlIiwiYWNjb3VudHMuY29sLnJ1biI6Iui/kOihjCIsImFjY291bnRzLmNvbC5kcmFmdHMiOiLlvoXnlJ/mlYjojYnmoYgiLCJhY2NvdW50cy5jb2wudG9kb3MiOiLlvoXlip4iLCJhY2NvdW50cy5jb2wubGFzdF9jaGFuZ2UiOiLmnIDov5Hlj5jmm7QiLCJhY2NvdW50cy50YWIub3ZlcnZpZXciOiLmpoLop4giLCJhY2NvdW50cy50YWIuc3RyYXRlZ3kiOiLnrZbnlaXkuI7lj4LmlbAiLCJhY2NvdW50cy50YWIuY29udHJvbHMiOiLov5DooYzmjqfliLYiLCJhY2NvdW50cy50YWIuaGlzdG9yeSI6IuWPmOabtOiusOW9lSIsImFjY291bnRzLmZyZXNobmVzcyI6IuaVsOaNruaWsOmynOW6piIsImFjY291bnRzLnJ1bl9zdGF0ZSI6Iui/kOihjOeKtuaAgSIsImFjY291bnRzLmVkaXQiOiLnvJbovpEiLCJhY2NvdW50cy5jaGVja19jaGFuZ2VzIjoi5qOA5p+l5Y+Y5pu0IiwiYWNjb3VudHMudmlld2luZyI6Iuafpeeci+aAgSIsImFjY291bnRzLmVkaXRpbmciOiLnvJbovpHkuK0iLCJhY2NvdW50cy5kaWZmX2RpYWxvZ190aXRsZSI6IuehruiupOiNieahiOWPmOabtCIsImFjY291bnRzLmNvbC5kcmFmdCI6IuiNieahiCIsImFjY291bnRzLmFja19saXZlIjoi5oiR5bey5LqG6Kej6L+Z5Lqb5L+u5pS55b2x5ZON5a6e55uYIiwiYWNjb3VudHMuc2F2ZV9kcmFmdCI6IuS/neWtmOiNieahiCIsImFjY291bnRzLmRyYWZ0X3NhdmVkIjoi6I2J5qGI5bey5L+d5a2Y44CCIiwiYWNjb3VudHMuZHJhZnRfbm90ZSI6IuS/neWtmOiNieahiOS4jeS8muS4i+WNleOAgeWQr+eUqOi0puaIt+aIluaUueWPmOS6pOaYk+adg+mZkO+8m+W9k+WJjeeUn+aViOmFjee9ruS/neaMgeS4jeWPmOOAgiIsImFjY291bnRzLmNvbmZsaWN0Ijoi54mI5pys5Yay56qB77ya6I2J5qGI5bey6KKr5YW25LuW5Lq65L+u5pS544CC6K+35Yi35paw56Gu6K6k5pyA5paw5beu5byC5ZCO6YeN6K+V44CCIiwiYWNjb3VudHMuaWRlbnRpdHlfY29uZmxpY3QiOiLojYnmoYjnu5HlrprnmoTotKbmiLfouqvku73lt7Llj5jljJbvvIzor7flhYjliLfmlrDnoa7orqTjgIIiLCJhY2NvdW50cy5ub19jaGFuZ2VzIjoi5rKh5pyJ5L+u5pS5IiwiYWNjb3VudHMuaGlzdG9yeS5lbXB0eSI6IuaaguaXoOWPmOabtOiusOW9lSIsImFjY291bnRzLmV2ZW50LmRyYWZ0X3NhdmVkIjoi6I2J5qGI5L+d5a2YIiwiYWNjb3VudHMuZXZlbnQuYXBwcm92ZWQiOiLmibnlh4YiLCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIjoi5pyq6K6w5b2VIiwiYWNjb3VudHMuaGlzdG9yeS5ub3RlIjoi5Y+Y5pu06K6w5b2V5pyJ5L+d55WZ5LiK6ZmQ77yb5om55YeG5oiW5L+d5a2Y5LiN5Luj6KGo5bey55Sf5pWI44CCIiwiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iOiLojYnmoYjniYjmnKwge3ZhbHVlfSIsImNvbnRyb2xzLnRpdGxlIjoi6L+Q6KGM5o6n5Yi2IiwiY29udHJvbHMuZGFuZ2VyX25vdGUiOiLku6XkuIvmk43kvZzlvbHlk43lrp7nm5jov5DooYzvvIzor7fnoa7orqTlkI7miafooYzjgIIiLCJjb250cm9scy5lbmFibGUiOiLlkK/nlKgiLCJjb250cm9scy5zdG9wIjoi5YGc5q2iIiwiY29udHJvbHMucmVzdW1lIjoi5oGi5aSNIiwiY29udHJvbHMuYXBwcm92ZV9hcHBsaWNhdGlvbiI6IuaJueWHhuW6lOeUqCIsImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSI6IuWBnOatouWPqumYu+atouaWsOeahOinpuWPke+8jOS4jeS8muaSpOWNleOAgeW5s+S7k+aIlua4hemZpOWcqOmAlOivt+axguOAgiIsImNvbnRyb2xzLnJlc3VtZV9zdW1tYXJ5Ijoi5oGi5aSN5pei5pyJ6L+Q6KGM55uu5qCH77yM5LiN5L+u5pS5562W55Wl5oiW6LWE6YeR5Y+C5pWw44CCIiwiY29udHJvbHMuYXBwcm92ZV9zdW1tYXJ5Ijoi5om55YeG5bqU55So5b2T5YmN562W55Wl5qGj5qGI6I2J5qGI77yb5o+Q5Lqk5ZCO6ZyA56Gu6K6k5a6e6ZmF55Sf5pWI54q25oCB77yM5LiN5Lya55u05o6l5LiL5Y2V44CCIiwiY29udHJvbHMuZW5hYmxlX3N1bW1hcnkiOiLlkK/nlKjov5DooYznm67moIfvvIzkvb/ml6LmnInosIPluqbmgaLlpI3op6blj5HjgIIiLCJjb250cm9scy5zdG9wX2NvbmZpcm1fdGl0bGUiOiLnoa7orqTlgZzmraLov5DooYznm67moIciLCJjb250cm9scy5zdG9wX3R5cGVfYWxpYXMiOiLovpPlhaXotKbmiLfliKvlkI0ge2FsaWFzfSDku6Xnoa7orqTlgZzmraIiLCJjb250cm9scy5hbGlhc19taXNtYXRjaCI6Iui+k+WFpeeahOWIq+WQjeS4jeS4gOiHtCIsImNvbnRyb2xzLnN1Ym1pdHRlZCI6Iuivt+axguW3suaPkOS6pO+8m+e7k+aenOmcgOivu+WbnuehruiupO+8jOivt+WLv+mHjeWkjeaPkOS6pOOAgiIsImNvbnRyb2xzLnN1Ym1pdF9mYWlsZWQiOiLmj5DkuqTmnKrlrozmiJDvvJvor7fnoa7orqTlvZPliY3nirbmgIHlkI7lho3lhrPlrprvvIzpgb/lhY3ph43lpI3mj5DkuqTjgIIiLCJjb250cm9scy51bmtub3duX3Jlc3VsdCI6IuS4iuasoeaPkOS6pOe7k+aenOacquefpe+8jOW3sumUgeWumu+8m+ivt+WFiOWIt+aWsOehruiupOOAgiIsImNvbnRyb2xzLnVuYXZhaWxhYmxlIjoi5LiN5Y+v55So77yae3JlYXNvbn0iLCJzdHJhdGVnaWVzLnRpdGxlIjoi562W55WlIiwic3RyYXRlZ2llcy5kb21haW4iOiLluILlnLoiLCJzdHJhdGVnaWVzLm1vZGVzIjoi5paw5aKe5ZCv55So77yP5YiH5o2i5pa55byPIiwic3RyYXRlZ2llcy5hY2NvdW50c191c2luZyI6IuW3sumFjee9rui0puaItyIsInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iOiLotKbmiLfmiafooYzmqKHlvI8iLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5sZWdhY3lfbGl2ZSI6IuWunuebmCDCtyDmsr/nlKjml6LmnInotKbmiLciLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5saXZlIjoi5a6e55uYIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGl2ZV91bmtub3duIjoi5a6e55uY55uu5qCHIMK3IOa8lOe7g+eKtuaAgeacquefpSIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLnBhcGVyIjoi5qih5oufIiwic3RyYXRlZ2llcy5leGVjdXRpb24uZHJ5X3J1biI6Iua8lOe7gyDCtyDkuI3kuIvljZUiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi51bmtub3duIjoi5omn6KGM5qih5byP5pyq55+lIiwic3RyYXRlZ2llcy5saXZlX2V4cG9zdXJlIjoi5a6e55uY6YWN572u5raJ5Y+K55yf5a6e6LWE6YeR44CC5LiK5pa555uu5b2V5pa55byP5LuF57qm5p2f5paw5aKe5ZCv55So77yP5YiH5o2i44CCIiwic3RyYXRlZ2llcy5leGVjdXRpb25fc291cmNlIjoi5qih5byP5p2l6Ieq6LSm5oi36YWN572u77yb5pyA6L+R6L+Q6KGM5Y+K5oiQ5Lqk54q25oCB5pyq6aqM6K+B44CCIiwic3RyYXRlZ2llcy5oZWFsdGgiOiLlgaXlurfluqYiLCJzdHJhdGVnaWVzLmhlYWx0aF9zY29yZSI6IuivhOWIhiB7dmFsdWV9Iiwic3RyYXRlZ2llcy5sYXN0X3Byb21vdGlvbiI6IuacgOi/keaZi+e6pyIsInN0cmF0ZWdpZXMucGFyYW1zX3N1bW1hcnkiOiLlj4LmlbDmkZjopoEiLCJzdHJhdGVnaWVzLnByb21vdGlvbl90aW1lbGluZSI6IuaZi+e6p+aXtumXtOe6vyIsInN0cmF0ZWdpZXMuZW1wdHkiOiLmmoLml6DnrZbnlaUiLCJzdHJhdGVnaWVzLnRhYi5jYXRhbG9nIjoi562W55Wl55uu5b2VIiwic3RyYXRlZ2llcy50YWIucmVzZWFyY2giOiLnoJTnqbbnur/ntKIiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX29ubHkiOiLku4XnoJTnqbbvvIzkuI3kuIvljZUiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX25vdF9jb25uZWN0ZWQiOiLnoJTnqbbnur/ntKLmnKrmjqXlhaXjgIIiLCJoZWFsdGgudGl0bGUiOiLov5DooYznirbmgIEiLCJoZWFsdGguc3RhdC50b2RheV9ydW5zIjoi5LuK5pel6L+Q6KGMIHtva30ve3RvdGFsfSIsImhlYWx0aC5zdGF0Lm9ic2VydmVkIjoi5bey6KeC5rWLIHtvYnNlcnZlZH0ve2NvbmZpZ3VyZWR9IiwiaGVhbHRoLnN0YXQuY3JlZGVudGlhbHMiOiLlh63or4Ege2NvdW50fSDpobnpnIDlhbPms6giLCJoZWFsdGguc3RhdC5yZWNlbnRfZmFpbHVyZSI6IuacgOi/keWksei0pSB7Y291bnR9IiwiaGVhbHRoLmdyaWRfdGl0bGUiOiLov5EgMTQg5Liq57q957qm5Lia5Yqh5pelIiwiaGVhbHRoLmdyaWQub2siOiLmiJDlip8iLCJoZWFsdGguZ3JpZC5mYWlsZWQiOiLlpLHotKUiLCJoZWFsdGguZ3JpZC5ub3RfcnVuIjoi5pyq6L+Q6KGMIiwiaGVhbHRoLmdyaWQubm9fcmVjb3JkIjoi5peg6K6w5b2VIiwiaGVhbHRoLmRheV9kZXRhaWwiOiLlvZPml6XorrDlvZUiLCJoZWFsdGguZnJlc2huZXNzX3RpdGxlIjoi5pWw5o2u5paw6bKc5bqmIiwiaGVhbHRoLmNyZWRlbnRpYWxzX3RpdGxlIjoi5Yet6K+B5Yiw5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfaWJrcl9yZXBvcnQiOiJJQktSIOaKpeihqOWHreivgSIsImhlYWx0aC5jcmVkZW50aWFsX290aGVyIjoi6LSm5oi35Yet6K+BIiwiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Ijoi5bem5Y+z5ruR5Yqo5p+l55yL5a6M5pW06KGo5qC8IiwiaGVhbHRoLmdyaWRfc2Nyb2xsX2hpbnQiOiLlt6blj7Pmu5Hliqjmn6XnnIvlhajpg6jml6XmnJ/vvIzotKbmiLfliJfkv53mjIHlj6/op4EiLCJoZWFsdGguY3JlZGVudGlhbF9leHBpcmVzIjoi5Yiw5pyfIHt2YWx1ZX0iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5leHBpcmVkIjoi5bey6L+H5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfcGhhc2UuMzAiOiIzMCDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS43IjoiNyDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS4xIjoiMSDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5ub3RfZHVlIjoi5pyq5Yiw5qOA5p+l5ZGo5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfcGhhc2UudW5rbm93biI6IuacquefpSIsImhlYWx0aC5ub3RpZmljYXRpb25zX3RpdGxlIjoi6YCa55+l6K6w5b2VIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfbm90X2Nvbm5lY3RlZCI6IumAmuefpeWPkemAgeiusOW9leacquaOpeWFpeOAgiIsImhlYWx0aC5hY3Rpdml0eSI6Iua0u+WKqCIsImhlYWx0aC5ydW5fY291bnQiOiLov5DooYzmrKHmlbAiLCJoZWFsdGguY29sLmFjY291bnQiOiLotKbmiLciLCJoZWFsdGguY29sLnNvdXJjZSI6Iuadpea6kCIsImhlYWx0aC5jb2wuc3RhdHVzIjoi54q25oCBIiwiaGVhbHRoLmNvbC5hc19vZiI6IuaVsOaNruaXtumXtCIsImVycm9yLmdlbmVyaWMiOiLor7fmsYLmnKrlrozmiJDvvJvor7fliLfmlrDlubbnoa7orqTlvZPliY3nirbmgIHjgIIiLCJlcnJvci5zZXNzaW9uX2V4cGlyZWQiOiLkvJror53lt7LlpLHmlYjvvIzor7fph43mlrDnmbvlvZXjgIIiLCJlcnJvci5hY2Nlc3NfZGVuaWVkIjoi6K6/6Zeu6KKr5ouS57ud44CCIiwiZXJyb3IuY29uZmxpY3QiOiLniYjmnKzlhrLnqoHvvJvlvZPliY3nvJbovpHlt7Lkv53nlZnvvIzor7fliLfmlrDnoa7orqTjgIIifSxWXz17InNoZWxsLnN3aXRjaF9saWdodCI6IlN3aXRjaCB0byBsaWdodCBtb2RlIiwic2hlbGwuc3dpdGNoX2RhcmsiOiJTd2l0Y2ggdG8gZGFyayBtb2RlIiwic2hlbGwudXBkYXRlX2F2YWlsYWJsZSI6IkEgbmV3IHZlcnNpb24gaXMgcmVhZHkuIFJlZnJlc2ggdG8gdXNlIGl0LiIsInNoZWxsLnJlbG9hZCI6IlJlZnJlc2ggcGFnZSIsImFwcC5uYW1lIjoiUXVhbnRTdHJhdGVneUxhYiIsIm5hdi5tYWluIjoiTWFpbiBuYXZpZ2F0aW9uIiwibmF2Lm92ZXJ2aWV3IjoiT3ZlcnZpZXciLCJuYXYucGVyZm9ybWFuY2UiOiJQZXJmb3JtYW5jZSIsIm5hdi5kZWNpc2lvbnMiOiJUby1kb3MiLCJuYXYuYWNjb3VudHMiOiJBY2NvdW50cyIsIm5hdi5zdHJhdGVnaWVzIjoiU3RyYXRlZ2llcyIsIm5hdi5oZWFsdGgiOiJSdW4gc3RhdHVzIiwibmF2Lm1vcmUiOiJNb3JlIiwiY29tbW9uLmxvYWRpbmciOiJMb2FkaW5n4oCmIiwiY29tbW9uLnJldHJ5IjoiUmV0cnkiLCJjb21tb24uY2xvc2UiOiJDbG9zZSIsImNvbW1vbi5jYW5jZWwiOiJDYW5jZWwiLCJjb21tb24uY29uZmlybSI6IkNvbmZpcm0iLCJjb21tb24uc2F2ZSI6IlNhdmUiLCJjb21tb24uZWRpdCI6IkVkaXQiLCJjb21tb24uYmFjayI6IkJhY2siLCJjb21tb24uYWxsIjoiQWxsIiwiY29tbW9uLm5vbmUiOiJOb25lIiwiY29tbW9uLnVua25vd24iOiJVbmtub3duIiwiY29tbW9uLm5hIjoi4oCUIiwiY29tbW9uLmFzX29mIjoiQXMgb2Yge3ZhbHVlfSIsImNvbW1vbi51cGRhdGVkX2F0IjoiVXBkYXRlZCB7dmFsdWV9IiwiY29tbW9uLnJlZnJlc2giOiJSZWZyZXNoIiwiY29tbW9uLnJlZnJlc2hpbmciOiJSZWZyZXNoaW5n4oCmIiwiY29tbW9uLmNvcHkiOiJDb3B5IiwiY29tbW9uLmNvcGllZCI6IkNvcGllZCIsImNvbW1vbi52aWV3X2FsbCI6IlZpZXcgYWxsIiwiY29tbW9uLmxvYWRfbW9yZSI6IkxvYWQgbW9yZSIsImNvbW1vbi5leHBhbmQiOiJFeHBhbmQiLCJjb21tb24uY29sbGFwc2UiOiJDb2xsYXBzZSIsImNvbW1vbi5hY2NvdW50IjoiQWNjb3VudCIsImNvbW1vbi5wbGF0Zm9ybSI6IlBsYXRmb3JtIiwiY29tbW9uLnN0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJjb21tb24udGltZSI6IlRpbWUiLCJjb21tb24uc3RhdHVzIjoiU3RhdHVzIiwiY29tbW9uLmRldGFpbHMiOiJEZXRhaWxzIiwiY29tbW9uLnN5bnRoZXRpY19iYWRnZSI6IlN5bnRoZXRpYyBkZW1vIiwiY29tbW9uLnBhcGVyX2JhZGdlIjoiUGFwZXIiLCJjb21tb24ucmVhZF9mYWlsZWRfYmFubmVyIjoiU29tZSBkYXRhIGZhaWxlZCB0byBsb2FkLiBBIGZhaWxlZCByZWFkIGRvZXMgbm90IG1lYW4gdGhlcmUgaXMgbm90aGluZyB0byBzaG93OyBwbGVhc2UgcmV0cnkuIiwiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiOiJEaXNjYXJkIHVuc2F2ZWQgY2hhbmdlcz8iLCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5IjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBsb3N0IGlmIHlvdSBsZWF2ZS4iLCJzdGF0ZS51bmtub3duX3N0YXR1cyI6IlVua25vd24gc3RhdHVzIiwic3RhdGUucmV2aWV3IjoiTmVlZHMgcmV2aWV3Iiwic3RhdGUud2F0Y2giOiJXYXRjaCIsInN0YXRlLmNyaXRpY2FsIjoiQ3JpdGljYWwiLCJzdGF0ZS5ibG9ja2VkIjoiQmxvY2tlZCIsInN0YXRlLmZhaWxlZCI6IkZhaWxlZCIsInN0YXRlLnJlYWRfaW5jb21wbGV0ZSI6IlJlYWQgaW5jb21wbGV0ZSIsInN0YXRlLmluc3VmZmljaWVudCI6Ikluc3VmZmljaWVudCBkYXRhIiwic3RhdGUucHJldmlld2VkIjoiUHJldmlld2VkIiwic3RhdGUubm9fc3VibWlzc2lvbiI6Ik5vIG9yZGVyIHN1Ym1pdHRlZCIsInN0YXRlLm5vX3JlYmFsYW5jZSI6Ik5vIHJlYmFsYW5jZSIsInN0YXRlLmZpbGxlZCI6IkZpbGxlZCIsInN0YXRlLm5vdF9kdWUiOiJOb3QgZHVlIHlldCIsInN0YXRlLm1hcmtldF9jbG9zZWQiOiJNYXJrZXQgY2xvc2VkIiwic3RhdGUub3V0c2lkZV93aW5kb3ciOiJPdXRzaWRlIHJ1biB3aW5kb3ciLCJzdGF0ZS53aXRoaW5fZ3JhY2UiOiJXaXRoaW4gZ3JhY2UgcGVyaW9kIiwic3RhdGUubWlzc2luZ19yZXBvcnQiOiJSZXBvcnQgbWlzc2luZyIsInN0YXRlLmVycm9yIjoiUnVuIGVycm9yIiwic3RhdGUuaGVhbHRoeSI6IkhlYWx0aHkiLCJzdGF0ZS5ub19zaWduYWwiOiJObyBzaWduYWwiLCJzdGF0ZS5vayI6Ik9LIiwic3RhdGUucGFydGlhbCI6IlBhcnRpYWwiLCJzdGF0ZS5zdGFsZSI6IlN0YWxlIiwic3RhdGUubm9fZGF0YSI6Ik5vIGRhdGEiLCJzdGF0ZS5ub3RfY29ubmVjdGVkIjoiTm90IGNvbm5lY3RlZCIsInN0YXRlLnVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJzdGF0ZS5yZWFkX2ZhaWxlZCI6IlJlYWQgZmFpbGVkIiwicmVhc29uLmV4dGVybmFsX2Nhc2hmbG93X3JlcXVpcmVkIjoiV2l0aG91dCBjb21wbGV0ZSBjYXNoLWZsb3cgcmVjb3JkcywgYW1vdW50cyBhcmUgc2hvd24gYXMgYXNzZXQgY2hhbmdlIiwicmVhc29uLmZpbGxzX25vdF9jb25uZWN0ZWQiOiJUaGUgZmlsbCBzb3VyY2UgaXMgbm90IGNvbm5lY3RlZCIsInJlYXNvbi5hdmdfY29zdF9taXNzaW5nIjoiQXZlcmFnZSBjb3N0IGlzIG1pc3NpbmcsIHNvIHVucmVhbGl6ZWQgUC9MIGNhbm5vdCBiZSBjYWxjdWxhdGVkIiwicmVhc29uLm1peGVkX2N1cnJlbmN5IjoiTWl4ZWQgY3VycmVuY2llcyBjYW5ub3QgYmUgY29tYmluZWQgaW50byBvbmUgYW1vdW50OyBlYWNoIGN1cnJlbmN5IGlzIHNob3duIHNlcGFyYXRlbHkiLCJyZWFzb24uc25hcHNob3RfaGlzdG9yeV9taXNzaW5nIjoiSGlzdG9yaWNhbCBhc3NldCBzbmFwc2hvdHMgYXJlIG1pc3NpbmciLCJyZWFzb24uc25hcHNob3RfbWlzc2luZyI6IkFzc2V0IHNuYXBzaG90IGlzIG1pc3NpbmciLCJyZWFzb24ucHJldmlvdXNfc25hcHNob3RfbWlzc2luZyI6IlRoZSBwcmV2aW91cyBkYXkncyBhc3NldCBzbmFwc2hvdCBpcyBtaXNzaW5nIiwicmVhc29uLm5vbl90cmFkaW5nX3dlZWtlbmQiOiJOb24tdHJhZGluZyBkYXkiLCJyZWFzb24uaW5jb21wbGV0ZV9tb250aCI6IlRoZSBtb250aCBpcyBzdGlsbCBpbmNvbXBsZXRlIiwicmVhc29uLmluc3VmZmljaWVudF9vYnNlcnZhdGlvbnMiOiJOb3QgZW5vdWdoIGhpc3RvcnkiLCJyZWFzb24uaW52YWxpZF9yZXR1cm5fcGVyaW9kIjoiSW52YWxpZCByYW5nZSBlbmRwb2ludHMiLCJyZWFzb24ucG9zaXRpb25zX3BhcnRpYWxfY292ZXJhZ2UiOiJQb3NpdGlvbnMgY292ZXIgb25seSBwYXJ0IG9mIHRoZSBhc3NldHMiLCJyZWFzb24ucG9zaXRpb25zX25vdF9jb25uZWN0ZWQiOiJUaGUgcG9zaXRpb24gc291cmNlIGlzIG5vdCBjb25uZWN0ZWQiLCJyZWFzb24ucG9zaXRpb25zX3N0YWxlIjoiUG9zaXRpb24gZGF0YSBpcyBzdGFsZSIsInJlYXNvbi5iZW5jaG1hcmtfaGlzdG9yeV91bnJlYWRhYmxlIjoiQmVuY2htYXJrIGRhdGEgZmFpbGVkIHRvIGxvYWQiLCJyZWFzb24ucG9zaXRpb25fdmFsdWVfbWlzc2luZyI6IlBvc2l0aW9uIG1hcmtldCB2YWx1ZSBpcyBtaXNzaW5nIiwicmVhc29uLm5vX2NvbW1vbl9kYXRlIjoiTm8gY29tbW9uIGRhdGUgdG8gYWxpZ24gd2l0aCB0aGUgYmVuY2htYXJrIiwicmVhc29uLmJlbmNobWFya19oaXN0b3J5X21pc3NpbmciOiJCZW5jaG1hcmsgaGlzdG9yeSBpcyBtaXNzaW5nIiwicmVhc29uLnN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiOiJTdG9yZWQgcmVjb3JkcyBjb3VsZCBub3QgYmUgcmVhZCIsInJlYXNvbi5lZmZlY3RfdmVyaWZpY2F0aW9uX25vdF9yZWNvcmRlZCI6Ik5vIHNvdXJjZSByZWNvcmRzIHRoZSBhcHBsaWVkIGVmZmVjdCIsInJlYXNvbi5ib3VuZGVkX2F1ZGl0X2xvZyI6Ikhpc3RvcnkgcmV0ZW50aW9uIGlzIGJvdW5kZWQgYW5kIG1heSBiZSBpbmNvbXBsZXRlIiwicmVhc29uLm5vX2Nsb3NlZF90cmFkZXMiOiJObyBjbG9zZWQgdHJhZGVzIiwicmVhc29uLm5vdGlmaWNhdGlvbl9sb2dfbm90X2Nvbm5lY3RlZCI6IlRoZSBub3RpZmljYXRpb24gbG9nIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfbm90X2Nvbm5lY3RlZCI6IlRoZSBydW4tcmVjb3JkIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLnRvZGF5X3JlY29yZF9taXNzaW5nIjoiTm8gcnVuIHJlY29yZCBmb3IgdG9kYXkiLCJyZWFzb24ucnVudGltZV9kYWlseV9zdGFsZSI6IlRoZSBydW4gcmVjb3JkIGlzIHN0YWxlIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfaW5jb21wbGV0ZSI6IlRoZSBydW4gcmVjb3JkIGlzIGluY29tcGxldGUiLCJyZWFzb24uc3RyYXRlZ3lfaGVhbHRoX25vdF9jb25uZWN0ZWQiOiJUaGUgc3RyYXRlZ3kgaGVhbHRoIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLmF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInJlYXNvbi5hZG1pbl9yZXF1aXJlZCI6IkFkbWluIHBlcm1pc3Npb24gcmVxdWlyZWQiLCJyZWFzb24uZGlzcGF0Y2hfdW5hdmFpbGFibGUiOiJEaXNwYXRjaCBpcyB1bmF2YWlsYWJsZSIsInJlYXNvbi5zdG9wX3BlbmRpbmdfb3JfaWRlbnRpdHlfdW5hdmFpbGFibGUiOiJBIHN0b3AgcmVxdWVzdCBpcyBwZW5kaW5nIG9yIGlkZW50aXR5IGlzIHVuYXZhaWxhYmxlIiwicmVhc29uLnN0cmF0ZWd5X2FwcGxpY2F0aW9uX25vdF9jb25uZWN0ZWQiOiJUaGUgc3RyYXRlZ3kgYXBwbGljYXRpb24gY2hhbm5lbCBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLmV4aXN0aW5nX3JlY292ZXJ5X25vdF9hdmFpbGFibGUiOiJObyBleGlzdGluZyByZWNvdmVyeSBmbG93IGlzIGF2YWlsYWJsZSIsInJlYXNvbi5ydW50aW1lX2luc3RhbmNlc19ub3RfYm91bmQiOiJSdW50aW1lIGluc3RhbmNlcyBhcmUgbm90IGJvdW5kIiwicmVhc29uLmFjY291bnRfc2V0dGluZ3NfaWRlbnRpdHlfY29uZmxpY3QiOiJUaGUgZHJhZnQgaXMgYm91bmQgdG8gYW4gb2xkZXIgaWRlbnRpdHk7IHJlY29uY2lsZSBmaXJzdCIsInJlYXNvbi5wcm9maWxlX2RyYWZ0X3JlcXVpcmVkIjoiQSBkcmFmdCBib3VuZCB0byB0aGUgY3VycmVudCBpZGVudGl0eSBpcyByZXF1aXJlZCIsInJlYXNvbi5wcm9maWxlX29ubHlfcmVxdWlyZWQiOiJPbmx5IHN0cmF0ZWd5LXByb2ZpbGUgZHJhZnRzIGFyZSBzdXBwb3J0ZWQiLCJyZWFzb24ucHJvZmlsZV9ub3Rfc2VsZWN0YWJsZSI6IlRoaXMgc3RyYXRlZ3kgcHJvZmlsZSBjYW5ub3QgYmUgc2VsZWN0ZWQiLCJyZWFzb24ucnVudGltZV9yZWFkYmFja191bmF2YWlsYWJsZSI6IlJ1bnRpbWUgcmVhZGJhY2sgaXMgdW5hdmFpbGFibGUiLCJyZWFzb24ucnVudGltZV90YXJnZXRfbm90X2Rpc2FibGVkIjoiVGhlIHJ1bnRpbWUgdGFyZ2V0IGlzIG5vdCBkaXNhYmxlZCB5ZXQiLCJyZWFzb24uY3VycmVudF9wcm9maWxlX2NvbmZsaWN0IjoiVGhlIGN1cnJlbnQgc3RyYXRlZ3kgcHJvZmlsZSBjb25mbGljdHMiLCJyZWFzb24ucHJvZmlsZV9hcHBsaWNhdGlvbl9wZW5kaW5nIjoiQW4gYXBwbGljYXRpb24gcmVxdWVzdCBpcyBhbHJlYWR5IHBlbmRpbmciLCJyZWFzb24uc3ludGhldGljX2d1YXJkX2Jsb2NrZWQiOiJUaGlzIGFjdGlvbiBpcyBub3Qgb2ZmZXJlZCBpbiB0aGUgc3ludGhldGljIGRlbW8iLCJyZWFzb24udW5rbm93biI6IlVua25vd24gcmVhc29uIiwiYXV0aC5sb2dpbl90aXRsZSI6IlNpZ24gaW4gdG8gY29udGludWUiLCJhdXRoLmxvZ2luX2JvZHkiOiJTaWduIGluIHRvIHZpZXcgb3ZlcnZpZXcsIHBlcmZvcm1hbmNlLCB0by1kb3MgYW5kIHJ1biBzdGF0dXMuIiwiYXV0aC5sb2dpbiI6IlNpZ24gaW4iLCJhdXRoLmRlbmllZF90aXRsZSI6Ik5vIGFjY2VzcyIsImF1dGguZGVuaWVkX2JvZHkiOiJUaGlzIGFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gdXNlIHRoZSBjb25zb2xlLiIsImF1dGguZXJyb3JfdGl0bGUiOiJDb25zb2xlIHVuYXZhaWxhYmxlIiwiYXV0aC5lcnJvcl9ib2R5IjoiVGhlIHNlc3Npb24gc2VydmljZSBpcyB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4gUGxlYXNlIHJldHJ5IGxhdGVyLiIsInNoZWxsLnNjb3BlIjoiQWNjb3VudCBzY29wZSIsInNoZWxsLnNjb3BlX2FsbCI6IkFsbCBhY2NvdW50cyIsInNoZWxsLnNjb3BlX3BhcGVyX2dyb3VwIjoiUGFwZXIgYWNjb3VudHMiLCJzaGVsbC5oaWRlX2Ftb3VudHMiOiJIaWRlIGFtb3VudHMiLCJzaGVsbC5zaG93X2Ftb3VudHMiOiJTaG93IGFtb3VudHMiLCJzaGVsbC51c2VyX21lbnUiOiJVc2VyIG1lbnUiLCJzaGVsbC5wcmVmZXJlbmNlcyI6IlByZWZlcmVuY2VzIiwic2hlbGwubG9nb3V0IjoiU2lnbiBvdXQiLCJzaGVsbC5za2lwX3RvX2NvbnRlbnQiOiJTa2lwIHRvIGNvbnRlbnQiLCJwcmVmcy50aXRsZSI6IlByZWZlcmVuY2VzIiwicHJlZnMudGhlbWUiOiJUaGVtZSIsInByZWZzLnRoZW1lX2xpZ2h0IjoiTGlnaHQiLCJwcmVmcy50aGVtZV9kYXJrIjoiRGFyayIsInByZWZzLnRoZW1lX3N5c3RlbSI6IlN5c3RlbSIsInByZWZzLmxhbmd1YWdlIjoiTGFuZ3VhZ2UiLCJwcmVmcy51cGRvd24iOiJVcC9kb3duIGNvbG9ycyIsInByZWZzLnVwZG93bl9ncmVlbl91cCI6IkdyZWVuIHVwIC8gcmVkIGRvd24iLCJwcmVmcy51cGRvd25fcmVkX3VwIjoiUmVkIHVwIC8gZ3JlZW4gZG93biIsInByZWZzLmhpZGVfYW1vdW50cyI6IkhpZGUgYW1vdW50cyBieSBkZWZhdWx0IiwicHJlZnMuZGVmYXVsdF9yYW5nZSI6IkRlZmF1bHQgcmFuZ2UiLCJwcmVmcy5ub3RlIjoiUHJlZmVyZW5jZXMgYXJlIHN0b3JlZCBvbmx5IGluIHRoaXMgYnJvd3Nlci4iLCJvdmVydmlldy50b3RhbF9hc3NldHMiOiJUb3RhbCBhc3NldHMiLCJvdmVydmlldy5yYW5nZV9yZXR1cm4iOiJSYW5nZSByZXR1cm4ge3JhbmdlfSIsIm92ZXJ2aWV3Lmxhc3RfZGF5X2NoYW5nZSI6IkxhdGVzdCBkYWlseSBhc3NldCBjaGFuZ2UiLCJvdmVydmlldy50b2RvcyI6IlRvLWRvcyIsIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCI6Intjb3VudH0gdXJnZW50Iiwib3ZlcnZpZXcucnVuc19vayI6IlJ1bnMge29rfS97dG90YWx9IE9LIiwib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIjoiUmV0dXJuIHRyZW5kIiwib3ZlcnZpZXcudG9kb19wcmV2aWV3IjoiVG8tZG8gcHJldmlldyIsIm92ZXJ2aWV3Lm15X2FjY291bnRzIjoiTXkgYWNjb3VudHMiLCJvdmVydmlldy5hY2NvdW50X3N0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJvdmVydmlldy5hY2NvdW50X2Fzc2V0cyI6IkFzc2V0cyIsIm92ZXJ2aWV3LmFjY291bnRfY2FzaCI6IkNhc2giLCJvdmVydmlldy5ub19hY2NvdW50cyI6Ik5vIGFjY291bnRzIHlldCIsIm92ZXJ2aWV3LnR3cl90YWciOiJUV1IiLCJvdmVydmlldy5vcGVuX3BlcmZvcm1hbmNlIjoiT3BlbiBwZXJmb3JtYW5jZSIsIm92ZXJ2aWV3Lm9wZW5faGVhbHRoIjoiT3BlbiBydW4gc3RhdHVzIiwib3ZlcnZpZXcub3Blbl9kZWNpc2lvbnMiOiJPcGVuIHRvLWRvcyIsInBlcmYudmFsdWVfa2luZF9wbmwiOiJQL0wiLCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIjoiQXNzZXQgY2hhbmdlIiwicGVyZi5yYW5nZS4xTSI6IjFNIiwicGVyZi5yYW5nZS4zTSI6IjNNIiwicGVyZi5yYW5nZS5ZVEQiOiJZVEQiLCJwZXJmLnJhbmdlLjFZIjoiMVkiLCJwZXJmLnJhbmdlLkFMTCI6IkFsbCIsInBlcmYucmFuZ2UubGFiZWwiOiJUaW1lIHJhbmdlIiwicGVyZi5yYW5nZS5yZXR1cm5fbGFiZWwiOiJ7cmFuZ2V9IHJldHVybiIsInBlcmYuY2FyZC50d3IiOiJDdW11bGF0aXZlIHJldHVybiAoVFdSKSIsInBlcmYuY2FyZC5hbW91bnQiOiJQL0wgYW1vdW50IiwicGVyZi5jYXJkLmFtb3VudF9hc3NldF9jaGFuZ2UiOiJBc3NldCBjaGFuZ2UiLCJwZXJmLmNhcmQubWF4X2RyYXdkb3duIjoiTWF4IGRyYXdkb3duIiwicGVyZi5jYXJkLm1heF9kcmF3ZG93bl9kYXRlcyI6IntwZWFrfSDihpIge3Ryb3VnaH0iLCJwZXJmLmNhcmQuZXhjZXNzIjoiRXhjZXNzIHZzIGJlbmNobWFyayIsInBlcmYuY2FyZC5iZXN0X2RheSI6IkJlc3QgZGF5IiwicGVyZi5jYXJkLndvcnN0X2RheSI6IldvcnN0IGRheSIsInBlcmYucmV0dXJuc190aXRsZSI6IlJldHVybnMgdnMgYmVuY2htYXJrcyIsInBlcmYucmV0dXJuc19jdW11bGF0aXZlIjoiQ3VtdWxhdGl2ZSIsInBlcmYucmV0dXJuc19kYWlseSI6IkRhaWx5IiwicGVyZi5yZXR1cm5zX21haW5fc2VyaWVzIjoiU2VsZWN0ZWQgc2NvcGUiLCJwZXJmLmhvd19jYWxjdWxhdGVkIjoiSG93IGlzIHRoaXMgY2FsY3VsYXRlZD8iLCJwZXJmLm1ldGhvZF90aXRsZSI6IkhvdyByZXR1cm5zIGFyZSBjYWxjdWxhdGVkIiwicGVyZi5tZXRob2RfYm9keSI6IlJldHVybnMgYXJlIHRpbWUtd2VpZ2h0ZWQgKFRXUik6IGRhaWx5IHJldHVybnMgYXJlIGNhcGl0YWwtd2VpZ2h0ZWQsIHRoZW4gY29tcG91bmRlZDsgZXZlcnkgcmFuZ2Ugc3RhcnRzIGF0IHplcm8uIE5ldCBkZXBvc2l0cyBhbmQgd2l0aGRyYXdhbHMgZG8gbm90IGNvdW50IGFzIFAvTC4gV2l0aG91dCBjb21wbGV0ZSBjYXNoLWZsb3cgcmVjb3JkcyBvbmx5IHRoZSB1bmFkanVzdGVkIGFzc2V0LWNoYW5nZSByYXRpbyBpcyBzaG93biwgYW5kIFRXUiBhbmQgZHJhd2Rvd24gc3RheSBlbXB0eS4gQmVuY2htYXJrcyBhcmUgYWxpZ25lZCBpbmRlcGVuZGVudGx5IHRvIHRoZSBjb21tb24gc3RhcnQgYW5kIGFyZSBub3QgYSBjb21wYXJhYmxlIGNvbWJpbmVkIHBvcnRmb2xpbyByZXR1cm4uIiwicGVyZi5hc3NldHNfdGl0bGUiOiJUb3RhbCBhc3NldHMiLCJwZXJmLmFzc2V0c19ub3RlIjoiU2hvd3MgYXNzZXRzIG9mIHRoZSBzZWxlY3RlZCBzY29wZSBvbmx5OyBubyBiZW5jaG1hcmtzLiIsInBlcmYuYXNzZXRzX2Zsb3dfbWFyayI6IkNhc2ggZmxvdyIsInBlcmYuY2FsZW5kYXJfdGl0bGUiOiJSZXR1cm4gY2FsZW5kYXIiLCJwZXJmLmNhbGVuZGFyX21vbnRoIjoiTW9udGgiLCJwZXJmLmNhbGVuZGFyX3llYXIiOiJZZWFyIiwicGVyZi5jYWxlbmRhcl9kZXBvc2l0X25vdGUiOiJDYXNoLWZsb3cgZGF5cyBkbyBub3QgY291bnQgYXMgUC9MIiwicGVyZi5ob2xkaW5nc190aXRsZSI6IkhvbGRpbmdzIiwicGVyZi5ob2xkaW5nc19ub3RlIjoiQ3VycmVudCBob2xkaW5ncyDCtyB1bnJlYWxpemVkIiwicGVyZi5yYW5raW5nX3RpdGxlIjoiU3ltYm9sIFAvTCByYW5raW5nIiwicGVyZi50cmFkZXNfdGl0bGUiOiJUcmFkZSBzdGF0aXN0aWNzIiwicGVyZi50cmFkZXNfbm90X2Nvbm5lY3RlZCI6IlRyYWRlIHN0YXRpc3RpY3MgYXJlIG5vdCBjb25uZWN0ZWQuIiwicGVyZi5taXhlZF9jdXJyZW5jeV90aXRsZSI6Ik1peGVkIGN1cnJlbmNpZXMiLCJwZXJmLmNvbC5zeW1ib2wiOiJTeW1ib2wiLCJwZXJmLmNvbC5xdWFudGl0eSI6IlF1YW50aXR5IiwicGVyZi5jb2wubWFya2V0X3ZhbHVlIjoiTWFya2V0IHZhbHVlIiwicGVyZi5jb2wuY3VycmVuY3kiOiJDdXJyZW5jeSIsInBlcmYuY29sLmF2Z19jb3N0IjoiQXZnIGNvc3QiLCJwZXJmLmNvbC51bnJlYWxpemVkX3BubCI6IlVucmVhbGl6ZWQgUC9MIiwicGVyZi5jb2wuYWNjb3VudCI6IkFjY291bnQiLCJwZXJmLmNvbC5kYXRlIjoiRGF0ZSIsInBlcmYuY29sLmFtb3VudCI6IkFtb3VudCIsInBlcmYuY29sLnJldHVybiI6IlJldHVybiIsImRlY2lzaW9ucy50aXRsZSI6IlRvLWRvcyIsImRlY2lzaW9ucy5maWx0ZXIuYWxsIjoiQWxsIiwiZGVjaXNpb25zLnRhYi5wZW5kaW5nIjoiUGVuZGluZyIsImRlY2lzaW9ucy50YWIuZGVjaWRlZCI6IkRlY2lkZWQiLCJjYXRlZ29yeS5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI6IlJlY29uY2lsaWF0aW9uIHJlY292ZXJ5IiwiY2F0ZWdvcnkuc3RyYXRlZ3lfcHJvbW90aW9uIjoiU3RyYXRlZ3kgcHJvbW90aW9uIiwiY2F0ZWdvcnkub3duZXJfZGVjaXNpb24iOiJPd25lciBkZWNpc2lvbiIsImNhdGVnb3J5LmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiJDcmVkZW50aWFsIG1haW50ZW5hbmNlIiwiY2F0ZWdvcnkucGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiI6IlBhcGVyIGFjY291bnQgYXBwbGljYXRpb24iLCJkZWNpc2lvbnMucHJpb3JpdHkuaGlnaCI6IkhpZ2giLCJkZWNpc2lvbnMucHJpb3JpdHkubWVkaXVtIjoiTWVkaXVtIiwiZGVjaXNpb25zLnByaW9yaXR5Lm5vcm1hbCI6Ik5vcm1hbCIsImRlY2lzaW9ucy5zdGF0dXMucGVuZGluZyI6IlBlbmRpbmciLCJkZWNpc2lvbnMuc3RhdHVzLmRlY2lkZWQiOiJEZWNpZGVkIiwiZGVjaXNpb25zLnN0YXR1cy5leHBpcmVkIjoiRXhwaXJlZCIsImRlY2lzaW9ucy5xdWVzdGlvbiI6IllvdXIgZGVjaXNpb24iLCJkZWNpc2lvbnMuZGlmZl90aXRsZSI6IkJlZm9yZSDihpIgYWZ0ZXIiLCJkZWNpc2lvbnMuY29sLmZpZWxkIjoiRmllbGQiLCJkZWNpc2lvbnMuY29sLmN1cnJlbnQiOiJDdXJyZW50IiwiZGVjaXNpb25zLmNvbC5wcm9wb3NlZCI6IlByb3Bvc2VkIiwiZGVjaXNpb25zLmNvbC5hZmZlY3RzX2xpdmUiOiJBZmZlY3RzIGxpdmUiLCJkZWNpc2lvbnMuYWZmZWN0c19saXZlX3llcyI6IlllcyIsImRlY2lzaW9ucy5hZmZlY3RzX2xpdmVfbm8iOiJObyIsImRlY2lzaW9ucy5tYXRlcmlhbHMiOiJNYXRlcmlhbHMiLCJkZWNpc2lvbnMuYWRvcHRfaW50ZW50IjoiUmVjb3JkIGFkb3B0IGludGVudCIsImRlY2lzaW9ucy5kZWNsaW5lX2ludGVudCI6IlJlY29yZCBkZWNsaW5lIGludGVudCIsImRlY2lzaW9ucy5pbnRlbnRfbm90ZSI6Ik9ubHkgeW91ciBpbnRlbnQgaXMgcmVjb3JkZWQuIE5vIG9yZGVyIGlzIHBsYWNlZCBhbmQgbm8gcGVybWlzc2lvbiBjaGFuZ2VzLiIsImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X3RpdGxlIjoiUmVjb3JkIGFkb3B0IGludGVudD8iLCJkZWNpc2lvbnMuY29uZmlybV9kZWNsaW5lX3RpdGxlIjoiUmVjb3JkIGRlY2xpbmUgaW50ZW50PyIsImRlY2lzaW9ucy5jb25maXJtX2JvZHkiOiJPbmx5IHlvdXIgaW50ZW50IGlzIHJlY29yZGVkLiBObyBvcmRlciBpcyBzdWJtaXR0ZWQgYW5kIG5vIHRyYWRpbmcgcGVybWlzc2lvbiBjaGFuZ2VzLiIsImRlY2lzaW9ucy5oaXN0b3J5X3RpdGxlIjoiSGlzdG9yeSIsImRlY2lzaW9ucy5oaXN0b3J5LmVtcHR5IjoiTm8gaGlzdG9yeSB5ZXQiLCJkZWNpc2lvbnMuYWN0aW9uLmFkb3B0X2ludGVudCI6IkFkb3B0IGludGVudCIsImRlY2lzaW9ucy5hY3Rpb24uZGVjbGluZV9pbnRlbnQiOiJEZWNsaW5lIGludGVudCIsImRlY2lzaW9ucy5lbXB0eV9wZW5kaW5nIjoiTm90aGluZyBwZW5kaW5nIiwiZGVjaXNpb25zLmFjY291bnRfZ2xvYmFsIjoiQWxsIGFjY291bnRzIiwiZGVjaXNpb25zLnJlZiI6IlJlZiB7aWR9IiwiZGVjaXNpb25zLmV4cGlyZXNfYXQiOiJEdWUge3ZhbHVlfSIsImRlY2lzaW9ucy5jcmVhdGVkX2F0IjoiQ3JlYXRlZCB7dmFsdWV9IiwiZGVjaXNpb25zLnJlYWRfZmFpbGVkIjoiVG8tZG9zIGZhaWxlZCB0byBsb2FkLiBUaGlzIGRvZXMgbm90IG1lYW4gdGhlcmUgaXMgbm90aGluZyBwZW5kaW5nOyBwbGVhc2UgcmV0cnkuIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3N0YXR1cyI6IkFwcGxpY2F0aW9uIHN0YXR1czoge3ZhbHVlfSIsImFjY291bnRzLnRpdGxlIjoiQWNjb3VudHMiLCJhY2NvdW50cy5jb2wuYWxpYXMiOiJBbGlhcyIsImFjY291bnRzLmNvbC5wbGF0Zm9ybSI6IlBsYXRmb3JtIiwiYWNjb3VudHMuY29sLnN0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJhY2NvdW50cy5jb2wucnVuIjoiUnVuIiwiYWNjb3VudHMuY29sLmRyYWZ0cyI6IlBlbmRpbmcgZHJhZnRzIiwiYWNjb3VudHMuY29sLnRvZG9zIjoiVG8tZG9zIiwiYWNjb3VudHMuY29sLmxhc3RfY2hhbmdlIjoiTGFzdCBjaGFuZ2UiLCJhY2NvdW50cy50YWIub3ZlcnZpZXciOiJPdmVydmlldyIsImFjY291bnRzLnRhYi5zdHJhdGVneSI6IlN0cmF0ZWd5ICYgcGFyYW1ldGVycyIsImFjY291bnRzLnRhYi5jb250cm9scyI6IlJ1biBjb250cm9scyIsImFjY291bnRzLnRhYi5oaXN0b3J5IjoiQ2hhbmdlIGhpc3RvcnkiLCJhY2NvdW50cy5mcmVzaG5lc3MiOiJEYXRhIGZyZXNobmVzcyIsImFjY291bnRzLnJ1bl9zdGF0ZSI6IlJ1biBzdGF0ZSIsImFjY291bnRzLmVkaXQiOiJFZGl0IiwiYWNjb3VudHMuY2hlY2tfY2hhbmdlcyI6IlJldmlldyBjaGFuZ2VzIiwiYWNjb3VudHMudmlld2luZyI6IlZpZXdpbmciLCJhY2NvdW50cy5lZGl0aW5nIjoiRWRpdGluZyIsImFjY291bnRzLmRpZmZfZGlhbG9nX3RpdGxlIjoiQ29uZmlybSBkcmFmdCBjaGFuZ2VzIiwiYWNjb3VudHMuY29sLmRyYWZ0IjoiRHJhZnQiLCJhY2NvdW50cy5hY2tfbGl2ZSI6IkkgdW5kZXJzdGFuZCB0aGVzZSBjaGFuZ2VzIGFmZmVjdCBsaXZlIHRyYWRpbmciLCJhY2NvdW50cy5zYXZlX2RyYWZ0IjoiU2F2ZSBkcmFmdCIsImFjY291bnRzLmRyYWZ0X3NhdmVkIjoiRHJhZnQgc2F2ZWQuIiwiYWNjb3VudHMuZHJhZnRfbm90ZSI6IlNhdmluZyBhIGRyYWZ0IHBsYWNlcyBubyBvcmRlcnMsIGVuYWJsZXMgbm8gYWNjb3VudCwgYW5kIGNoYW5nZXMgbm8gdHJhZGluZyBwZXJtaXNzaW9ucy4gVGhlIGVmZmVjdGl2ZSBzZXR0aW5ncyBzdGF5IHVuY2hhbmdlZC4iLCJhY2NvdW50cy5jb25mbGljdCI6IlJldmlzaW9uIGNvbmZsaWN0OiB0aGUgZHJhZnQgd2FzIGNoYW5nZWQgZWxzZXdoZXJlLiBSZWZyZXNoIGFuZCByZXZpZXcgdGhlIGxhdGVzdCBkaWZmIGJlZm9yZSByZXRyeWluZy4iLCJhY2NvdW50cy5pZGVudGl0eV9jb25mbGljdCI6IlRoZSBhY2NvdW50IGlkZW50aXR5IGJlaGluZCB0aGUgZHJhZnQgaGFzIGNoYW5nZWQuIFJlZnJlc2ggYW5kIHJlY29uY2lsZSBmaXJzdC4iLCJhY2NvdW50cy5ub19jaGFuZ2VzIjoiTm8gY2hhbmdlcyIsImFjY291bnRzLmhpc3RvcnkuZW1wdHkiOiJObyBjaGFuZ2VzIHJlY29yZGVkIiwiYWNjb3VudHMuZXZlbnQuZHJhZnRfc2F2ZWQiOiJEcmFmdCBzYXZlZCIsImFjY291bnRzLmV2ZW50LmFwcHJvdmVkIjoiQXBwcm92ZWQiLCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIjoiTm90IHJlY29yZGVkIiwiYWNjb3VudHMuaGlzdG9yeS5ub3RlIjoiSGlzdG9yeSByZXRlbnRpb24gaXMgYm91bmRlZDsgYSBzYXZlIG9yIGFwcHJvdmFsIGRvZXMgbm90IHByb3ZlIHRoZSBjaGFuZ2UgdG9vayBlZmZlY3QuIiwiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iOiJEcmFmdCByZXZpc2lvbiB7dmFsdWV9IiwiY29udHJvbHMudGl0bGUiOiJSdW4gY29udHJvbHMiLCJjb250cm9scy5kYW5nZXJfbm90ZSI6IlRoZXNlIGFjdGlvbnMgYWZmZWN0IGxpdmUgcnVucy4gUmV2aWV3IGJlZm9yZSBleGVjdXRpbmcuIiwiY29udHJvbHMuZW5hYmxlIjoiRW5hYmxlIiwiY29udHJvbHMuc3RvcCI6IlN0b3AiLCJjb250cm9scy5yZXN1bWUiOiJSZXN1bWUiLCJjb250cm9scy5hcHByb3ZlX2FwcGxpY2F0aW9uIjoiQXBwcm92ZSBhcHBsaWNhdGlvbiIsImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSI6IlN0b3BwaW5nIG9ubHkgYmxvY2tzIG5ldyB0cmlnZ2Vycy4gSXQgZG9lcyBub3QgY2FuY2VsIG9yZGVycywgY2xvc2UgcG9zaXRpb25zLCBvciBjbGVhciBpbi1mbGlnaHQgcmVxdWVzdHMuIiwiY29udHJvbHMucmVzdW1lX3N1bW1hcnkiOiJSZXN1bWUgdGhlIGV4aXN0aW5nIHJ1bnRpbWUgdGFyZ2V0LiBObyBzdHJhdGVneSBvciBmdW5kaW5nIHBhcmFtZXRlcnMgY2hhbmdlLiIsImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSI6IkFwcHJvdmUgYXBwbHlpbmcgdGhlIGN1cnJlbnQgc3RyYXRlZ3ktcHJvZmlsZSBkcmFmdC4gVmVyaWZ5IHRoZSBlZmZlY3RpdmUgc3RhdGUgYWZ0ZXIgc3VibWlzc2lvbjsgdGhpcyBkb2VzIG5vdCBkaXJlY3RseSBwbGFjZSBvcmRlcnMuIiwiY29udHJvbHMuZW5hYmxlX3N1bW1hcnkiOiJFbmFibGUgdGhlIHJ1bnRpbWUgdGFyZ2V0IHNvIHRoZSBleGlzdGluZyBzY2hlZHVsZSByZXN1bWVzIHRyaWdnZXJpbmcuIiwiY29udHJvbHMuc3RvcF9jb25maXJtX3RpdGxlIjoiQ29uZmlybSBzdG9wcGluZyB0aGUgcnVudGltZSB0YXJnZXQiLCJjb250cm9scy5zdG9wX3R5cGVfYWxpYXMiOiJUeXBlIHRoZSBhY2NvdW50IGFsaWFzIHthbGlhc30gdG8gY29uZmlybSB0aGUgc3RvcCIsImNvbnRyb2xzLmFsaWFzX21pc21hdGNoIjoiVGhlIGFsaWFzIGRvZXMgbm90IG1hdGNoIiwiY29udHJvbHMuc3VibWl0dGVkIjoiUmVxdWVzdCBzdWJtaXR0ZWQ7IHRoZSByZXN1bHQgbmVlZHMgcmVhZC1iYWNrLiBEbyBub3QgcmVzdWJtaXQuIiwiY29udHJvbHMuc3VibWl0X2ZhaWxlZCI6IlN1Ym1pc3Npb24gZGlkIG5vdCBjb21wbGV0ZS4gVmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlIGJlZm9yZSBkZWNpZGluZzsgYXZvaWQgcmVzdWJtaXR0aW5nIGJsaW5kbHkuIiwiY29udHJvbHMudW5rbm93bl9yZXN1bHQiOiJUaGUgcHJldmlvdXMgc3VibWlzc2lvbidzIHJlc3VsdCBpcyB1bmtub3duIGFuZCBsb2NrZWQuIFJlZnJlc2ggYW5kIHZlcmlmeSBmaXJzdC4iLCJjb250cm9scy51bmF2YWlsYWJsZSI6IlVuYXZhaWxhYmxlOiB7cmVhc29ufSIsInN0cmF0ZWdpZXMudGl0bGUiOiJTdHJhdGVnaWVzIiwic3RyYXRlZ2llcy5kb21haW4iOiJNYXJrZXQiLCJzdHJhdGVnaWVzLm1vZGVzIjoiTmV3IGFjdGl2YXRpb24gLyBzd2l0Y2ggbW9kZXMiLCJzdHJhdGVnaWVzLmFjY291bnRzX3VzaW5nIjoiQ29uZmlndXJlZCBhY2NvdW50cyIsInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iOiJBY2NvdW50IGV4ZWN1dGlvbiBtb2RlIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGVnYWN5X2xpdmUiOiJMaXZlIMK3IGxlZ2FjeSBhY2NvdW50IGNvbnRpbnVhdGlvbiIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLmxpdmUiOiJMaXZlIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGl2ZV91bmtub3duIjoiTGl2ZSB0YXJnZXQgwrcgZHJ5LXJ1biBzdGF0dXMgdW5rbm93biIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLnBhcGVyIjoiUGFwZXIiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5kcnlfcnVuIjoiRHJ5IHJ1biDCtyBubyBvcmRlcnMiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi51bmtub3duIjoiRXhlY3V0aW9uIG1vZGUgdW5rbm93biIsInN0cmF0ZWdpZXMubGl2ZV9leHBvc3VyZSI6IkxpdmUgY29uZmlndXJhdGlvbiBleHBvc2VzIHJlYWwgbW9uZXkuIENhdGFsb2cgbW9kZXMgYWJvdmUgYXBwbHkgb25seSB0byBuZXcgYWN0aXZhdGlvbnMgLyBzd2l0Y2hlcy4iLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbl9zb3VyY2UiOiJNb2RlcyBjb21lIGZyb20gYWNjb3VudCBjb25maWd1cmF0aW9uOyByZWNlbnQgcnVucyBhbmQgZmlsbHMgYXJlIHVudmVyaWZpZWQuIiwic3RyYXRlZ2llcy5oZWFsdGgiOiJIZWFsdGgiLCJzdHJhdGVnaWVzLmhlYWx0aF9zY29yZSI6IlNjb3JlIHt2YWx1ZX0iLCJzdHJhdGVnaWVzLmxhc3RfcHJvbW90aW9uIjoiTGFzdCBwcm9tb3Rpb24iLCJzdHJhdGVnaWVzLnBhcmFtc19zdW1tYXJ5IjoiUGFyYW1ldGVyIHN1bW1hcnkiLCJzdHJhdGVnaWVzLnByb21vdGlvbl90aW1lbGluZSI6IlByb21vdGlvbiB0aW1lbGluZSIsInN0cmF0ZWdpZXMuZW1wdHkiOiJObyBzdHJhdGVnaWVzIHlldCIsInN0cmF0ZWdpZXMudGFiLmNhdGFsb2ciOiJDYXRhbG9nIiwic3RyYXRlZ2llcy50YWIucmVzZWFyY2giOiJSZXNlYXJjaCBsZWFkcyIsInN0cmF0ZWdpZXMucmVzZWFyY2hfb25seSI6IlJlc2VhcmNoIG9ubHk7IG5vIG9yZGVycyIsInN0cmF0ZWdpZXMucmVzZWFyY2hfbm90X2Nvbm5lY3RlZCI6IlJlc2VhcmNoIGxlYWRzIGFyZSBub3QgY29ubmVjdGVkLiIsImhlYWx0aC50aXRsZSI6IlJ1biBzdGF0dXMiLCJoZWFsdGguc3RhdC50b2RheV9ydW5zIjoiVG9kYXkge29rfS97dG90YWx9IiwiaGVhbHRoLnN0YXQub2JzZXJ2ZWQiOiJPYnNlcnZlZCB7b2JzZXJ2ZWR9L3tjb25maWd1cmVkfSIsImhlYWx0aC5zdGF0LmNyZWRlbnRpYWxzIjoie2NvdW50fSBjcmVkZW50aWFsKHMpIG5lZWQgYXR0ZW50aW9uIiwiaGVhbHRoLnN0YXQucmVjZW50X2ZhaWx1cmUiOiJSZWNlbnQgZmFpbHVyZXMge2NvdW50fSIsImhlYWx0aC5ncmlkX3RpdGxlIjoiTGFzdCAxNCBOZXcgWW9yayBidXNpbmVzcyBkYXlzIiwiaGVhbHRoLmdyaWQub2siOiJTdWNjZWVkZWQiLCJoZWFsdGguZ3JpZC5mYWlsZWQiOiJGYWlsZWQiLCJoZWFsdGguZ3JpZC5ub3RfcnVuIjoiTm90IHJ1biIsImhlYWx0aC5ncmlkLm5vX3JlY29yZCI6Ik5vIHJlY29yZCIsImhlYWx0aC5kYXlfZGV0YWlsIjoiRGF5IGRldGFpbCIsImhlYWx0aC5mcmVzaG5lc3NfdGl0bGUiOiJEYXRhIGZyZXNobmVzcyIsImhlYWx0aC5jcmVkZW50aWFsc190aXRsZSI6IkNyZWRlbnRpYWwgZXhwaXJ5IiwiaGVhbHRoLmNyZWRlbnRpYWxfaWJrcl9yZXBvcnQiOiJJQktSIHJlcG9ydCBjcmVkZW50aWFsIiwiaGVhbHRoLmNyZWRlbnRpYWxfb3RoZXIiOiJBY2NvdW50IGNyZWRlbnRpYWwiLCJoZWFsdGgudGFibGVfc2Nyb2xsX2hpbnQiOiJTY3JvbGwgaG9yaXpvbnRhbGx5IHRvIHNlZSB0aGUgZnVsbCB0YWJsZSIsImhlYWx0aC5ncmlkX3Njcm9sbF9oaW50IjoiU2Nyb2xsIGZvciBhbGwgZGF0ZXM7IGFjY291bnRzIHN0YXkgdmlzaWJsZSIsImhlYWx0aC5jcmVkZW50aWFsX2V4cGlyZXMiOiJFeHBpcmVzIHt2YWx1ZX0iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5leHBpcmVkIjoiRXhwaXJlZCIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLjMwIjoiRXhwaXJlcyB3aXRoaW4gMzAgZGF5cyIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLjciOiJFeHBpcmVzIHdpdGhpbiA3IGRheXMiLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS4xIjoiRXhwaXJlcyB3aXRoaW4gMSBkYXkiLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5ub3RfZHVlIjoiTm90IGR1ZSIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLnVua25vd24iOiJVbmtub3duIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfdGl0bGUiOiJOb3RpZmljYXRpb25zIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfbm90X2Nvbm5lY3RlZCI6IlRoZSBub3RpZmljYXRpb24gbG9nIGlzIG5vdCBjb25uZWN0ZWQuIiwiaGVhbHRoLmFjdGl2aXR5IjoiQWN0aXZpdHkiLCJoZWFsdGgucnVuX2NvdW50IjoiUnVuIGNvdW50IiwiaGVhbHRoLmNvbC5hY2NvdW50IjoiQWNjb3VudCIsImhlYWx0aC5jb2wuc291cmNlIjoiU291cmNlIiwiaGVhbHRoLmNvbC5zdGF0dXMiOiJTdGF0dXMiLCJoZWFsdGguY29sLmFzX29mIjoiQXMgb2YiLCJlcnJvci5nZW5lcmljIjoiVGhlIHJlcXVlc3QgZGlkIG5vdCBjb21wbGV0ZS4gUmVmcmVzaCBhbmQgdmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlLiIsImVycm9yLnNlc3Npb25fZXhwaXJlZCI6IlNlc3Npb24gZXhwaXJlZC4gUGxlYXNlIHNpZ24gaW4gYWdhaW4uIiwiZXJyb3IuYWNjZXNzX2RlbmllZCI6IkFjY2VzcyBkZW5pZWQuIiwiZXJyb3IuY29uZmxpY3QiOiJSZXZpc2lvbiBjb25mbGljdC4gWW91ciBlZGl0cyBhcmUga2VwdDsgcmVmcmVzaCBhbmQgdmVyaWZ5LiJ9LEtfPXsib3ZlcnZpZXcucnVudGltZV90YXJnZXQiOiLov5DooYznm67moIciLCJvdmVydmlldy5ydW50aW1lX2VuYWJsZWQiOiLlt7LlkK/nlKgiLCJvdmVydmlldy5ydW50aW1lX2Rpc2FibGVkIjoi5bey5YGc55SoIn0sSl89eyJvdmVydmlldy5ydW50aW1lX3RhcmdldCI6IlJ1bnRpbWUgdGFyZ2V0Iiwib3ZlcnZpZXcucnVudGltZV9lbmFibGVkIjoiRW5hYmxlZCIsIm92ZXJ2aWV3LnJ1bnRpbWVfZGlzYWJsZWQiOiJTdG9wcGVkIn0sJF89eyJwZXJmLmhpc3RvcnlfaW5jb21wbGV0ZSI6IuWOhuWPsuimhuebluS4jeWujOaVtCIsInBlcmYuaGlzdG9yeV9zdGFsZSI6IuWOhuWPsuaVsOaNruWBj+aXpyIsInBlcmYuaGlzdG9yeV9jb3ZlcmFnZV9ub3RlIjoi5Y6G5Y+y5puy57q/5Y+v6IO95LuF5ZCr6YOo5YiG6LSm5oi344CC57y65aSx6LSm5oi35LiN6K6h5YWl5bCP6K6h77yb5YmN5YC85aGr5YWF5rK/55So5YWI5YmN5Lyw5YC877yM5LiN5Luj6KGo5b2T5pel5paw5Lyw5YC844CCIiwicGVyZi5oaXN0b3J5X2FmZmVjdGVkX2FjY291bnRzIjoi5Y6G5Y+y57y65aSx5oiW5L2/55So5YmN5YC855qE6LSm5oi377yae2FjY291bnRzfSIsInBlcmYuY3VycmVuY3lfZXhjbHVkZWRfYWNjb3VudHMiOiLlj6bmnIkge2NvdW50fSDkuKrotKbmiLfnmoTluIHnp43miJbph5Hpop3mnKrnoa7orqTjgIIiLCJwZXJmLmRyYXdkb3duX3R3cl90aXRsZSI6IlRXUiDmnIDlpKflm57mkqQiLCJwZXJmLm5hdGl2ZV90b3RhbHNfbm90ZSI6IuaMieWOn+W4geenjeWIhuWIq+Wxleekuu+8jOS4jeaNouaxh++8m+S4jeWQjOS8sOWAvOaXpeacn+eahOi0puaIt+S4jeebuOWKoOOAgiIsInBlcmYuY3VycmVuY3lfc3VidG90YWwiOiJ7Y3VycmVuY3l9IOW3suingua1i+Wwj+iuoSIsInBlcmYuY3VycmVuY3lfdG90YWwiOiJ7Y3VycmVuY3l9IOi1hOS6p+aAu+minSIsInBlcmYuY3VycmVuY3lfYWNjb3VudHMiOiLnurPlhaUge2NvdW50fSAvIHtleHBlY3RlZH0g5Liq6LSm5oi3IiwicGVyZi5mcmVzaG5lc3NfY291bnRzIjoi6LSm5oi35pWw5o2u77ya5paw6bKcIHtmcmVzaH0gwrcg5YGP5penIHtzdGFsZX0gwrcg5pyq55+lIHt1bmtub3dufSIsInBlcmYuZnJlc2huZXNzX3RocmVzaG9sZCI6IuaMieWQhOi0puaIt+aXtumXtOWIhuWIq+WIpOaWre+8jOaXtuaViOmYiOWAvCB7aG91cnN9IOWwj+aXtuOAgiIsInJlYXNvbi5ub19jYXNoZmxvd19kYXRhIjoi57y65bCR5a6M5pW05Ye65YWl6YeR6K6w5b2V77yM5peg5rOV6K6h566XIFRXUiDlj4rlhbblm57mkqTjgIIiLCJyZWFzb24uaW5zdWZmaWNpZW50X2hpc3RvcnkiOiLoh7PlsJHpnIDopoHkuKTku73mnInmlYjkvLDlgLzorrDlvZXjgIIiLCJyZWFzb24ubm9fc25hcHNob3QiOiLmsqHmnInlj6/nlKjnmoTotKbmiLfkvLDlgLzlv6vnhafjgIIiLCJyZWFzb24uc25hcHNob3Rfc3RhbGUiOiLor6XotKbmiLflv6vnhaflt7LotoXov4fml7bmlYjpmIjlgLzjgIIiLCJyZWFzb24udmFsdWF0aW9uX2RhdGVfbWlzbWF0Y2giOiLotKbmiLfkvLDlgLzml6XmnJ/kuI3lkIzvvIzku4XlsZXnpLrmnIDmlrDml6XmnJ/nmoTlt7Lop4LmtYvlsI/orqHjgIIiLCJyZWFzb24uaW5jb21wbGV0ZV9hY2NvdW50X2NvdmVyYWdlIjoi6LSm5oi35pWw5o2u6KaG55uW5LiN5a6M5pW077yb5q2k6YeR6aKd5LuF5Li65bey6KeC5rWL5bCP6K6h44CCIiwicGVyZi5iZW5jaG1hcmtfc3A1MDAiOiLmoIfmma41MDAiLCJwZXJmLmJlbmNobWFya19uYXNkYXExMDAiOiLnurPmlq/ovr7lhYsxMDAiLCJwZXJmLmJlbmNobWFya19kb3ciOiLpgZPnkLzmlq/lt6XkuJrlubPlnYfmjIfmlbAiLCJwZXJmLmJlbmNobWFya19ydXNzZWxsMjAwMCI6Iue9l+e0oDIwMDAiLCJwZXJmLmJlbmNobWFya191bmtub3duIjoi5Z+65YeGIiwicGVyZm9ybWFuY2UuY3VycmVudF9ob2xkaW5nc191bnJlYWxpemVkIjoi5b2T5YmN5oyB5LuTIMK3IOacquWunueOsOebiOS6jyIsInBlcmYucmV0dXJuX2tpbmRfdHdyIjoi5pe26Ze05Yqg5p2D5pS255uK546H77yIVFdS77yJIiwicGVyZi5yZXR1cm5fa2luZF91bmFkanVzdGVkIjoi5pyq57uP5Ye65YWl6YeR6LCD5pW055qE6LWE5Lqn5Y+Y5Yqo5q+U5L6L77yI6Z2eIFRXUu+8iSIsInBlcmYucGVyX2N1cnJlbmN5X25vdGUiOiLlpJrluIHnp43ml6Dms5XlkIjlubbkuLrlkIzkuIDmnaHmm7Lnur/vvJvku6XkuIvmjInluIHnp43liIbliKvorqHnrpfvvIzkuI3ku6Pooajnu4TlkIjmlbTkvZPmlLbnm4rjgIIiLCJwZXJmLmhvbGRpbmdzX2NvdmVyYWdlX2FjY291bnRzIjoi6KaG55uW6LSm5oi377yae3ZhbHVlfSIsInBlcmYucmFua2luZ19ub3RlIjoi5oyJ5pyq5a6e546w55uI5LqP6YeR6aKd5o6S5bqP77yb5q+U5L6L5Li655u45a+55oiQ5pys5Lu355qE55uI5LqP77yM57y65bCR5oiQ5pys5Lu355qE5oyB5LuT5LiN5Y+C5LiO5o6S6KGM44CCIiwicGVyZi5yYW5raW5nX3dpbm5lcnMiOiLnm4jliKnpnaDliY0iLCJwZXJmLnJhbmtpbmdfbG9zZXJzIjoi5LqP5o2f6Z2g5YmNIn0sV189eyJwZXJmLmhpc3RvcnlfaW5jb21wbGV0ZSI6IkluY29tcGxldGUgaGlzdG9yeSIsInBlcmYuaGlzdG9yeV9zdGFsZSI6Ikhpc3RvcnkgaXMgc3RhbGUiLCJwZXJmLmhpc3RvcnlfY292ZXJhZ2Vfbm90ZSI6Ikhpc3RvcnkgbWF5IGNvdmVyIG9ubHkgc29tZSBhY2NvdW50cy4gTWlzc2luZyBhY2NvdW50cyBhcmUgZXhjbHVkZWQgZnJvbSBzdWJ0b3RhbHMuIEZvcndhcmQtZmlsbGVkIHZhbHVlcyBjYXJyeSBhbiBlYXJsaWVyIG9ic2VydmF0aW9uLCBub3QgYSBuZXcgdmFsdWF0aW9uIGZvciB0aGF0IGRhdGUuIiwicGVyZi5oaXN0b3J5X2FmZmVjdGVkX2FjY291bnRzIjoiQWNjb3VudHMgd2l0aCBtaXNzaW5nIG9yIGNhcnJpZWQgaGlzdG9yeToge2FjY291bnRzfSIsInBlcmYuY3VycmVuY3lfZXhjbHVkZWRfYWNjb3VudHMiOiJDdXJyZW5jeSBvciBiYWxhbmNlIGlzIHVuY29uZmlybWVkIGZvciB7Y291bnR9IGFkZGl0aW9uYWwgYWNjb3VudHMuIiwicGVyZi5kcmF3ZG93bl90d3JfdGl0bGUiOiJNYXhpbXVtIFRXUiBkcmF3ZG93biIsInBlcmYubmF0aXZlX3RvdGFsc19ub3RlIjoiU2hvd24gc2VwYXJhdGVseSBpbiBuYXRpdmUgY3VycmVuY2llcywgd2l0aG91dCBGWCBjb252ZXJzaW9uLiBBY2NvdW50cyB3aXRoIGRpZmZlcmVudCB2YWx1YXRpb24gZGF0ZXMgYXJlIG5vdCBhZGRlZC4iLCJwZXJmLmN1cnJlbmN5X3N1YnRvdGFsIjoie2N1cnJlbmN5fSBvYnNlcnZlZCBzdWJ0b3RhbCIsInBlcmYuY3VycmVuY3lfdG90YWwiOiJ7Y3VycmVuY3l9IHRvdGFsIGFzc2V0cyIsInBlcmYuY3VycmVuY3lfYWNjb3VudHMiOiJJbmNsdWRlcyB7Y291bnR9IC8ge2V4cGVjdGVkfSBhY2NvdW50cyIsInBlcmYuZnJlc2huZXNzX2NvdW50cyI6IkFjY291bnQgZGF0YTogZnJlc2gge2ZyZXNofSDCtyBzdGFsZSB7c3RhbGV9IMK3IHVua25vd24ge3Vua25vd259IiwicGVyZi5mcmVzaG5lc3NfdGhyZXNob2xkIjoiRWFjaCBhY2NvdW50IGlzIGNoZWNrZWQgc2VwYXJhdGVseSBhZ2FpbnN0IGEge2hvdXJzfS1ob3VyIHRocmVzaG9sZC4iLCJyZWFzb24ubm9fY2FzaGZsb3dfZGF0YSI6IkNvbXBsZXRlIGNhc2gtZmxvdyByZWNvcmRzIGFyZSBtaXNzaW5nOyBUV1IgYW5kIGl0cyBkcmF3ZG93biBjYW5ub3QgYmUgY2FsY3VsYXRlZC4iLCJyZWFzb24uaW5zdWZmaWNpZW50X2hpc3RvcnkiOiJBdCBsZWFzdCB0d28gdmFsaWQgdmFsdWF0aW9uIG9ic2VydmF0aW9ucyBhcmUgcmVxdWlyZWQuIiwicmVhc29uLm5vX3NuYXBzaG90IjoiTm8gdXNhYmxlIGFjY291bnQgdmFsdWF0aW9uIHNuYXBzaG90IGlzIGF2YWlsYWJsZS4iLCJyZWFzb24uc25hcHNob3Rfc3RhbGUiOiJUaGlzIGFjY291bnQgc25hcHNob3QgZXhjZWVkcyB0aGUgZnJlc2huZXNzIHRocmVzaG9sZC4iLCJyZWFzb24udmFsdWF0aW9uX2RhdGVfbWlzbWF0Y2giOiJBY2NvdW50IHZhbHVhdGlvbiBkYXRlcyBkaWZmZXI7IG9ubHkgdGhlIG9ic2VydmVkIHN1YnRvdGFsIGZvciB0aGUgbGF0ZXN0IGRhdGUgaXMgc2hvd24uIiwicmVhc29uLmluY29tcGxldGVfYWNjb3VudF9jb3ZlcmFnZSI6IkFjY291bnQgY292ZXJhZ2UgaXMgaW5jb21wbGV0ZTsgdGhpcyBhbW91bnQgaXMgYW4gb2JzZXJ2ZWQgc3VidG90YWwuIiwicGVyZi5iZW5jaG1hcmtfc3A1MDAiOiJTJlAgNTAwIiwicGVyZi5iZW5jaG1hcmtfbmFzZGFxMTAwIjoiTmFzZGFxLTEwMCIsInBlcmYuYmVuY2htYXJrX2RvdyI6IkRvdyBKb25lcyBJbmR1c3RyaWFsIEF2ZXJhZ2UiLCJwZXJmLmJlbmNobWFya19ydXNzZWxsMjAwMCI6IlJ1c3NlbGwgMjAwMCIsInBlcmYuYmVuY2htYXJrX3Vua25vd24iOiJCZW5jaG1hcmsiLCJwZXJmb3JtYW5jZS5jdXJyZW50X2hvbGRpbmdzX3VucmVhbGl6ZWQiOiJDdXJyZW50IGhvbGRpbmdzIMK3IHVucmVhbGl6ZWQgUC9MIiwicGVyZi5yZXR1cm5fa2luZF90d3IiOiJUaW1lLXdlaWdodGVkIHJldHVybiAoVFdSKSIsInBlcmYucmV0dXJuX2tpbmRfdW5hZGp1c3RlZCI6IkFzc2V0LWNoYW5nZSByYXRpbyB1bmFkanVzdGVkIGZvciBjYXNoIGZsb3dzIChub3QgVFdSKSIsInBlcmYucGVyX2N1cnJlbmN5X25vdGUiOiJNaXhlZCBjdXJyZW5jaWVzIGNhbm5vdCBiZSBtZXJnZWQgaW50byBvbmUgY3VydmU7IGVhY2ggY3VycmVuY3kgYmVsb3cgaXMgY29tcHV0ZWQgc2VwYXJhdGVseSBhbmQgaXMgbm90IGEgY29tYmluZWQgcG9ydGZvbGlvIHJldHVybi4iLCJwZXJmLmhvbGRpbmdzX2NvdmVyYWdlX2FjY291bnRzIjoiQ292ZXJlZCBhY2NvdW50czoge3ZhbHVlfSIsInBlcmYucmFua2luZ19ub3RlIjoiUmFua2VkIGJ5IHVucmVhbGl6ZWQgUC9MIGFtb3VudDsgcGVyY2VudGFnZXMgYXJlIHJlbGF0aXZlIHRvIGNvc3QgYmFzaXMuIEhvbGRpbmdzIHdpdGhvdXQgYSBjb3N0IGJhc2lzIGFyZSBub3QgcmFua2VkLiIsInBlcmYucmFua2luZ193aW5uZXJzIjoiVG9wIGdhaW5lcnMiLCJwZXJmLnJhbmtpbmdfbG9zZXJzIjoiVG9wIGxvc2VycyJ9LEZfPXsicmVjb25jaWxpYXRpb24udGl0bGUiOiLlr7notKbmnZDmlpnkuI7lvZPliY3op4Llr58iLCJyZWNvbmNpbGlhdGlvbi5jdXJyZW50Ijoi5b2T5YmN5a+56LSm6KeC5a+fIiwicmVjb25jaWxpYXRpb24ubm90X2Nvbm5lY3RlZCI6IuacquaOpeWFpSAvIOacquefpSIsInJlY29uY2lsaWF0aW9uLmhpc3Rvcnlfbm90aWNlIjoi5oGi5aSN5a6h5om55p2Q5paZ5LiN5Luj6KGo5LuK5aSp55qE5a+56LSm54q25oCB44CCIiwicmVjb25jaWxpYXRpb24ubWF0ZXJpYWxzIjoi5oGi5aSN5a6h5om55p2Q5paZIiwicmVjb25jaWxpYXRpb24uc3RhbGUiOiLmgaLlpI3mnZDmlpnlt7Lov4fmnJ/vvIzor7fmn6XnnIvljp/lp4vml6XmnJ/jgIIiLCJyZWNvbmNpbGlhdGlvbi5yZWFkX3Vua25vd24iOiLmgaLlpI3mnZDmlpnmiJblhrPlrprnirbmgIHlsJrmnKrmoLjlrp4iLCJyZWNvbmNpbGlhdGlvbi5lbXB0eSI6IuayoeacieWPr+aYvuekuueahOaBouWkjeiusOW9leOAgiIsInJlY29uY2lsaWF0aW9uLnVubmFtZWRfc3RyYXRlZ3kiOiLmnKrlkb3lkI3nrZbnlaUiLCJyZWNvbmNpbGlhdGlvbi5kZWNpc2lvbl9zdGF0dXMiOiLlhrPlrprnirbmgIEiLCJyZWNvbmNpbGlhdGlvbi5kZWNpc2lvbl91bmtub3duIjoi5Yaz5a6a54q25oCB5pyq55+lIiwicmVjb25jaWxpYXRpb24uZnJlc2huZXNzIjoi5p2Q5paZ5paw6bKc5bqmIiwicmVjb25jaWxpYXRpb24ub2JzZXJ2ZWRfYXQiOiLljp/lp4vop4LmtYvml7bpl7QiLCJyZWNvbmNpbGlhdGlvbi5nZW5lcmF0ZWRfYXQiOiLmnZDmlpnnlJ/miJDml7bpl7QiLCJyZWNvbmNpbGlhdGlvbi5jb21wdXRlZF9hdCI6IuadkOaWmeiuoeeul+aXtumXtCIsImluYm94LmNvdW50X3Vua25vd24iOiLlvoXlip7lkozlrqHmibnmlbDph4/lsJrmnKrnoa7orqTjgIIiLCJpbmJveC5lcnJvci5xdW90YV9leGhhdXN0ZWQudGl0bGUiOiLlvoXlip7nm67lvZXphY3pop3lt7LnlKjlsL0iLCJpbmJveC5lcnJvci5xdW90YV9leGhhdXN0ZWQuZGV0YWlsIjoi5ZCO5Y+w5omr5o+P5b6F5Yqe55uu5b2V6YGH5Yiw5q+P5pel6YWN6aKd6ZmQ5Yi277yM5a6M5pW05b6F5Yqe5pqC5LiN5Y+v55So44CCIiwiaW5ib3guZXJyb3IudW5hdXRob3JpemVkLnRpdGxlIjoi5b6F5Yqe6K6/6Zeu5Y+X6ZmQIiwiaW5ib3guZXJyb3IudW5hdXRob3JpemVkLmRldGFpbCI6IueZu+W9leW3suWkseaViOaIluW9k+WJjei0puaIt+ayoeacieivu+WPluadg+mZkOOAgiIsImluYm94LmVycm9yLmluZGV4X21pc3NpbmcudGl0bGUiOiLlvoXlip7nm67lvZXlsJrmnKrlu7rnq4siLCJpbmJveC5lcnJvci5pbmRleF9taXNzaW5nLmRldGFpbCI6IuWwmuaXoOWujOaVtOebruW9le+8jOaXoOazleehruiupOW+heWKnuWSjOWuoeaJueaVsOmHj+OAgiIsImluYm94LmVycm9yLmluZGV4X2luY29tcGxldGUudGl0bGUiOiLlvoXlip7nm67lvZXlsJrmnKrmm7TmlrDlrozmiJAiLCJpbmJveC5lcnJvci5pbmRleF9pbmNvbXBsZXRlLmRldGFpbCI6IuaXp+iusOW9leWwmuacquWFqOmDqOe6s+WFpeebruW9le+8jOW9k+WJjeaXoOazleehruiupOWFqOmDqOW+heWKnuWSjOWuoeaJueOAgiIsImluYm94LmVycm9yLmluZGV4X3VuYXZhaWxhYmxlLnRpdGxlIjoi5b6F5Yqe55uu5b2V5pqC5LiN5Y+v55SoIiwiaW5ib3guZXJyb3IuaW5kZXhfdW5hdmFpbGFibGUuZGV0YWlsIjoi546w5pyJ55uu5b2V5peg5rOV5a6M5pW06K+75Y+W77yM6ZyA6KaB57u05oqk5Lq65ZGY5qOA5p+l55uu5b2V54q25oCB44CCIiwiaW5ib3guZXJyb3IudW5rbm93bi50aXRsZSI6IuW+heWKnuaaguaXoOazleivu+WPliIsImluYm94LmVycm9yLnVua25vd24uZGV0YWlsIjoi5pyq6IO956Gu6K6k5YW35L2T5Y6f5Zug77yM6K+356iN5ZCO6YeN5paw6K+75Y+W77yb6Iul5oyB57ut5aSx6LSl77yM6K+36IGU57O757u05oqk5Lq65ZGY44CCIiwiaW5ib3gucmV0cnlfYXQiOiLnm67lvZXnu7TmiqTmnIDml6nph43or5Xml7bpl7TvvJp7dmFsdWV977yM5LiN5Luj6KGo5bGK5pe25LiA5a6a5oGi5aSN44CCIiwiaW5ib3guYXV0aF9oaW50Ijoi6K+35L2/55So5bey5pyJ6K+75Y+W5p2D6ZmQ55qE6LSm5oi36YeN5paw55m75b2V44CCIiwiaW5ib3gucmV0cnlfaGludCI6IueojeWQjuWPr+mHjeaWsOivu+WPlueOsOacieebruW9le+8jOatpOaTjeS9nOS4jeS8muaJq+aPj+aIlumHjeW7uuebruW9leOAguWksei0pee7k+aenOWPr+iDveS/neeVmeS4gOWIhumSn+OAgiIsImluYm94LnJldHJ5Ijoi6YeN5paw6K+75Y+W5b6F5YqeIiwic3RhdGUuZnJlc2giOiLmnIDmlrAiLCJzdGF0ZS51bmtub3duIjoi5pyq55+lIiwiZGVjaXNpb25zLnBhcnRpYWxfc291cmNlcyI6IumDqOWIhuadpea6kOacquWwsee7qu+8mnt2YWx1ZX0iLCJkZWNpc2lvbnMubWF0ZXJpYWxfZnJlc2huZXNzIjoi5p2Q5paZ5paw6bKc5bqm77yae3ZhbHVlfSIsImRlY2lzaW9ucy5zdGFsZV9oaW50Ijoi5Yib5bu66L6D5pep77yM5p2Q5paZ5Y+v6IO95bey6ZmI5penIiwiZGVjaXNpb25zLmludGVudF9yZWNvcmRlZCI6IuaEj+WQkeW3suiusOW9leOAgiIsImRlY2lzaW9ucy5tYXRlcmlhbF9jaGFuZ2VkIjoi5p2Q5paZ5bey5pu05paw77yM6K+36YeN5paw5p+l55yL6K+m5oOF5ZCO5YaN56Gu6K6k44CCIiwiZGVjaXNpb25zLmludGVudF9ub3RfcGVuZGluZyI6IuivpeS6i+mhueW3suS4jeWcqOW+heWkhOeQhueKtuaAgeOAgiIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiOiLmmoLml6Dms5Xnoa7orqTmnZDmlpnvvIzml6Dms5XorrDlvZXmhI/lkJHvvJvor7fliLfmlrDlkI7ph43or5XjgIIiLCJkZWNpc2lvbnMucmVjb25jaWxpYXRpb25fcmVjb3ZlcnkiOiLlr7notKbmgaLlpI3noa7orqQiLCJkZWNpc2lvbnMuc3RyYXRlZ3lfcHJvbW90aW9uIjoi562W55Wl5pmL57qn5pa55qGIIiwiZGVjaXNpb25zLm93bmVyX2RlY2lzaW9uIjoi6LSf6LSj5Lq65Yaz5a6aIiwiZGVjaXNpb25zLnBhcGVyX2FjY291bnRfYXBwbGljYXRpb24iOiLmqKHmi5/otKbmiLflupTnlKgiLCJkZWNpc2lvbnMuY3JlZGVudGlhbF9tYWludGVuYW5jZSI6IuWHreivgee7tOaKpCIsImRlY2lzaW9ucy5zdHJhdGVneSI6IuetlueVpSIsImRlY2lzaW9ucy52ZXJzaW9uIjoi54mI5pysIiwiZGVjaXNpb25zLnBhcmFtZXRlcnMiOiLlj4LmlbAiLCJkZWNpc2lvbnMuc2hhZG93X3Bhc3NlZCI6IuaooeaLn+inguWvn+mAmui/hyIsImRlY2lzaW9ucy5zaGFkb3ciOiLmqKHmi5/op4Llr5/mjIfmoIciLCJkZWNpc2lvbnMucHJvbXB0LnJlY29uY2lsaWF0aW9uX3JlY292ZXJ5Ijoi5piv5ZCm6YeH55So6L+Z5Lu95oGi5aSN5pa55qGI77yf6K6w5b2V5oSP5ZCR5LiN5Lya55u05o6l5ZCv55So6LSm5oi344CCIiwiZGVjaXNpb25zLnByb21wdC5zdHJhdGVneV9wcm9tb3Rpb24iOiLmmK/lkKbph4fnlKjov5npobnnrZbnlaXmmYvnuqfmlrnmoYjvvJ8iLCJkZWNpc2lvbnMucHJvbXB0Lm93bmVyX2RlY2lzaW9uIjoi5piv5ZCm6YeH55So6L+Z5Liq562W55Wl5YCZ6YCJ77yfIiwiZGVjaXNpb25zLnByb21wdC5wYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIjoi5piv5ZCm5bCG6L+Z5Liq5pa55qGI5bqU55So5Yiw5qih5ouf6LSm5oi377yfIiwiZGVjaXNpb25zLnByb21wdC5jcmVkZW50aWFsX21haW50ZW5hbmNlIjoi5Yet6K+B6ZyA6KaB57u05oqk77yM6K+35Zyo6L+Q6KGM54q25oCB6aG15aSE55CG44CCIiwiZGVjaXNpb25zLnNlbGVjdF9wcm9tcHQiOiLku47lt6bkvqfpgInmi6nkuIDmnaHkuovpobnmn6XnnIvor6bmg4XjgIIiLCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiOiLnm67moIfotKbmiLciLCJkZWNpc2lvbnMubm9fYWNjb3VudF9vcHRpb25zIjoi5pqC5peg5Y+v55So55qE5qih5ouf6LSm5oi36YCJ6aG577yM5peg5rOV5o+Q5Lqk5bqU55So44CCIiwiZGVjaXNpb25zLmFwcGx5X25vdGUiOiLlj6rmj5DkuqTmqKHmi5/otKbmiLflupTnlKjor7fmsYLvvIzkuI3kvJroh6rliqjlkK/nlKjnrZbnlaXmiJbkuIvljZXjgIIiLCJkZWNpc2lvbnMuYXBwbGljYXRpb25fc3VibWl0dGVkIjoi5bqU55So6K+35rGC5bey5o+Q5Lqk77yb57uT5p6c6ZyA6K+75Zue56Gu6K6k77yM6K+35Yu/6YeN5aSN5o+Q5Lqk44CCIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3VuY2VydGFpbiI6IuW3suacieW6lOeUqOivt+axgue7k+aenOW+heehruiupO+8jOivt+WLv+mHjeWkjeaPkOS6pOOAgiIsImRlY2lzaW9ucy5vcGVuX2hlYWx0aCI6IuWJjeW+gOi/kOihjOeKtuaAgSIsImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoi5q2j5Zyo5o+Q5Lqk4oCmIiwiZGVjaXNpb25zLmNvbmZpcm1fYWRvcHRfbGFiZWwiOiLnoa7orqTph4fnlKgiLCJkZWNpc2lvbnMuY29uZmlybV9kZWNsaW5lX2xhYmVsIjoi56Gu6K6k5LiN6YeH55SoIiwiZGVjaXNpb25zLmZyZXNobmVzcy5yZWFkeSI6IuWwsee7qiIsImRlY2lzaW9ucy5zb3VyY2Uub3duZXIiOiLotJ/otKPkurrlhrPlrpoiLCJkZWNpc2lvbnMuc291cmNlLnByb21vdGlvbiI6IuetlueVpeaZi+e6pyIsImRlY2lzaW9ucy5zb3VyY2UucmVjb3ZlcnkiOiLlr7notKbmgaLlpI0iLCJkZWNpc2lvbnMuc291cmNlLmNyZWRlbnRpYWwiOiLlh63or4EifSxQXz17InJlY29uY2lsaWF0aW9uLnRpdGxlIjoiUmVjb25jaWxpYXRpb24gbWF0ZXJpYWxzIGFuZCBjdXJyZW50IG9ic2VydmF0aW9uIiwicmVjb25jaWxpYXRpb24uY3VycmVudCI6IkN1cnJlbnQgcmVjb25jaWxpYXRpb24gb2JzZXJ2YXRpb24iLCJyZWNvbmNpbGlhdGlvbi5ub3RfY29ubmVjdGVkIjoiTm90IGNvbm5lY3RlZCAvIHVua25vd24iLCJyZWNvbmNpbGlhdGlvbi5oaXN0b3J5X25vdGljZSI6IlJlY292ZXJ5IGFwcHJvdmFsIG1hdGVyaWFsIGRvZXMgbm90IGVzdGFibGlzaCB0b2RheSdzIHJlY29uY2lsaWF0aW9uIHN0YXR1cy4iLCJyZWNvbmNpbGlhdGlvbi5tYXRlcmlhbHMiOiJSZWNvdmVyeSBhcHByb3ZhbCBtYXRlcmlhbCIsInJlY29uY2lsaWF0aW9uLnN0YWxlIjoiUmVjb3ZlcnkgbWF0ZXJpYWwgaXMgc3RhbGUuIENoZWNrIHRoZSBvcmlnaW5hbCBkYXRlcy4iLCJyZWNvbmNpbGlhdGlvbi5yZWFkX3Vua25vd24iOiJSZWNvdmVyeSBtYXRlcmlhbCBvciBkZWNpc2lvbiBzdGF0dXMgaGFzIG5vdCBiZWVuIHZlcmlmaWVkIiwicmVjb25jaWxpYXRpb24uZW1wdHkiOiJUaGVyZSBhcmUgbm8gcmVjb3ZlcnkgcmVjb3JkcyB0byBkaXNwbGF5LiIsInJlY29uY2lsaWF0aW9uLnVubmFtZWRfc3RyYXRlZ3kiOiJVbm5hbWVkIHN0cmF0ZWd5IiwicmVjb25jaWxpYXRpb24uZGVjaXNpb25fc3RhdHVzIjoiRGVjaXNpb24gc3RhdHVzIiwicmVjb25jaWxpYXRpb24uZGVjaXNpb25fdW5rbm93biI6IkRlY2lzaW9uIHN0YXR1cyB1bmtub3duIiwicmVjb25jaWxpYXRpb24uZnJlc2huZXNzIjoiTWF0ZXJpYWwgZnJlc2huZXNzIiwicmVjb25jaWxpYXRpb24ub2JzZXJ2ZWRfYXQiOiJPcmlnaW5hbCBvYnNlcnZhdGlvbiB0aW1lIiwicmVjb25jaWxpYXRpb24uZ2VuZXJhdGVkX2F0IjoiTWF0ZXJpYWwgZ2VuZXJhdGVkIGF0IiwicmVjb25jaWxpYXRpb24uY29tcHV0ZWRfYXQiOiJNYXRlcmlhbCBjb21wdXRlZCBhdCIsImluYm94LmNvdW50X3Vua25vd24iOiJUb2RvIGFuZCBhcHByb3ZhbCBjb3VudHMgYXJlIHVua25vd24uIiwiaW5ib3guZXJyb3IucXVvdGFfZXhoYXVzdGVkLnRpdGxlIjoiVG9kbyBkaXJlY3RvcnkgcXVvdGEgZXhoYXVzdGVkIiwiaW5ib3guZXJyb3IucXVvdGFfZXhoYXVzdGVkLmRldGFpbCI6IkEgYmFja2dyb3VuZCBkaXJlY3Rvcnkgc2NhbiByZWFjaGVkIGl0cyBkYWlseSBxdW90YS4gVGhlIGNvbXBsZXRlIGluYm94IGlzIHVuYXZhaWxhYmxlLiIsImluYm94LmVycm9yLnVuYXV0aG9yaXplZC50aXRsZSI6IlRvZG8gYWNjZXNzIHJlc3RyaWN0ZWQiLCJpbmJveC5lcnJvci51bmF1dGhvcml6ZWQuZGV0YWlsIjoiWW91ciBzZXNzaW9uIGhhcyBleHBpcmVkIG9yIHRoaXMgYWNjb3VudCBsYWNrcyByZWFkIGFjY2Vzcy4iLCJpbmJveC5lcnJvci5pbmRleF9taXNzaW5nLnRpdGxlIjoiVG9kbyBpbmRleCBub3QgaW5pdGlhbGl6ZWQiLCJpbmJveC5lcnJvci5pbmRleF9taXNzaW5nLmRldGFpbCI6IkEgY29tcGxldGUgaW5kZXggaXMgbm90IGF2YWlsYWJsZSwgc28gdG9kbyBhbmQgYXBwcm92YWwgY291bnRzIGFyZSB1bmtub3duLiIsImluYm94LmVycm9yLmluZGV4X2luY29tcGxldGUudGl0bGUiOiJUb2RvIGluZGV4IHVwZGF0ZSBpbmNvbXBsZXRlIiwiaW5ib3guZXJyb3IuaW5kZXhfaW5jb21wbGV0ZS5kZXRhaWwiOiJTb21lIGxlZ2FjeSByZWNvcmRzIGhhdmUgbm90IGJlZW4gaW5kZXhlZCB5ZXQuIENvbXBsZXRlIHRvZG8gYW5kIGFwcHJvdmFsIGNvdmVyYWdlIGlzIHVua25vd24uIiwiaW5ib3guZXJyb3IuaW5kZXhfdW5hdmFpbGFibGUudGl0bGUiOiJUb2RvIGluZGV4IHVuYXZhaWxhYmxlIiwiaW5ib3guZXJyb3IuaW5kZXhfdW5hdmFpbGFibGUuZGV0YWlsIjoiVGhlIGV4aXN0aW5nIGluZGV4IGNvdWxkIG5vdCBiZSByZWFkIGNvbXBsZXRlbHkuIEEgbWFpbnRhaW5lciBuZWVkcyB0byBjaGVjayBpdHMgc3RhdHVzLiIsImluYm94LmVycm9yLnVua25vd24udGl0bGUiOiJUb2RvcyBjb3VsZCBub3QgYmUgcmVhZCIsImluYm94LmVycm9yLnVua25vd24uZGV0YWlsIjoiVGhlIGNhdXNlIGlzIHVua25vd24uIFRyeSByZWFkaW5nIGFnYWluIGxhdGVyOyBjb250YWN0IGEgbWFpbnRhaW5lciBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4iLCJpbmJveC5yZXRyeV9hdCI6IkVhcmxpZXN0IGRpcmVjdG9yeSBtYWludGVuYW5jZSByZXRyeToge3ZhbHVlfS4gUmVjb3ZlcnkgYnkgdGhhdCB0aW1lIGlzIG5vdCBndWFyYW50ZWVkLiIsImluYm94LmF1dGhfaGludCI6IlNpZ24gaW4gYWdhaW4gd2l0aCBhbiBhY2NvdW50IHRoYXQgYWxyZWFkeSBoYXMgcmVhZCBhY2Nlc3MuIiwiaW5ib3gucmV0cnlfaGludCI6IlJlYWQgdGhlIGV4aXN0aW5nIGluZGV4IGFnYWluIGxhdGVyLiBUaGlzIGRvZXMgbm90IHNjYW4gb3IgcmVidWlsZCB0aGUgZGlyZWN0b3J5LiBGYWlsZWQgcmVzdWx0cyBtYXkgYmUgY2FjaGVkIGZvciBvbmUgbWludXRlLiIsImluYm94LnJldHJ5IjoiUmVhZCB0b2RvcyBhZ2FpbiIsInN0YXRlLmZyZXNoIjoiRnJlc2giLCJzdGF0ZS51bmtub3duIjoiVW5rbm93biIsImRlY2lzaW9ucy5wYXJ0aWFsX3NvdXJjZXMiOiJTb21lIHNvdXJjZXMgYXJlIG5vdCByZWFkeToge3ZhbHVlfSIsImRlY2lzaW9ucy5tYXRlcmlhbF9mcmVzaG5lc3MiOiJNYXRlcmlhbCBmcmVzaG5lc3M6IHt2YWx1ZX0iLCJkZWNpc2lvbnMuc3RhbGVfaGludCI6IkNyZWF0ZWQgYSB3aGlsZSBhZ287IHRoZSBtYXRlcmlhbCBtYXkgYmUgc3RhbGUiLCJkZWNpc2lvbnMuaW50ZW50X3JlY29yZGVkIjoiSW50ZW50IHJlY29yZGVkLiIsImRlY2lzaW9ucy5tYXRlcmlhbF9jaGFuZ2VkIjoiVGhlIG1hdGVyaWFsIGhhcyBjaGFuZ2VkLiBSZXZpZXcgdGhlIHJlZnJlc2hlZCBkZXRhaWxzIGJlZm9yZSBjb25maXJtaW5nIGFnYWluLiIsImRlY2lzaW9ucy5pbnRlbnRfbm90X3BlbmRpbmciOiJUaGlzIGl0ZW0gaXMgbm8gbG9uZ2VyIHBlbmRpbmcuIiwiZGVjaXNpb25zLmludGVudF91bmF2YWlsYWJsZSI6IlRoZSBtYXRlcmlhbCBjYW5ub3QgYmUgdmVyaWZpZWQgcmlnaHQgbm93OyByZWZyZXNoIGFuZCB0cnkgYWdhaW4uIiwiZGVjaXNpb25zLnJlY29uY2lsaWF0aW9uX3JlY292ZXJ5IjoiUmVjb25jaWxpYXRpb24gcmVjb3ZlcnkiLCJkZWNpc2lvbnMuc3RyYXRlZ3lfcHJvbW90aW9uIjoiU3RyYXRlZ3kgcHJvbW90aW9uIiwiZGVjaXNpb25zLm93bmVyX2RlY2lzaW9uIjoiT3duZXIgZGVjaXNpb24iLCJkZWNpc2lvbnMucGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiI6IlBhcGVyIGFjY291bnQgYXBwbGljYXRpb24iLCJkZWNpc2lvbnMuY3JlZGVudGlhbF9tYWludGVuYW5jZSI6IkNyZWRlbnRpYWwgbWFpbnRlbmFuY2UiLCJkZWNpc2lvbnMuc3RyYXRlZ3kiOiJTdHJhdGVneSIsImRlY2lzaW9ucy52ZXJzaW9uIjoiVmVyc2lvbiIsImRlY2lzaW9ucy5wYXJhbWV0ZXJzIjoiUGFyYW1ldGVyIiwiZGVjaXNpb25zLnNoYWRvd19wYXNzZWQiOiJTaGFkb3cgY2hlY2sgcGFzc2VkIiwiZGVjaXNpb25zLnNoYWRvdyI6IlNoYWRvdyBtZXRyaWMiLCJkZWNpc2lvbnMucHJvbXB0LnJlY29uY2lsaWF0aW9uX3JlY292ZXJ5IjoiQWRvcHQgdGhpcyByZWNvdmVyeSBwbGFuPyBSZWNvcmRpbmcgaW50ZW50IGRvZXMgbm90IGVuYWJsZSB0aGUgYWNjb3VudC4iLCJkZWNpc2lvbnMucHJvbXB0LnN0cmF0ZWd5X3Byb21vdGlvbiI6IkFkb3B0IHRoaXMgc3RyYXRlZ3kgcHJvbW90aW9uPyIsImRlY2lzaW9ucy5wcm9tcHQub3duZXJfZGVjaXNpb24iOiJBZG9wdCB0aGlzIHN0cmF0ZWd5IGNhbmRpZGF0ZT8iLCJkZWNpc2lvbnMucHJvbXB0LnBhcGVyX2FjY291bnRfYXBwbGljYXRpb24iOiJBcHBseSB0aGlzIHByb3Bvc2FsIHRvIGEgcGFwZXIgYWNjb3VudD8iLCJkZWNpc2lvbnMucHJvbXB0LmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiJUaGlzIGNyZWRlbnRpYWwgbmVlZHMgbWFpbnRlbmFuY2U7IGhhbmRsZSBpdCBvbiB0aGUgSGVhbHRoIHBhZ2UuIiwiZGVjaXNpb25zLnNlbGVjdF9wcm9tcHQiOiJTZWxlY3QgYW4gaXRlbSBvbiB0aGUgbGVmdCB0byBzZWUgZGV0YWlscy4iLCJkZWNpc2lvbnMuc2VsZWN0X2FjY291bnQiOiJUYXJnZXQgYWNjb3VudCIsImRlY2lzaW9ucy5ub19hY2NvdW50X29wdGlvbnMiOiJObyBwYXBlciBhY2NvdW50IG9wdGlvbiBpcyBhdmFpbGFibGUsIHNvIG5vIGFwcGxpY2F0aW9uIGNhbiBiZSBzdWJtaXR0ZWQuIiwiZGVjaXNpb25zLmFwcGx5X25vdGUiOiJUaGlzIG9ubHkgc3VibWl0cyBhIHBhcGVyIGFjY291bnQgYXBwbGljYXRpb24gcmVxdWVzdDsgaXQgZG9lcyBub3QgZW5hYmxlIHRoZSBzdHJhdGVneSBvciBwbGFjZSBvcmRlcnMuIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3N1Ym1pdHRlZCI6IkFwcGxpY2F0aW9uIHJlcXVlc3Qgc3VibWl0dGVkOyB0aGUgcmVzdWx0IG5lZWRzIHJlYWQtYmFjayBjb25maXJtYXRpb24uIERvIG5vdCByZXN1Ym1pdC4iLCJkZWNpc2lvbnMuYXBwbGljYXRpb25fdW5jZXJ0YWluIjoiQW4gZWFybGllciBhcHBsaWNhdGlvbiByZXF1ZXN0IHN0aWxsIG5lZWRzIGNvbmZpcm1hdGlvbi4gRG8gbm90IHJlc3VibWl0LiIsImRlY2lzaW9ucy5vcGVuX2hlYWx0aCI6Ik9wZW4gSGVhbHRoIiwiZGVjaXNpb25zLnN1Ym1pdHRpbmciOiJTdWJtaXR0aW5n4oCmIiwiZGVjaXNpb25zLmNvbmZpcm1fYWRvcHRfbGFiZWwiOiJDb25maXJtIGFkb3B0IiwiZGVjaXNpb25zLmNvbmZpcm1fZGVjbGluZV9sYWJlbCI6IkNvbmZpcm0gZGVjbGluZSIsImRlY2lzaW9ucy5mcmVzaG5lc3MucmVhZHkiOiJSZWFkeSIsImRlY2lzaW9ucy5zb3VyY2Uub3duZXIiOiJPd25lciBkZWNpc2lvbnMiLCJkZWNpc2lvbnMuc291cmNlLnByb21vdGlvbiI6IlN0cmF0ZWd5IHByb21vdGlvbnMiLCJkZWNpc2lvbnMuc291cmNlLnJlY292ZXJ5IjoiUmVjb25jaWxpYXRpb24gcmVjb3ZlcnkiLCJkZWNpc2lvbnMuc291cmNlLmNyZWRlbnRpYWwiOiJDcmVkZW50aWFscyJ9LElfPXsiYWNjb3VudHMudW5hc3NpZ25lZF9ub3RlIjoi5Y+m5pyJIHtjb3VudH0g5p2h5b6F5Yqe5pyq57uR5a6a5Yiw5YW35L2T6LSm5oi3IiwiYWNjb3VudHMuc2VsZWN0X2FjY291bnQiOiLpgInmi6nkuIDkuKrotKbmiLfmn6XnnIvor6bmg4UiLCJhY2NvdW50cy5zZWxlY3RfYWNjb3VudF9oaW50Ijoi5LuO6LSm5oi35YiX6KGo5Lit6YCJ5oup6KaB5p+l55yL55qE6LSm5oi344CCIiwiYWNjb3VudHMuYmFja190b19saXN0Ijoi6L+U5Zue6LSm5oi35YiX6KGoIiwiYWNjb3VudHMuZHJhZnRfdmFsdWUiOiLojYnmoYjvvJp7dmFsdWV9IiwiYWNjb3VudHMuc2VjdGlvbi5zdHJhdGVneSI6IuetlueVpSIsImFjY291bnRzLnNlY3Rpb24uZGNhIjoi5a6a5oqVIiwiYWNjb3VudHMuc2VjdGlvbi5jYXNoX3Jlc2VydmUiOiLotYTph5HpooTnlZkiLCJhY2NvdW50cy5zZWN0aW9uLmluY29tZV9sYXllciI6IuaUtuWFpeWxgiIsImFjY291bnRzLnNlY3Rpb24ub3B0aW9uc19sYXllciI6Iuacn+adg+WxgiIsImFjY291bnRzLmZpZWxkLnN0cmF0ZWd5X3Byb2ZpbGUiOiLnrZbnlaXmoaPmoYgiLCJhY2NvdW50cy5maWVsZC5kY2FfbW9kZSI6IuWumuaKleaooeW8jyIsImFjY291bnRzLmZpZWxkLmRjYV9iYXNlX2ludmVzdG1lbnRfdXNkIjoi5a6a5oqV5Z+65YeG6YeR6aKd77yIVVNE77yJIiwiYWNjb3VudHMuZmllbGQucmVzZXJ2ZWRfY2FzaF9mbG9vciI6IumihOeVmeeOsOmHkeS4i+mZkO+8iFVTRO+8iSIsImFjY291bnRzLmZpZWxkLnJlc2VydmVkX2Nhc2hfcmF0aW8iOiLpooTnlZnnjrDph5Hmr5TkvosiLCJhY2NvdW50cy5maWVsZC5pbmNvbWVfbGF5ZXJfZW5hYmxlZCI6IuaUtuWFpeWxgiIsImFjY291bnRzLmZpZWxkLm9wdGlvbl9vdmVybGF5X2VuYWJsZWQiOiLmnJ/mnYPlsYIiLCJhY2NvdW50cy5ib29sLm9uIjoi5byA5ZCvIiwiYWNjb3VudHMuYm9vbC5vZmYiOiLlhbPpl60iLCJhY2NvdW50cy5kY2FfbW9kZS5maXhlZCI6IuWumumineWumuaKlSIsImFjY291bnRzLmRjYV9tb2RlLnNtYXJ0Ijoi5pm66IO95a6a5oqVIiwiYWNjb3VudHMuZm9ybS5pbmhlcml0Ijoi6Lef6ZqP5b2T5YmN5YC8IiwiYWNjb3VudHMuZm9ybS5jbGVhcl9vdmVycmlkZSI6Iua4hemZpOimhuebliIsImFjY291bnRzLmZvcm0udW5kbyI6IuaSpOmUgOS/ruaUuSIsImFjY291bnRzLmZvcm0uc2VsZWN0X3Byb2ZpbGUiOiLor7fpgInmi6nnrZbnlaXmoaPmoYgiLCJhY2NvdW50cy5mb3JtLmRjYV9wYWlyX3JlcXVpcmVkIjoi5a6a5oqV5qih5byP5LiO6YeR6aKd6ZyA6KaB5LiA6LW35aGr5YaZIiwiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RlY2ltYWwiOiLpnIDopoHmmK/kuI3lsI/kuo4gMCDnmoTmlbDlrZciLCJhY2NvdW50cy5mb3JtLmludmFsaWRfcmF0aW8iOiLmr5TkvovpnIDopoHlnKggMCDliLAgMSDkuYvpl7TvvIzkvovlpoIgMC4xNSIsImFjY291bnRzLmZvcm0uaW52YWxpZF9kY2FfYW1vdW50Ijoi5a6a5oqV6YeR6aKd6ZyA5Li65aSn5LqOIDAg55qE5pWw5a2XIiwiYWNjb3VudHMuY2hlY2tpbmciOiLmraPlnKjor7vlj5bmnIDmlrDlt67lvILigKYiLCJhY2NvdW50cy5zYXZpbmciOiLmraPlnKjkv53lrZjigKYiLCJhY2NvdW50cy5zYXZlX3Vua25vd24iOiLkv53lrZjnu5PmnpzmnKrnn6XvvJvor7fliLfmlrDlubbnoa7orqTojYnmoYjniYjmnKzvvIznoa7orqTkuYvliY3kuI3opoHph43lpI3mj5DkuqTjgIIiLCJjb250cm9scy5zdWJtaXR0aW5nIjoi5q2j5Zyo5o+Q5Lqk4oCmIiwiY29udHJvbHMuY29uZmlybS5lbmFibGVfdGl0bGUiOiLnoa7orqTlkK/nlKjov5DooYznm67moIciLCJjb250cm9scy5jb25maXJtLnJlc3VtZV90aXRsZSI6IuehruiupOaBouWkjei/kOihjOebruaghyIsImNvbnRyb2xzLmNvbmZpcm0uYXBwcm92ZV90aXRsZSI6IuehruiupOaJueWHhuetlueVpeW6lOeUqCIsImNvbnRyb2xzLmVuYWJsZV9ub3RlIjoi5b2T5YmN6aG16Z2i5pqC5LiN5pSv5oyB5o+Q5Lqk5ZCv55So6K+35rGC77yb6L+Q6KGM55uu5qCH54q25oCB5L+d5oyB5LiN5Y+Y44CCIiwiY29udHJvbHMuYXBwcm92ZV9ub3RfcmVhZHkiOiLlvZPliY3msqHmnInlj6/mibnlh4bnmoTnuq/nrZbnlaXmoaPmoYjojYnmoYjvvJvor7fliLfmlrDnoa7orqTjgIIiLCJjb250cm9scy5zdG9wX2NvbnNlcXVlbmNlIjoi5YGc5q2i5Y+q6Zi75q2i5paw55qE6Kem5Y+R77yb5LiN5Lya5pKk5Y2V44CB5bmz5LuT5oiW5riF6Zmk5Zyo6YCU6K+35rGC44CCIn0sZXY9eyJhY2NvdW50cy51bmFzc2lnbmVkX25vdGUiOiJ7Y291bnR9IG1vcmUgdG8tZG8ocykgYXJlIG5vdCBib3VuZCB0byBhIHNwZWNpZmljIGFjY291bnQiLCJhY2NvdW50cy5zZWxlY3RfYWNjb3VudCI6IlNlbGVjdCBhbiBhY2NvdW50IHRvIHNlZSBkZXRhaWxzIiwiYWNjb3VudHMuc2VsZWN0X2FjY291bnRfaGludCI6IlBpY2sgYW4gYWNjb3VudCBmcm9tIHRoZSBsaXN0LiIsImFjY291bnRzLmJhY2tfdG9fbGlzdCI6IkJhY2sgdG8gYWNjb3VudHMiLCJhY2NvdW50cy5kcmFmdF92YWx1ZSI6IkRyYWZ0OiB7dmFsdWV9IiwiYWNjb3VudHMuc2VjdGlvbi5zdHJhdGVneSI6IlN0cmF0ZWd5IiwiYWNjb3VudHMuc2VjdGlvbi5kY2EiOiJEQ0EiLCJhY2NvdW50cy5zZWN0aW9uLmNhc2hfcmVzZXJ2ZSI6IkNhc2ggcmVzZXJ2ZSIsImFjY291bnRzLnNlY3Rpb24uaW5jb21lX2xheWVyIjoiSW5jb21lIGxheWVyIiwiYWNjb3VudHMuc2VjdGlvbi5vcHRpb25zX2xheWVyIjoiT3B0aW9ucyBsYXllciIsImFjY291bnRzLmZpZWxkLnN0cmF0ZWd5X3Byb2ZpbGUiOiJTdHJhdGVneSBwcm9maWxlIiwiYWNjb3VudHMuZmllbGQuZGNhX21vZGUiOiJEQ0EgbW9kZSIsImFjY291bnRzLmZpZWxkLmRjYV9iYXNlX2ludmVzdG1lbnRfdXNkIjoiRENBIGJhc2UgYW1vdW50IChVU0QpIiwiYWNjb3VudHMuZmllbGQucmVzZXJ2ZWRfY2FzaF9mbG9vciI6IlJlc2VydmVkIGNhc2ggZmxvb3IgKFVTRCkiLCJhY2NvdW50cy5maWVsZC5yZXNlcnZlZF9jYXNoX3JhdGlvIjoiUmVzZXJ2ZWQgY2FzaCByYXRpbyIsImFjY291bnRzLmZpZWxkLmluY29tZV9sYXllcl9lbmFibGVkIjoiSW5jb21lIGxheWVyIiwiYWNjb3VudHMuZmllbGQub3B0aW9uX292ZXJsYXlfZW5hYmxlZCI6Ik9wdGlvbiBvdmVybGF5IiwiYWNjb3VudHMuYm9vbC5vbiI6Ik9uIiwiYWNjb3VudHMuYm9vbC5vZmYiOiJPZmYiLCJhY2NvdW50cy5kY2FfbW9kZS5maXhlZCI6IkZpeGVkIGFtb3VudCIsImFjY291bnRzLmRjYV9tb2RlLnNtYXJ0IjoiU21hcnQiLCJhY2NvdW50cy5mb3JtLmluaGVyaXQiOiJJbmhlcml0IGN1cnJlbnQgdmFsdWUiLCJhY2NvdW50cy5mb3JtLmNsZWFyX292ZXJyaWRlIjoiQ2xlYXIgb3ZlcnJpZGUiLCJhY2NvdW50cy5mb3JtLnVuZG8iOiJVbmRvIiwiYWNjb3VudHMuZm9ybS5zZWxlY3RfcHJvZmlsZSI6IlNlbGVjdCBhIHN0cmF0ZWd5IHByb2ZpbGUiLCJhY2NvdW50cy5mb3JtLmRjYV9wYWlyX3JlcXVpcmVkIjoiRENBIG1vZGUgYW5kIGFtb3VudCBtdXN0IGJlIHByb3ZpZGVkIHRvZ2V0aGVyIiwiYWNjb3VudHMuZm9ybS5pbnZhbGlkX2RlY2ltYWwiOiJNdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIiwiYWNjb3VudHMuZm9ybS5pbnZhbGlkX3JhdGlvIjoiUmF0aW8gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEsIGUuZy4gMC4xNSIsImFjY291bnRzLmZvcm0uaW52YWxpZF9kY2FfYW1vdW50IjoiRENBIGFtb3VudCBtdXN0IGJlIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIiwiYWNjb3VudHMuY2hlY2tpbmciOiJMb2FkaW5nIHRoZSBsYXRlc3QgZGlmZuKApiIsImFjY291bnRzLnNhdmluZyI6IlNhdmluZ+KApiIsImFjY291bnRzLnNhdmVfdW5rbm93biI6IlRoZSBzYXZlIHJlc3VsdCBpcyB1bmtub3duLiBSZWZyZXNoIGFuZCB2ZXJpZnkgdGhlIGRyYWZ0IHJldmlzaW9uIGJlZm9yZSByZXRyeWluZzsgZG8gbm90IHJlc2VuZCBibGluZGx5LiIsImNvbnRyb2xzLnN1Ym1pdHRpbmciOiJTdWJtaXR0aW5n4oCmIiwiY29udHJvbHMuY29uZmlybS5lbmFibGVfdGl0bGUiOiJDb25maXJtIGVuYWJsaW5nIHRoZSBydW50aW1lIHRhcmdldCIsImNvbnRyb2xzLmNvbmZpcm0ucmVzdW1lX3RpdGxlIjoiQ29uZmlybSByZXN1bWluZyB0aGUgcnVudGltZSB0YXJnZXQiLCJjb250cm9scy5jb25maXJtLmFwcHJvdmVfdGl0bGUiOiJDb25maXJtIGFwcHJvdmluZyB0aGUgc3RyYXRlZ3kgYXBwbGljYXRpb24iLCJjb250cm9scy5lbmFibGVfbm90ZSI6IlRoaXMgcGFnZSBjYW5ub3Qgc3VibWl0IGFuIGVuYWJsZSByZXF1ZXN0IHlldC4gVGhlIHJ1bnRpbWUgdGFyZ2V0IHN0YXRlIHN0YXlzIHVuY2hhbmdlZC4iLCJjb250cm9scy5hcHByb3ZlX25vdF9yZWFkeSI6IlRoZXJlIGlzIG5vIHByb2ZpbGUtb25seSBkcmFmdCB0byBhcHByb3ZlIHJpZ2h0IG5vdy4gUmVmcmVzaCBhbmQgdmVyaWZ5LiIsImNvbnRyb2xzLnN0b3BfY29uc2VxdWVuY2UiOiJTdG9wcGluZyBvbmx5IGJsb2NrcyBuZXcgdHJpZ2dlcnM7IGl0IGRvZXMgbm90IGNhbmNlbCBvcmRlcnMsIGNsb3NlIHBvc2l0aW9ucywgb3IgY2xlYXIgaW4tZmxpZ2h0IHJlcXVlc3RzLiJ9LHR2PXsic3RyYXRlZ2llcy5kZXRhaWxzIjoi6K+m57uG5L+h5oGvIiwic3RyYXRlZ2llcy5yZXNlYXJjaF91bmF2YWlsYWJsZSI6IueglOeptui1hOaWmeaaguS4jeWPr+eUqOOAgiIsInN0cmF0ZWdpZXMucmVzZWFyY2hfc291cmNlcyI6Iuadpea6kO+8mnt2YWx1ZX0iLCJzdHJhdGVnaWVzLnJlc2VhcmNoX2FzX29mIjoi6LWE5paZ5pel5pyf77yae3ZhbHVlfSIsInN0cmF0ZWdpZXMucmVzZWFyY2hfZXhwaXJlcyI6IuacieaViOacn+iHsyB7dmFsdWV9IiwicmVzZWFyY2guc3RhdGUuY29udGV4dF9vbmx5Ijoi5LuF5L2c6IOM5pmvIiwicmVzZWFyY2guc3RhdGUuY2FuZGlkYXRlIjoi56CU56m25YCZ6YCJIiwicmVzZWFyY2guc3RhdGUuc291cmNlX3ZlcmlmaWNhdGlvbl9yZXF1aXJlZCI6Iuadpea6kOW+heaguOWuniIsInJlc2VhcmNoLnN0YXRlLmRlZmVycmVkIjoi5pqC57yT56CU56m2Iiwic3RhdGUudW5rbm93biI6IuacquefpSIsInN0cmF0ZWdpZXMucmVzZWFyY2hfZW1wdHkiOiLmmoLml6DnoJTnqbbnur/ntKLjgIIifSxhdj17InN0cmF0ZWdpZXMuZGV0YWlscyI6IkRldGFpbHMiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX3VuYXZhaWxhYmxlIjoiUmVzZWFyY2ggZGF0YSB1bmF2YWlsYWJsZS4iLCJzdHJhdGVnaWVzLnJlc2VhcmNoX3NvdXJjZXMiOiJTb3VyY2VzOiB7dmFsdWV9Iiwic3RyYXRlZ2llcy5yZXNlYXJjaF9hc19vZiI6IkRhdGEgYXMgb2Y6IHt2YWx1ZX0iLCJzdHJhdGVnaWVzLnJlc2VhcmNoX2V4cGlyZXMiOiJFeHBpcmVzIHt2YWx1ZX0iLCJyZXNlYXJjaC5zdGF0ZS5jb250ZXh0X29ubHkiOiJDb250ZXh0IG9ubHkiLCJyZXNlYXJjaC5zdGF0ZS5jYW5kaWRhdGUiOiJSZXNlYXJjaCBjYW5kaWRhdGUiLCJyZXNlYXJjaC5zdGF0ZS5zb3VyY2VfdmVyaWZpY2F0aW9uX3JlcXVpcmVkIjoiU291cmNlIHZlcmlmaWNhdGlvbiByZXF1aXJlZCIsInJlc2VhcmNoLnN0YXRlLmRlZmVycmVkIjoiUmVzZWFyY2ggZGVmZXJyZWQiLCJzdGF0ZS51bmtub3duIjoiVW5rbm93biIsInN0cmF0ZWdpZXMucmVzZWFyY2hfZW1wdHkiOiJObyByZXNlYXJjaCBsZWFkcyB5ZXQuIn0sbnY9eyJoZWFsdGguZmFpbHVyZV9hdF9sZWFzdCI6IuiHs+WwkSB7Y291bnR9IiwiaGVhbHRoLmZhaWx1cmVfd2luZG93Ijoie2RhdGV977yI57q957qm5pe26Ze077yM5ZCr5aSP5Luk5pe277yJ77yb5LuF57uf6K6h5LuK5pel77yM5LiN5ZCr5LiL5pa5IDE0IOaXpeWOhuWPsiIsImhlYWx0aC5mYWlsdXJlX2luY29tcGxldGUiOiLopobnm5bkuI3lrozmlbTvvIzml6Dms5Xnoa7orqTlpLHotKXmgLvmlbAiLCJoZWFsdGgua3BpLnRvZGF5X3J1bnMiOiLlrozmlbTmlbDmja7otKbmiLciLCJoZWFsdGgua3BpLnRvZGF5X3J1bnNfbm90ZSI6IuacquaOpeWFpSB7bm90X2Nvbm5lY3RlZH0gwrcg5pqC5peg5pWw5o2uIHtub19kYXRhfe+8m+i/meS4pOexu+S4jeaYr+Wksei0pSIsImhlYWx0aC5rcGkub2JzZXJ2ZWQiOiLku4rml6XmnInorrDlvZXotKbmiLciLCJoZWFsdGgua3BpLmNyZWRlbnRpYWxzIjoi5Yet6K+BIiwiaGVhbHRoLmtwaS5yZWNlbnRfZmFpbHVyZSI6IuS7iuaXpeWksei0pei0puaItyIsImhlYWx0aC5ncmlkX3JlYWRfZmFpbGVkX25vdGUiOiLpg6jliIbml6XmnJ/nmoTljoblj7Lor7vlj5blpLHotKXvvIzlr7nlupTljZXlhYPmoLzmmL7npLror7vlj5blpLHotKXvvJvov5nkuI3ku6PooajlvZPlpKnmsqHmnInov5DooYzjgIIiLCJoZWFsdGguZ3JpZC5pbmNvbXBsZXRlIjoi5pyq5a6M5oiQIiwiaGVhbHRoLmNvbC5jcmVkZW50aWFsIjoi5Yet6K+BIiwiaGVhbHRoLmNvbC5waGFzZSI6IumYtuautSIsImhlYWx0aC5jb2wuZXhwaXJlcyI6IuWIsOacn+aXtumXtCIsImhlYWx0aC5jb2wuY2hhbm5lbCI6Iua4oOmBkyIsImhlYWx0aC5jb2wuc3VtbWFyeSI6IuWGheWuuSIsImhlYWx0aC5kZXRhaWwuc3RhcnRlZCI6IuW8gOWniyIsImhlYWx0aC5kZXRhaWwuZmluaXNoZWQiOiLnu5PmnZ8iLCJoZWFsdGguYWNjb3VudF9mcmFjdGlvbiI6Intjb3VudH0ve3RvdGFsfSIsImhlYWx0aC5zdGF0ZV9jb3VudHMiOiLku4rml6XotKbmiLfnirbmgIHvvIjlt7Lop4LmtYvvvIkiLCJoZWFsdGgucnVuX3N0YXRlLnN1Y2NlZWRlZCI6IuaIkOWKnyIsImhlYWx0aC5ydW5fc3RhdGUuZmFpbGVkIjoi5aSx6LSlIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ibG9ja2VkIjoi6KKr5oum5oiqIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ub19kYXRhIjoi5pqC5peg5pWw5o2uIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ub3RfY29ubmVjdGVkIjoi5pyq5o6l5YWlIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ub3RfcnVuIjoi5bCa5pyq5Yiw5pyf5oiW6Z2e6L+Q6KGM5pe25q61IiwiaGVhbHRoLnJ1bl9zdGF0ZS51bmtub3duIjoi5pyq55+lIiwiaGVhbHRoLnJ1bl9zdGF0ZS5yZWFkX2ZhaWxlZCI6Iuivu+WPluWksei0pSIsImhlYWx0aC5ub3RpZmljYXRpb25zX3Njb3BlIjoi5LuF6KaG55uW5pyA6L+RIDUg5qyh5Li75YiG5pSv5pel5oql5rWB56iL55qE5YWs5byA5Y+R6YCB5Zue5omn77yM5LiN5ZCr5ZCE5bmz5Y+w55qE5YWo6YOo5Y2z5pe26YCa55+l44CC5rWB56iL5pe26Ze05LiN5Luj6KGo5Y+R6YCB5pe26Ze044CCIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfZW1wdHkiOiLmmoLml6DpgJrnn6Xlm57miaciLCJoZWFsdGgubm90aWZpY2F0aW9uc19wYXJ0aWFsIjoi6YOo5YiG5Zue5omn6K+75Y+W5aSx6LSl77yM5b2T5YmN5YiX6KGo5LiN5a6M5pW044CCIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9idXNpbmVzc19kYXkiOiLkuJrliqHml6UiLCJoZWFsdGgubm90aWZpY2F0aW9uX2RlbGl2ZXJlZCI6IuW3sumAgei+viIsImhlYWx0aC5ub3RpZmljYXRpb25feWVzIjoi5pivIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9ubyI6IuWQpiIsImhlYWx0aC5ub3RpZmljYXRpb25fc2VudF9hdCI6IuWPkemAgeaXtumXtCIsImhlYWx0aC5ub3RpZmljYXRpb25fd29ya2Zsb3dfdGltZSI6Iua1geeoi+abtOaWsOaXtumXtCIsImhlYWx0aC5ub3RpZmljYXRpb25fc291cmNlIjoi5p2l5rqQIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9ydW4iOiLov5DooYwge2lkfSDCtyDnrKwge2F0dGVtcHR9IOasoSIsImhlYWx0aC5ub3RpZmljYXRpb24uZGVsaXZlcmVkIjoi5Y+R6YCB5oiQ5YqfIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5zZW5kX2ZhaWxlZCI6IuWPkemAgeWksei0pSIsImhlYWx0aC5ub3RpZmljYXRpb24uYmxvY2tlZF9taXNzaW5nX3NlY3JldHMiOiLlj5HpgIHphY3nva7nvLrlpLEiLCJoZWFsdGgubm90aWZpY2F0aW9uLmJsb2NrZWRfcmVzZW5kX2d1YXJkIjoi5Y+R6YCB6KKr5oum5oiqIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5idXNpbmVzc19kaWdlc3RfZmFpbGVkIjoi5pel5oql6LWE5paZ5aSx6LSlIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5za2lwcGVkX2R1cGxpY2F0ZSI6IuW3sui3s+i/h+mHjeWkjeWPkemAgSIsImhlYWx0aC5ub3RpZmljYXRpb24uc2tpcHBlZF9lbXB0eSI6IuaXoOWGheWuue+8jOW3sui3s+i/hyIsImhlYWx0aC5ub3RpZmljYXRpb24ucm91dGVfY2hlY2siOiLlj5HpgIHot6/lvoTmo4Dmn6UiLCJoZWFsdGgubm90aWZpY2F0aW9uLmRyeV9ydW4iOiLmvJTnu4MiLCJoZWFsdGgubm90aWZpY2F0aW9uLnRlc3RfbWVzc2FnZSI6Iua1i+ivlea2iOaBryIsImhlYWx0aC5ub3RpZmljYXRpb24udW5rbm93biI6Iue7k+aenOacquefpSIsImhlYWx0aC5ub3RpZmljYXRpb24uc2VuZGVyX3NraXBwZWQiOiLlj5HpgIHmraXpqqTlt7Lot7Pov4ciLCJoZWFsdGgubm90aWZpY2F0aW9uLnJlY2VpcHRfbWlzc2luZyI6IuacquaJvuWIsOWbnuaJpyIsImhlYWx0aC5ub3RpZmljYXRpb24ucmVjZWlwdF9leHBpcmVkIjoi5Zue5omn5bey6L+H5pyfIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5yZWFkX2ZhaWxlZCI6IuWbnuaJp+ivu+WPluWksei0pSIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkZJUlNUX1NFTkQiOiLpppbmrKHlj5HpgIEiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5BTFJFQURZX0RFTElWRVJFRCI6IuatpOWJjeW3sumAgei+viIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkVYUExJQ0lUX1RFU1RfUkVTRU5EIjoi5piO56Gu6K+35rGC55qE5rWL6K+V6YeN5Y+RIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uSElTVE9SWV9VTkFWQUlMQUJMRSI6IuaXoOazleivu+WPluWPkemAgeWOhuWPsiIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkRFTElWRVJZX1VOQ0VSVEFJTiI6IuatpOWJjemAgei+vue7k+aenOS4jeehruWumiIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkNPTkZJR1VSQVRJT05fSU5WQUxJRCI6IuWPkemAgemFjee9ruaXoOaViCIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLlVOU1VQUE9SVEVEX0VWRU5UIjoi5LiN5pSv5oyB55qE5LqL5Lu2IiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uTE9DQUxfRVhFQ1VUSU9OIjoi5pys5Zyw5omn6KGMIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uRFJZX1JVTiI6Iua8lOe7g++8jOS4jeWPkemAgSJ9LGx2PXsiaGVhbHRoLmZhaWx1cmVfYXRfbGVhc3QiOiJBdCBsZWFzdCB7Y291bnR9IiwiaGVhbHRoLmZhaWx1cmVfd2luZG93Ijoie2RhdGV9IChOZXcgWW9yayB0aW1lLCBEU1Qgb2JzZXJ2ZWQpOyB0b2RheSBvbmx5LCBleGNsdWRlcyB0aGUgMTQtZGF5IGhpc3RvcnkgYmVsb3ciLCJoZWFsdGguZmFpbHVyZV9pbmNvbXBsZXRlIjoiSW5jb21wbGV0ZSBjb3ZlcmFnZTsgdG90YWwgZmFpbHVyZXMgdW5rbm93biIsImhlYWx0aC5rcGkudG9kYXlfcnVucyI6IkFjY291bnRzIHdpdGggY29tcGxldGUgZGF0YSIsImhlYWx0aC5rcGkudG9kYXlfcnVuc19ub3RlIjoiTm90IGNvbm5lY3RlZDoge25vdF9jb25uZWN0ZWR9IMK3IG5vIGRhdGE6IHtub19kYXRhfTsgbmVpdGhlciBpcyBhIGZhaWx1cmUiLCJoZWFsdGgua3BpLm9ic2VydmVkIjoiQWNjb3VudHMgd2l0aCB0b2RheSdzIHJlY29yZHMiLCJoZWFsdGgua3BpLmNyZWRlbnRpYWxzIjoiQ3JlZGVudGlhbHMiLCJoZWFsdGgua3BpLnJlY2VudF9mYWlsdXJlIjoiVG9kYXkncyBmYWlsZWQgYWNjb3VudHMiLCJoZWFsdGguZ3JpZF9yZWFkX2ZhaWxlZF9ub3RlIjoiSGlzdG9yeSBmb3Igc29tZSBkYXRlcyBmYWlsZWQgdG8gbG9hZDsgdGhvc2UgY2VsbHMgc2hvdyBhIHJlYWQgZmFpbHVyZS4gVGhpcyBkb2VzIG5vdCBtZWFuIG5vdGhpbmcgcmFuLiIsImhlYWx0aC5ncmlkLmluY29tcGxldGUiOiJJbmNvbXBsZXRlIiwiaGVhbHRoLmNvbC5jcmVkZW50aWFsIjoiQ3JlZGVudGlhbCIsImhlYWx0aC5jb2wucGhhc2UiOiJQaGFzZSIsImhlYWx0aC5jb2wuZXhwaXJlcyI6IkV4cGlyZXMiLCJoZWFsdGguY29sLmNoYW5uZWwiOiJDaGFubmVsIiwiaGVhbHRoLmNvbC5zdW1tYXJ5IjoiU3VtbWFyeSIsImhlYWx0aC5kZXRhaWwuc3RhcnRlZCI6IlN0YXJ0ZWQiLCJoZWFsdGguZGV0YWlsLmZpbmlzaGVkIjoiRmluaXNoZWQiLCJoZWFsdGguYWNjb3VudF9mcmFjdGlvbiI6Intjb3VudH0ve3RvdGFsfSIsImhlYWx0aC5zdGF0ZV9jb3VudHMiOiJUb2RheSdzIGFjY291bnQgc3RhdGVzIChvYnNlcnZlZCkiLCJoZWFsdGgucnVuX3N0YXRlLnN1Y2NlZWRlZCI6IlN1Y2NlZWRlZCIsImhlYWx0aC5ydW5fc3RhdGUuZmFpbGVkIjoiRmFpbGVkIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ibG9ja2VkIjoiQmxvY2tlZCIsImhlYWx0aC5ydW5fc3RhdGUubm9fZGF0YSI6Ik5vIGRhdGEiLCJoZWFsdGgucnVuX3N0YXRlLm5vdF9jb25uZWN0ZWQiOiJOb3QgY29ubmVjdGVkIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ub3RfcnVuIjoiTm90IGR1ZSBvciBvdXRzaWRlIHJ1biB3aW5kb3ciLCJoZWFsdGgucnVuX3N0YXRlLnVua25vd24iOiJVbmtub3duIiwiaGVhbHRoLnJ1bl9zdGF0ZS5yZWFkX2ZhaWxlZCI6IlJlYWQgZmFpbGVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfc2NvcGUiOiJQdWJsaWMgc2VuZCByZWNlaXB0cyBmcm9tIHRoZSBsYXRlc3QgNSBtYWluLWJyYW5jaCBkYWlseSBkaWdlc3Qgd29ya2Zsb3dzIG9ubHk7IGV4Y2x1ZGVzIG90aGVyIHBsYXRmb3JtIG5vdGlmaWNhdGlvbnMuIFdvcmtmbG93IHRpbWUgaXMgbm90IHNlbmQgdGltZS4iLCJoZWFsdGgubm90aWZpY2F0aW9uc19lbXB0eSI6Ik5vIG5vdGlmaWNhdGlvbiByZWNlaXB0cyIsImhlYWx0aC5ub3RpZmljYXRpb25zX3BhcnRpYWwiOiJTb21lIHJlY2VpcHRzIGNvdWxkIG5vdCBiZSByZWFkOyB0aGlzIGxpc3QgaXMgaW5jb21wbGV0ZS4iLCJoZWFsdGgubm90aWZpY2F0aW9uX2J1c2luZXNzX2RheSI6IkJ1c2luZXNzIGRheSIsImhlYWx0aC5ub3RpZmljYXRpb25fZGVsaXZlcmVkIjoiRGVsaXZlcmVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl95ZXMiOiJZZXMiLCJoZWFsdGgubm90aWZpY2F0aW9uX25vIjoiTm8iLCJoZWFsdGgubm90aWZpY2F0aW9uX3NlbnRfYXQiOiJTZW50IGF0IiwiaGVhbHRoLm5vdGlmaWNhdGlvbl93b3JrZmxvd190aW1lIjoiV29ya2Zsb3cgdXBkYXRlZCBhdCIsImhlYWx0aC5ub3RpZmljYXRpb25fc291cmNlIjoiU291cmNlIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9ydW4iOiJSdW4ge2lkfSDCtyBhdHRlbXB0IHthdHRlbXB0fSIsImhlYWx0aC5ub3RpZmljYXRpb24uZGVsaXZlcmVkIjoiU2VudCBzdWNjZXNzZnVsbHkiLCJoZWFsdGgubm90aWZpY2F0aW9uLnNlbmRfZmFpbGVkIjoiU2VuZCBmYWlsZWQiLCJoZWFsdGgubm90aWZpY2F0aW9uLmJsb2NrZWRfbWlzc2luZ19zZWNyZXRzIjoiU2VuZCBjb25maWd1cmF0aW9uIG1pc3NpbmciLCJoZWFsdGgubm90aWZpY2F0aW9uLmJsb2NrZWRfcmVzZW5kX2d1YXJkIjoiU2VuZCBibG9ja2VkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5idXNpbmVzc19kaWdlc3RfZmFpbGVkIjoiRGlnZXN0IHNvdXJjZSBmYWlsdXJlIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5za2lwcGVkX2R1cGxpY2F0ZSI6IkR1cGxpY2F0ZSBzZW5kIHNraXBwZWQiLCJoZWFsdGgubm90aWZpY2F0aW9uLnNraXBwZWRfZW1wdHkiOiJFbXB0eSBkaWdlc3Qgc2tpcHBlZCIsImhlYWx0aC5ub3RpZmljYXRpb24ucm91dGVfY2hlY2siOiJSb3V0ZSBjaGVjayIsImhlYWx0aC5ub3RpZmljYXRpb24uZHJ5X3J1biI6IkRyeSBydW4iLCJoZWFsdGgubm90aWZpY2F0aW9uLnRlc3RfbWVzc2FnZSI6IlRlc3QgbWVzc2FnZSIsImhlYWx0aC5ub3RpZmljYXRpb24udW5rbm93biI6IlVua25vd24gcmVzdWx0IiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5zZW5kZXJfc2tpcHBlZCI6IlNlbmQgc3RlcCBza2lwcGVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5yZWNlaXB0X21pc3NpbmciOiJSZWNlaXB0IG1pc3NpbmciLCJoZWFsdGgubm90aWZpY2F0aW9uLnJlY2VpcHRfZXhwaXJlZCI6IlJlY2VpcHQgZXhwaXJlZCIsImhlYWx0aC5ub3RpZmljYXRpb24ucmVhZF9mYWlsZWQiOiJSZWNlaXB0IHJlYWQgZmFpbGVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uRklSU1RfU0VORCI6IkZpcnN0IHNlbmQiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5BTFJFQURZX0RFTElWRVJFRCI6IlByZXZpb3VzbHkgZGVsaXZlcmVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uRVhQTElDSVRfVEVTVF9SRVNFTkQiOiJFeHBsaWNpdCB0ZXN0IHJlc2VuZCIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkhJU1RPUllfVU5BVkFJTEFCTEUiOiJTZW5kIGhpc3RvcnkgdW5hdmFpbGFibGUiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5ERUxJVkVSWV9VTkNFUlRBSU4iOiJQcmV2aW91cyBkZWxpdmVyeSB1bmNlcnRhaW4iLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5DT05GSUdVUkFUSU9OX0lOVkFMSUQiOiJJbnZhbGlkIHNlbmQgY29uZmlndXJhdGlvbiIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLlVOU1VQUE9SVEVEX0VWRU5UIjoiVW5zdXBwb3J0ZWQgZXZlbnQiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5MT0NBTF9FWEVDVVRJT04iOiJMb2NhbCBleGVjdXRpb24iLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5EUllfUlVOIjoiRHJ5IHJ1bjsgbm8gc2VuZCJ9LEtpPXsuLi5aXywuLi5LXywuLi4kXywuLi5GXywuLi5JXywuLi50diwuLi5udn0sSmk9ey4uLlZfLC4uLkpfLC4uLldfLC4uLlBfLC4uLmV2LC4uLmF2LC4uLmx2fTtmb3IoY29uc3QgbyBvZiBPYmplY3Qua2V5cyhLaSkpaWYoIShvIGluIEppKSl0aHJvdyBuZXcgRXJyb3IoYGkxOG46IG1pc3NpbmcgZW4gdHJhbnNsYXRpb24gZm9yICR7b31gKTtmb3IoY29uc3QgbyBvZiBPYmplY3Qua2V5cyhKaSkpaWYoIShvIGluIEtpKSl0aHJvdyBuZXcgRXJyb3IoYGkxOG46IG1pc3NpbmcgemggdHJhbnNsYXRpb24gZm9yICR7b31gKTtmdW5jdGlvbiBaZChvLGYsbT17fSl7Y29uc3Qgcz1vPT09InpoIj9LaTpKaSxUPWYuc3RhcnRzV2l0aCgic3RhdGUuIik/InN0YXRlLnVua25vd25fc3RhdHVzIjpmLnN0YXJ0c1dpdGgoInJlYXNvbi4iKT8icmVhc29uLnVua25vd24iOmYuc3RhcnRzV2l0aCgicmVzZWFyY2guc3RhdGUuIik/InN0YXRlLnVua25vd25fc3RhdHVzIjpudWxsO3JldHVybihzW2ZdPz8obz09PSJ6aCI/SmlbZl06S2lbZl0pPz8oVD9zW1RdOmYpKS5yZXBsYWNlKC9ceyhcdyspXH0vZywodyxFKT0+RSBpbiBtP1N0cmluZyhtW0VdKTp3KX1jb25zdCBWZD1ZLmNyZWF0ZUNvbnRleHQoInpoIik7ZnVuY3Rpb24gWmkoe2xhbmd1YWdlOm8sY2hpbGRyZW46Zn0pe3JldHVybiB5LmpzeChWZC5Qcm92aWRlcix7dmFsdWU6byxjaGlsZHJlbjpmfSl9ZnVuY3Rpb24gSGEoKXtyZXR1cm4gWS51c2VDb250ZXh0KFZkKX1mdW5jdGlvbiBUdCgpe2NvbnN0IG89SGEoKTtyZXR1cm4oZixtKT0+WmQobyxmLG0pfWNvbnN0IERsPXt0aGVtZToic3lzdGVtIixsYW5ndWFnZToiZW4iLHVwRG93bjoiZ3JlZW4tdXAiLGhpZGVBbW91bnRzOiExLGRlZmF1bHRSYW5nZToiWVREIn0sd3Q9e3RoZW1lOiJxc2wtdGhlbWUtcHJlZmVyZW5jZSIsbGFuZ3VhZ2U6InFzbC1zd2l0Y2gtbGFuZyIsdXBEb3duOiJxc2wtdXBkb3duLXByZWZlcmVuY2UiLGhpZGVBbW91bnRzOiJxc2wtaGlkZS1hbW91bnRzIixkZWZhdWx0UmFuZ2U6InFzbC1kZWZhdWx0LXJhbmdlIn07ZnVuY3Rpb24geGwobyl7dHJ5e3JldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0obyl9Y2F0Y2h7cmV0dXJuIG51bGx9fWZ1bmN0aW9uIHpsKG8sZil7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShvLGYpfWNhdGNoe319ZnVuY3Rpb24gaXYobyl7cmV0dXJuIG89PT0ibGlnaHQifHxvPT09ImRhcmsifHxvPT09InN5c3RlbSI/bzpEbC50aGVtZX1mdW5jdGlvbiB1dihvKXtpZihvPT09InpoInx8bz09PSJ6aC1DTiIpcmV0dXJuInpoIjtpZihvPT09ImVuIilyZXR1cm4iZW4iO2NvbnN0IGY9dHlwZW9mIG5hdmlnYXRvcj4idSI/W106bmF2aWdhdG9yLmxhbmd1YWdlcz8ubGVuZ3RoP25hdmlnYXRvci5sYW5ndWFnZXM6W25hdmlnYXRvci5sYW5ndWFnZV07Zm9yKGNvbnN0IG0gb2YgZil7aWYoL156aCg/Oi18JCkvaS50ZXN0KG0pKXJldHVybiJ6aCI7aWYoL15lbig/Oi18JCkvaS50ZXN0KG0pKXJldHVybiJlbiJ9cmV0dXJuIERsLmxhbmd1YWdlfWZ1bmN0aW9uIGN2KG8pe3JldHVybiBvPT09InJlZC11cCJ8fG89PT0iZ3JlZW4tdXAiP286RGwudXBEb3dufWZ1bmN0aW9uIG92KG8pe3JldHVybiBvPT09IjFNInx8bz09PSIzTSJ8fG89PT0iWVREInx8bz09PSIxWSJ8fG89PT0iQUxMIj9vOkRsLmRlZmF1bHRSYW5nZX1mdW5jdGlvbiBLZCgpe3JldHVybnt0aGVtZTppdih4bCh3dC50aGVtZSkpLGxhbmd1YWdlOnV2KHhsKHd0Lmxhbmd1YWdlKSksdXBEb3duOmN2KHhsKHd0LnVwRG93bikpLGhpZGVBbW91bnRzOnhsKHd0LmhpZGVBbW91bnRzKT09PSIxIixkZWZhdWx0UmFuZ2U6b3YoeGwod3QuZGVmYXVsdFJhbmdlKSl9fWZ1bmN0aW9uIHN2KG8pe3psKHd0LnRoZW1lLG8udGhlbWUpLHpsKHd0Lmxhbmd1YWdlLG8ubGFuZ3VhZ2UpLHpsKHd0LnVwRG93bixvLnVwRG93biksemwod3QuaGlkZUFtb3VudHMsby5oaWRlQW1vdW50cz8iMSI6IjAiKSx6bCh3dC5kZWZhdWx0UmFuZ2Usby5kZWZhdWx0UmFuZ2UpfWZ1bmN0aW9uIEpkKG8sZil7cmV0dXJuIG89PT0ic3lzdGVtIj9mPyJkYXJrIjoibGlnaHQiOm99Y29uc3QgJGQ9WS5jcmVhdGVDb250ZXh0KG51bGwpLFdkPVkuY3JlYXRlQ29udGV4dCh7cHJlZnM6RGwscmVzb2x2ZWRUaGVtZToibGlnaHQiLHNldFByZWZzOigpPT57fX0pO2Z1bmN0aW9uIFJvKCl7cmV0dXJuIFkudXNlQ29udGV4dChXZCl9Y29uc3QgRmQ9WS5jcmVhdGVDb250ZXh0KHtzY29wZToiYWxsIixvcHRpb25zOltdLHNldFNjb3BlOigpPT57fX0pO2Z1bmN0aW9uIFBkKCl7cmV0dXJuIFkudXNlQ29udGV4dChGZCl9Y29uc3QgSWQ9WS5jcmVhdGVDb250ZXh0KCgpPT57fSk7ZnVuY3Rpb24gcnYoKXtyZXR1cm4gWS51c2VDb250ZXh0KElkKX1jb25zdCBmdj1bIm92ZXJ2aWV3IiwicGVyZm9ybWFuY2UiLCJkZWNpc2lvbnMiLCJhY2NvdW50cyIsInN0cmF0ZWdpZXMiLCJoZWFsdGgiXSxlaD0iYWxsIjtmdW5jdGlvbiBqZChvKXtjb25zdCBmPW5ldyBVUkxTZWFyY2hQYXJhbXMobyk7bGV0IG09Zi5nZXQoInBhZ2UiKTtjb25zdCBzPWYuZ2V0KCJ3b3Jrc3BhY2UiKTtyZXR1cm4hbSYmcz09PSJyZXNlYXJjaCImJihtPSJkZWNpc2lvbnMiKSwhbSYmcz09PSJhY2NvdW50cyImJihtPSJhY2NvdW50cyIpLCghbXx8IWZ2LmluY2x1ZGVzKG0pKSYmKG09Im92ZXJ2aWV3Iikse3BhZ2U6bSxzY29wZTpmLmdldCgic2NvcGUiKXx8ZWgsYWNjb3VudDpmLmdldCgiYWNjb3VudCIpLHRhYjpmLmdldCgidGFiIil9fWZ1bmN0aW9uIGR2KG8pe2NvbnN0IGY9bmV3IFVSTFNlYXJjaFBhcmFtcztvLnBhZ2UhPT0ib3ZlcnZpZXciJiZmLnNldCgicGFnZSIsby5wYWdlKSxvLnNjb3BlIT09ZWgmJmYuc2V0KCJzY29wZSIsby5zY29wZSksby5hY2NvdW50JiZmLnNldCgiYWNjb3VudCIsby5hY2NvdW50KSxvLnRhYiYmZi5zZXQoInRhYiIsby50YWIpO2NvbnN0IG09Zi50b1N0cmluZygpO3JldHVybiBtP2A/JHttfWA6IiJ9ZnVuY3Rpb24gSGQobyl7Y29uc3QgZj1kdihvKTt3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoe3FzbDpvfSwiIixgJHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9JHtmfWApfWxldCB0aD1udWxsO2Z1bmN0aW9uIEp2KG8pe3RoPW99ZnVuY3Rpb24gQW8oKXtyZXR1cm4gdGh9Y2xhc3MgRG8gZXh0ZW5kcyBFcnJvcntzdGF0dXM7Y29uc3RydWN0b3IoZil7c3VwZXIoZj09PTQwMT8ic2Vzc2lvbl9leHBpcmVkIjoiYWNjZXNzX2RlbmllZCIpLHRoaXMuc3RhdHVzPWZ9fWNsYXNzIGFoIGV4dGVuZHMgRXJyb3J7c3RhdHVzO3BheWxvYWQ7Y29uc3RydWN0b3IoZixtKXtjb25zdCBzPW0/LmVycm9yO3N1cGVyKHN8fGBodHRwXyR7Zn1gKSx0aGlzLnN0YXR1cz1mLHRoaXMucGF5bG9hZD1tfX1sZXQgRmk9MCxObz0wO2Z1bmN0aW9uIGh2KCl7cmV0dXJuIE5vfWZ1bmN0aW9uIE9vKCl7RmkrPTEsTm8rPTEsd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJxc2wtcHJpdmF0ZS1zZXNzaW9uLWludmFsaWQiKSl9ZnVuY3Rpb24gJGkobyl7aWYobyE9PUZpKXRocm93IG5ldyBFcnJvcigic2Vzc2lvbl9pbnZhbGlkYXRlZCIpfWFzeW5jIGZ1bmN0aW9uIERlKG8pe2NvbnN0IGY9RmksbT1hd2FpdCBmZXRjaChvLHttZXRob2Q6IkdFVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixjYWNoZToibm8tc3RvcmUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSk7aWYobS5zdGF0dXM9PT00MDF8fG0uc3RhdHVzPT09NDAzKXRocm93IE9vKCksbmV3IERvKG0uc3RhdHVzKTtpZigkaShmKSwhbS5vayl7Y29uc3QgVD1hd2FpdCBtLmpzb24oKS5jYXRjaCgoKT0+KHt9KSk7dGhyb3cgbmV3IGFoKG0uc3RhdHVzLFQpfWNvbnN0IHM9YXdhaXQgbS5qc29uKCk7cmV0dXJuICRpKGYpLHN9YXN5bmMgZnVuY3Rpb24gbmgobyxmKXtjb25zdCBtPUZpLHM9YXdhaXQgZmV0Y2gobyx7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGNhY2hlOiJuby1zdG9yZSIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoZil9KTtpZihzLnN0YXR1cz09PTQwMXx8cy5zdGF0dXM9PT00MDMpdGhyb3cgT28oKSxuZXcgRG8ocy5zdGF0dXMpOyRpKG0pO2NvbnN0IFQ9YXdhaXQgcy5qc29uKCkuY2F0Y2goKCk9Pih7fSkpO2lmKCRpKG0pLCFzLm9rfHxUPy5vaz09PSExKXRocm93IG5ldyBhaChzLnN0YXR1cyxUKTtyZXR1cm4gTm8rPTEsVH1mdW5jdGlvbiB4byhvKXtyZXR1cm5gJHtvLnBsYXRmb3JtfToke28uYWNjb3VudF9hbGlhc31gfWZ1bmN0aW9uIG12KG8sZil7aWYoIWYpcmV0dXJuO2NvbnN0IG09by5maW5kKFQ9PnhvKFQpPT09Zik7aWYobSlyZXR1cm4gbTtjb25zdCBzPW8uZmlsdGVyKFQ9PlQuYWNjb3VudF9hbGlhcz09PWYpO3JldHVybiBzLmxlbmd0aD09PTE/c1swXTp2b2lkIDB9ZnVuY3Rpb24gbGgobyxmLG0pe3JldHVybiBvPy5hY2NvdW50T3B0aW9ucz8uW2ZdPy5maW5kKHM9PnMua2V5PT09bSl9ZnVuY3Rpb24gQmQobyxmKXtyZXR1cm4gbGgobyxmLnBsYXRmb3JtLGYuYWNjb3VudF9hbGlhcyk/LmFjY291bnRfc2VsZWN0b3I/LnRyaW0oKXx8Zi5hY2NvdW50X2FsaWFzfWZ1bmN0aW9uICR2KG8sZil7Y29uc3QgbT1uZXcgTWFwO2Zvcihjb25zdCBzIG9mIG8pe2xldCBUPW0uZ2V0KHMucGxhdGZvcm0pO1R8fG0uc2V0KHMucGxhdGZvcm0sVD1uZXcgTWFwKTtjb25zdCB3PUJkKGYscykudG9VcHBlckNhc2UoKSxFPVQuZ2V0KHcpO0U/RS5wdXNoKHMpOlQuc2V0KHcsW3NdKX1yZXR1cm5bLi4ubV0ubWFwKChbcyxUXSk9Pih7cGxhdGZvcm06cyxhY2NvdW50czpbLi4uVC52YWx1ZXMoKV0ubWFwKE89Pih7aWRlbnRpdHk6QmQoZixPWzBdKSxyb3dzOk99KSl9KSl9ZnVuY3Rpb24gaWgobyxmKXtjb25zdCBtPW8uaW5kZXhPZigiOiIpO3JldHVybiBtPjA/e3Njb3BlOm8uc2xpY2UobSsxKSxwbGF0Zm9ybTpvLnNsaWNlKDAsbSl9OntzY29wZTpvLHBsYXRmb3JtOmZ9fWNvbnN0IFlkPXt9O2Z1bmN0aW9uIF92KCl7cmV0dXJuIERlKCIvYXBpL3Nlc3Npb24iKX1sZXQgVmk9bnVsbCxBbj1udWxsO2Z1bmN0aW9uIHZ2KG8pe2NvbnN0IGY9TnVtYmVyKG8/WWQ/LlZJVEVfSU5CT1hfRkFJTFVSRV9CQUNLT0ZGX01TOllkPy5WSVRFX0lOQk9YX0NBQ0hFX01TKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGYpJiZmPj0xZTMmJmY8PTNlNT9mOm8/NmU0OjE1ZTN9ZnVuY3Rpb24geXYobz0hMSl7Y29uc3QgZj1odigpO3JldHVybiBBbiYmQW4ucmV2aXNpb249PT1mJiZEYXRlLm5vdygpPEFuLnVudGlsJiYoIW98fEFuLnZhbHVlLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpP1Byb21pc2UucmVzb2x2ZShBbi52YWx1ZSk6KFZpfHwoVmk9RGUoIi9hcGkvZGVjaXNpb25zLWluYm94IikudGhlbihtPT4oQW49e3ZhbHVlOm0sdW50aWw6RGF0ZS5ub3coKSt2dihtLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCIpLHJldmlzaW9uOmZ9LG0pKS5maW5hbGx5KCgpPT57Vmk9bnVsbH0pKSxWaSl9ZnVuY3Rpb24gV3Yobz0yNSxmKXtjb25zdCBtPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2xpbWl0OlN0cmluZyhvKX0pO3JldHVybiBmJiZtLnNldCgiY3Vyc29yIixmKSxEZShgL2FwaS9vd25lci1kZWNpc2lvbnMvaGlzdG9yeT8ke219YCl9ZnVuY3Rpb24gcHYoKXtyZXR1cm4gRGUoIi9hcGkvYWNjb3VudHMiKX1mdW5jdGlvbiBGdihvLGYpe2NvbnN0IG09bmV3IFVSTFNlYXJjaFBhcmFtcyh7YWNjb3VudDpvfSk7cmV0dXJuIGYmJm0uc2V0KCJwbGF0Zm9ybSIsZiksRGUoYC9hcGkvYWNjb3VudC1zZXR0aW5ncy9kaWZmPyR7bX1gKX1mdW5jdGlvbiBQdihvLGYsbT0yNSxzKXtjb25zdCBUPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2FjY291bnQ6byxsaW1pdDpTdHJpbmcobSl9KTtyZXR1cm4gZiYmVC5zZXQoInBsYXRmb3JtIixmKSxzJiZULnNldCgiY3Vyc29yIixzKSxEZShgL2FwaS9hY2NvdW50LXNldHRpbmdzL2hpc3Rvcnk/JHtUfWApfWZ1bmN0aW9uIEl2KG8pe3JldHVybiBuaCgiL2FwaS9hY2NvdW50LXNldHRpbmdzL2RyYWZ0IixvKX1mdW5jdGlvbiBleShvLGYpe2NvbnN0IG09bmV3IFVSTFNlYXJjaFBhcmFtcyh7cGxhdGZvcm06byxrZXk6Zn0pO3JldHVybiBEZShgL2FwaS9hY2NvdW50LXNldHRpbmdzPyR7bX1gKX1mdW5jdGlvbiB0eSgpe3JldHVybiBEZSgiL2FwaS9ydW50aW1lL3RvZGF5Iil9ZnVuY3Rpb24gYXkoKXtyZXR1cm4gRGUoIi9hcGkvc3RyYXRlZ2llcy9zdW1tYXJ5Iil9ZnVuY3Rpb24gbnkobz0yNSxmKXtjb25zdCBtPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2xpbWl0OlN0cmluZyhvKX0pO3JldHVybiBEZShgL2FwaS9ub3RpZmljYXRpb25zL3NlbmQtbG9nPyR7bX1gKX1mdW5jdGlvbiBseShvLGYpe2NvbnN0IG09bmV3IFVSTFNlYXJjaFBhcmFtcyh7YWNjb3VudDpvfSk7cmV0dXJuIGYmJm0uc2V0KCJwbGF0Zm9ybSIsZiksRGUoYC9hcGkvYWNjb3VudHMvcnVuLWNvbnRyb2xzPyR7bX1gKX1mdW5jdGlvbiBObChvLGYsbSl7Y29uc3Qgcz1paChvLG0pLFQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh7c2NvcGU6cy5zY29wZSxyYW5nZTpmfSk7cmV0dXJuIHMucGxhdGZvcm0mJlQuc2V0KCJwbGF0Zm9ybSIscy5wbGF0Zm9ybSksU3RyaW5nKFQpfWZ1bmN0aW9uIGl5KG8sZixtKXtyZXR1cm4gRGUoYC9hcGkvcGVyZm9ybWFuY2Uvc3VtbWFyeT8ke05sKG8sZixtKX1gKX1mdW5jdGlvbiB1eShvLGYsbSl7cmV0dXJuIERlKGAvYXBpL3BlcmZvcm1hbmNlL3JldHVybnM/JHtObChvLGYsbSl9YCl9ZnVuY3Rpb24gY3kobyxmLG0pe3JldHVybiBEZShgL2FwaS9wZXJmb3JtYW5jZS9hc3NldHM/JHtObChvLGYsbSl9YCl9ZnVuY3Rpb24gb3kobyxmLG0pe3JldHVybiBEZShgL2FwaS9wZXJmb3JtYW5jZS9ob2xkaW5ncz8ke05sKG8sZixtKX1gKX1mdW5jdGlvbiBzeShvLGYsbSl7cmV0dXJuIERlKGAvYXBpL3BlcmZvcm1hbmNlL3RyYWRlcz8ke05sKG8sZixtKX1gKX1mdW5jdGlvbiByeShvLGYsbSxzLFQpe2NvbnN0IE89aWgobyxUKSx3PW5ldyBVUkxTZWFyY2hQYXJhbXMoe3Njb3BlOk8uc2NvcGUscmFuZ2U6Zix5ZWFyOlN0cmluZyhtKX0pO3JldHVybiBzIT1udWxsJiZ3LnNldCgibW9udGgiLFN0cmluZyhzKSksTy5wbGF0Zm9ybSYmdy5zZXQoInBsYXRmb3JtIixPLnBsYXRmb3JtKSxEZShgL2FwaS9wZXJmb3JtYW5jZS9jYWxlbmRhcj8ke3d9YCl9YXN5bmMgZnVuY3Rpb24gZnkoKXtyZXR1cm4oYXdhaXQgRGUoIi9hcGkvY29uZmlnIikpLnJ1bnRpbWVEYWlseUJpbmRpbmdzPz9bXX1mdW5jdGlvbiBkeShvLGYsbSxzPSEwKXtjb25zdCBUPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2RhdGU6b30pO3JldHVybiBmJiZULnNldCgicGxhdGZvcm0iLGYpLG0mJlQuc2V0KCJhY2NvdW50X2tleSIsbSksc3x8VC5zZXQoImluY2x1ZGVfaGlzdG9yeSIsImZhbHNlIiksRGUoYC9hcGkvcnVudGltZS1kYWlseT8ke1R9YCl9ZnVuY3Rpb24gaHkoKXtyZXR1cm4gRGUoIi9hcGkvY3JlZGVudGlhbC1tYWludGVuYW5jZSIpfWFzeW5jIGZ1bmN0aW9uIGd2KG8sZj1mZXRjaCl7aWYoIS9eW2EtZjAtOV17NjR9JC8udGVzdChvKSlyZXR1cm4hMTtjb25zdCBtPWF3YWl0IGYoIi8iLHttZXRob2Q6IkhFQUQiLGNhY2hlOiJuby1zdG9yZSIsY3JlZGVudGlhbHM6Im9taXQifSkscz1tLmhlYWRlcnMuZ2V0KCJYLUNvbnNvbGUtQnVpbGQiKTtyZXR1cm4gbS5vayYmL15bYS1mMC05XXs2NH0kLy50ZXN0KHN8fCIiKSYmcyE9PW99ZnVuY3Rpb24gYnYoKXtjb25zdCBvPVR0KCksW2YsbV09WS51c2VTdGF0ZSghMSk7aWYoWS51c2VFZmZlY3QoKCk9Pntjb25zdCBUPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT0icXNsLWNvbnNvbGUtYnVpbGQiXScpPy5jb250ZW50fHwiIjtsZXQgTz0hMSx3PSExLEU9MDtjb25zdCBEPWFzeW5jKCk9PntpZighKGRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSE9PSJ2aXNpYmxlInx8d3x8RGF0ZS5ub3coKS1FPDZlNCkpe3c9ITAsRT1EYXRlLm5vdygpO3RyeXthd2FpdCBndihUKSYmIU8mJm0oITApfWNhdGNoe31maW5hbGx5e3c9ITF9fX07cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsRCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsRCksKCk9PntPPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsRCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsRCl9fSxbXSksIWYpcmV0dXJuIG51bGw7Y29uc3Qgcz1hc3luYygpPT57Y29uc3QgVD1BbygpOyghVHx8YXdhaXQgVCgpKSYmd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InVwZGF0ZS1ub3RpY2UiLHJvbGU6InN0YXR1cyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46bygic2hlbGwudXBkYXRlX2F2YWlsYWJsZSIpfSkseS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXNlY29uZGFyeSIsb25DbGljazooKT0+e3MoKX0sY2hpbGRyZW46bygic2hlbGwucmVsb2FkIil9KV19KX1jb25zdCBMZD1uZXcgTWFwLFdpPW5ldyBNYXA7ZnVuY3Rpb24gTW8obyl7cmV0dXJuIG89PT0iemgiPyJ6aC1DTiI6ImVuLVVTIn1mdW5jdGlvbiBQaShvLGYpe2NvbnN0IG09YCR7b306JHtKU09OLnN0cmluZ2lmeShmKX1gO2xldCBzPUxkLmdldChtKTtyZXR1cm4gc3x8KHM9bmV3IEludGwuTnVtYmVyRm9ybWF0KE1vKG8pLGYpLExkLnNldChtLHMpKSxzfWZ1bmN0aW9uIFN2KG8sZixtPTIpe3JldHVybiBvPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKG8pPyLigJQiOmAke28+MD8iKyI6bzwwPyItIjoiIn0ke1BpKGYse21pbmltdW1GcmFjdGlvbkRpZ2l0czptLG1heGltdW1GcmFjdGlvbkRpZ2l0czptfSkuZm9ybWF0KE1hdGguYWJzKG8pKX0lYH1mdW5jdGlvbiBteShvLGYpe3JldHVybiBvPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKG8pPyLigJQiOmAke28+MD8iKyI6bzwwPyItIjoiIn0ke1BpKGYse21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyfSkuZm9ybWF0KE1hdGguYWJzKG8pKX0gcHBgfWZ1bmN0aW9uIFR2KG8sZixtKXtpZihvPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKG8pKXJldHVybiLigJQiO2NvbnN0IHM9UGkobSx7bWluaW11bUZyYWN0aW9uRGlnaXRzOjIsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjJ9KS5mb3JtYXQobyk7cmV0dXJuIGY/YCR7Zn0gJHtzfWA6c31mdW5jdGlvbiBfeShvLGYpe3JldHVybiBvPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKG8pPyLigJQiOlBpKGYse21heGltdW1GcmFjdGlvbkRpZ2l0czo2fSkuZm9ybWF0KG8pfWNvbnN0IEV2PS9eXGR7NH0tXGR7Mn0tXGR7Mn0kLztmdW5jdGlvbiBBdihvLGYpe2lmKCFvKXJldHVybiLigJQiO2lmKEV2LnRlc3QobykpcmV0dXJuIG87Y29uc3QgbT1EYXRlLnBhcnNlKG8pO2lmKCFOdW1iZXIuaXNGaW5pdGUobSkpcmV0dXJuIuKAlCI7Y29uc3Qgcz1gJHtmfTpkYXRlYDtsZXQgVD1XaS5nZXQocyk7cmV0dXJuIFR8fChUPW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KE1vKGYpLHt5ZWFyOiJudW1lcmljIixtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0In0pLFdpLnNldChzLFQpKSxULmZvcm1hdChuZXcgRGF0ZShtKSl9ZnVuY3Rpb24gdWgobyxmLG09ITEpe2lmKCFvKXJldHVybnt0ZXh0OiLigJQiLHpvbmU6IiJ9O2NvbnN0IHM9RGF0ZS5wYXJzZShvKTtpZighTnVtYmVyLmlzRmluaXRlKHMpKXJldHVybnt0ZXh0OiLigJQiLHpvbmU6IiJ9O2NvbnN0IFQ9bmV3IERhdGUocyksTz1gJHtmfTpkYXRldGltZToke219YDtsZXQgdz1XaS5nZXQoTyk7d3x8KHc9bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoTW8oZikse3llYXI6bT8ibnVtZXJpYyI6dm9pZCAwLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQiLGhvdXI6IjItZGlnaXQiLG1pbnV0ZToiMi1kaWdpdCIsaG91cjEyOiExLHRpbWVab25lTmFtZToic2hvcnRPZmZzZXQifSksV2kuc2V0KE8sdykpO2NvbnN0IEU9dy5mb3JtYXRUb1BhcnRzKFQpLEQ9RS5maW5kKE09Pk0udHlwZT09PSJ0aW1lWm9uZU5hbWUiKT8udmFsdWV8fCIiO3JldHVybnt0ZXh0OkUuZmlsdGVyKE09Pk0udHlwZSE9PSJ0aW1lWm9uZU5hbWUiKS5tYXAoTT0+TS52YWx1ZSkuam9pbigiIikudHJpbSgpLHpvbmU6RH19ZnVuY3Rpb24gdnkobyxmKXtpZighbylyZXR1cm4gbnVsbDtjb25zdCBtPURhdGUucGFyc2Uobyk7aWYoIU51bWJlci5pc0Zpbml0ZShtKSlyZXR1cm4gbnVsbDtjb25zdCBzPU1hdGgubWF4KDAsTWF0aC5yb3VuZCgoRGF0ZS5ub3coKS1tKS8xZTMpKTtpZihzPDYwKXJldHVybiBmPT09InpoIj8i5Yia5YiaIjoianVzdCBub3ciO2NvbnN0IFQ9TWF0aC5mbG9vcihzLzYwKTtpZihUPDYwKXJldHVybiBmPT09InpoIj9gJHtUfSDliIbpkp/liY1gOmAke1R9bSBhZ29gO2NvbnN0IE89TWF0aC5mbG9vcihULzYwKTtpZihPPDQ4KXJldHVybiBmPT09InpoIj9gJHtPfSDlsI/ml7bliY1gOmAke099aCBhZ29gO2NvbnN0IHc9TWF0aC5mbG9vcihPLzI0KTtyZXR1cm4gZj09PSJ6aCI/YCR7d30g5aSp5YmNYDpgJHt3fWQgYWdvYH1jb25zdCBTbz17YWNjb3VudF9hbGlhc2VzOntoazp7ZW46IkhLIix6aDoi6aaZ5rivIn0sbGl2ZTp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifSxwYXBlcjp7ZW46InBhcGVyIix6aDoi5qih5oufIn0sc2c6e2VuOiJTRyIsemg6IuaWsOWKoOWdoSJ9LHNveGw6e2VuOiJTT1hMIix6aDoiU09YTCJ9LHRxcXE6e2VuOiJUUVFRIix6aDoiVFFRUSJ9fSxhY2NvdW50czp7YmluYW5jZTp7QmluYW5jZTp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifSxiaW5hbmNlOntlbjoibGl2ZSIsemg6IuWunuebmCJ9LGNyeXB0b19jb21ibzp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifSxkZWZhdWx0OntlbjoibGl2ZSIsemg6IuWunuebmCJ9fX0sZG9tYWluczp7Y25fZXF1aXR5OntlbjoiQ04gQS1zaGFyZSIsemg6IkHogqEifSxjcnlwdG86e2VuOiJDcnlwdG8iLHpoOiLliqDlr4YifSxoa19lcXVpdHk6e2VuOiJISyBFcXVpdHkiLHpoOiLmuK/ogqEifSx1c19lcXVpdHk6e2VuOiJVUyBFcXVpdHkiLHpoOiLnvo7ogqEifX0sbGFuZXM6e2RyeV9ydW46e2VuOiJkcnkgcnVuIix6aDoi5ryU57uDIn0sbGl2ZTp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifSxwYXBlcjp7ZW46InBhcGVyIix6aDoi5qih5oufIn0scmVzZWFyY2g6e2VuOiJyZXNlYXJjaCIsemg6IueglOeptiJ9LHNoYWRvdzp7ZW46InNoYWRvdyIsemg6IuW9seWtkCJ9fSxwbGF0Zm9ybXM6e2JpbmFuY2U6IkJpbmFuY2UiLGZpcnN0cmFkZToiRmlyc3RyYWRlIixpYmtyOiJJQktSIixsb25nYnJpZGdlOiJMb25nQnJpZGdlIixxbXQ6IlFNVCIsc2Nod2FiOiJTY2h3YWIifSxzZW5kZXJzOntxdWFudF9zZW50aW5lbDp7ZW46IlF1YW50U2VudGluZWwiLHpoOiLph4/ljJblk6jlhbUifX0sc3RyYXRlZ2llczp7Y25fY2hpbmV4dF9ncm93dGhfbW9tZW50dW1fcXVhbGl0eTp7ZW46IkNOIENoaU5leHQgR3Jvd3RoIE1vbWVudHVtIFF1YWxpdHkiLHpoOiLliJvkuJrmnb/miJDplb/liqjph4/otKjph48ifSxjbl9jaGluZXh0X2dyb3d0aF9tb21lbnR1bV9xdWFsaXR5X3NuYXBzaG90OntlbjoiQ04gQ2hpTmV4dCBHcm93dGggUXVhbGl0eSBTbmFwc2hvdCIsemg6IuWIm+S4muadv+aIkOmVv+i0qOmHj+W/q+eFpyJ9LGNuX2NoaW5leHRfdGFjdGljYWxfcm90YXRpb246e2VuOiJDTiBDaGlOZXh0IFRhY3RpY2FsIFJvdGF0aW9uIix6aDoi5Yib5Lia5p2/5oiY5pyv6L2u5YqoIn0sY25fY3NpNTAwX211bHRpX2ZhY3Rvcl9zbmFwc2hvdDp7ZW46IkNOIENTSSA1MDAgTXVsdGktRmFjdG9yIFNuYXBzaG90Iix6aDoiQeiCoeS4reivgTUwMOWkmuWboOWtkCJ9LGNuX2RpdmlkZW5kX3F1YWxpdHlfc25hcHNob3Q6e2VuOiJDTiBEaXZpZGVuZCBRdWFsaXR5Iix6aDoiQeiCoee6ouWIqei0qOmHjyJ9LGNuX2VxdWl0eV9jb21ibzp7ZW46IkNOIEFscGhhIENvbWJvIix6aDoiQeiCoei/m+WPlue7hOWQiCJ9LGNuX2luZGV4X2V0Zl90YWN0aWNhbF9yb3RhdGlvbjp7ZW46IkNOIEluZGV4IEVURiBUYWN0aWNhbCBSb3RhdGlvbiIsemg6IkHogqHlrr3ln7pFVEbmiJjmnK/ova7liqgifSxjbl9pbmR1c3RyeV9ldGZfcm90YXRpb246e2VuOiJDTiBJbmR1c3RyeSBFVEYgUm90YXRpb24iLHpoOiJB6IKh6KGM5LiaRVRG6L2u5YqoIn0sY25faW5kdXN0cnlfZXRmX3JvdGF0aW9uX2FnZ3Jlc3NpdmU6e2VuOiJDTiBFVEYgUm90YXRpb24iLHpoOiJB6IKhRVRG6L2u5YqoIn0sY25fc3Rhcl9ncm93dGhfbW9tZW50dW1fcXVhbGl0eTp7ZW46IkNOIFNUQVIgR3Jvd3RoIE1vbWVudHVtIFF1YWxpdHkiLHpoOiLnp5HliJvmnb/miJDplb/liqjph4/otKjph48ifSxjbl9zdG9ja19tb21lbnR1bV9yb3RhdGlvbjp7ZW46IkNOIFN0b2NrIE1vbWVudHVtIFJvdGF0aW9uIix6aDoiQeiCoeiCoeelqOWKqOmHj+i9ruWKqCJ9LGNyeXB0b19idGNfZGNhOntlbjoiQlRDIERDQSIsemg6IkJUQ+WumuaKlSJ9LGNyeXB0b19lcXVpdHlfY29tYm86e2VuOiJDcnlwdG8gQ29yZSBDb21ibyIsemg6IuWKoOWvhuWKqOmHj+e7hOWQiCJ9LGNyeXB0b19sZWFkZXJfcm90YXRpb246e2VuOiJDcnlwdG8gTGVhZGVyIFJvdGF0aW9uIix6aDoi5Yqg5a+G6aKG5rao6L2u5YqoIn0sY3J5cHRvX2xpdmVfcG9vbF9yb3RhdGlvbjp7ZW46IkNyeXB0byBQb29sIFJvdGF0aW9uIix6aDoi5Yqg5a+G5rGg6L2u5YqoIn0sY3J5cHRvX3RyZW5kX3JvdGF0aW9uOntlbjoiQWx0Y29pbiBUcmVuZCIsemg6IuWxseWvqOi2i+WKv+i9ruWKqCJ9LGdsb2JhbF9ldGZfY29uZmlkZW5jZV92b2xfZ2F0ZTp7ZW46Ikdsb2JhbCBFVEYgQ29uZmlkZW5jZSBWb2wgR2F0ZSIsemg6IuWFqOeQgyBFVEYg572u5L+h5rOi5Yqo6Zeo5o6nIn0sZ2xvYmFsX2V0Zl9yb3RhdGlvbjp7ZW46Ikdsb2JhbCBFVEYgUm90YXRpb24iLHpoOiLlhajnkINFVEbova7liqgifSxoa19lcXVpdHlfY29tYm86e2VuOiJISyBDb3JlIENvbWJvIix6aDoi5riv6IKh5oGS55Sf57uE5ZCIIn0saGtfZ2xvYmFsX2V0Zl90YWN0aWNhbF9yb3RhdGlvbjp7ZW46IkhLIEVURiBUYWN0aWNhbCBSb3RhdGlvbiIsemg6Iua4r+iCoUVURuaImOacr+i9ruWKqCJ9LGhrX2xvd192b2xfZGl2aWRlbmRfcXVhbGl0eV9zbmFwc2hvdDp7ZW46IkhLIERpdmlkZW5kIFF1YWxpdHkiLHpoOiLmuK/ogqHnuqLliKnotKjph48ifSxpYml0X3NtYXJ0X2RjYTp7ZW46IklCSVQgQml0Y29pbiBEQ0EiLHpoOiJJQklU5q+U54m55biB5a6a5oqVIn0sbmFzZGFxX3NwNTAwX3NtYXJ0X2RjYTp7ZW46Ik5BU0RBUS9TJlAgNTAwIERDQSIsemg6Iue6s+aMh+agh+aZruWumuaKlSJ9LHFxcV90ZWNoX2VuaGFuY2VtZW50OntlbjoiVGVjaC9Db21tdW5pY2F0aW9uIFB1bGxiYWNrIEVuaGFuY2VtZW50Iix6aDoi56eR5oqA6YCa5L+h5Zue6LCD5aKe5by6In0scnVzc2VsbF90b3A1MF9sZWFkZXJfcm90YXRpb246e2VuOiJSdXNzZWxsIFRvcDUwIExlYWRlcnMiLHpoOiLnvZfntKBUb3A1MOmihua2qCJ9LHNveGxfc294eF9jb3JlX29ubHlfcDJfdjdfbG9uZ3Rlcm1fY29tcG91bmRpbmdfY2FzaF9yZXNlcnZlOntlbjoiU09YTC9TT1hYIENvcmUgQ29tcG91bmRpbmcgKENhc2ggUmVzZXJ2ZSkiLHpoOiJTT1hML1NPWFgg5qC45b+D5aSN5Yip77yI546w6YeR5L+d55WZ77yJIn0sc294bF9zb3h4X3RyZW5kX2luY29tZTp7ZW46IlNlbWljb25kdWN0b3IgVHJlbmQgSW5jb21lIix6aDoi5Y2K5a+85L2T6LaL5Yq/5pS255uKIn0sdGVjaF9jb21tdW5pY2F0aW9uX3B1bGxiYWNrX2VuaGFuY2VtZW50OntlbjoiVGVjaC9Db21tdW5pY2F0aW9uIFB1bGxiYWNrIEVuaGFuY2VtZW50Iix6aDoi56eR5oqA6YCa5L+h5Zue6LCD5aKe5by6In0sdGVjbF94bGtfdHJlbmRfaW5jb21lOntlbjoiVEVDTC9YTEsgVHJlbmQgSW5jb21lIix6aDoiVEVDTC9YTEvotovlir/mlLbnm4oifSx0cXFxX2dyb3d0aF9pbmNvbWU6e2VuOiJOQVNEQVEgR3Jvd3RoIEluY29tZSIsemg6Iue6s+aWr+i+vuWFi+WinumVv+aUtuebiiJ9LHVzX2VxdWl0eV9jb21ibzp7ZW46IlVTIENvcmUgSW5jb21lIENvbWJvIix6aDoi576O6IKh5qC45b+D5pS255uK57uE5ZCIIn0sdXNfZXF1aXR5X2NvbWJvX2NvcmU6e2VuOiJVUyBDb3JlIENvbWJvIix6aDoi576O6IKh5qC45b+D57uE5ZCIIn0sdXNfZXF1aXR5X2NvbWJvX2xldmVyYWdlZDp7ZW46IlVTIEFscGhhIENvbWJvIix6aDoi576O6IKh5Yqg6YCf57uE5ZCIIn19LHN0cmF0ZWd5X2FsaWFzZXM6e2JpdGNvaW5fZXRmX3NtYXJ0X2RjYToiaWJpdF9zbWFydF9kY2EiLGdsb2JhbF9ldGZfY29uZmlkZW5jZV92b2xfZ2F0ZToiZ2xvYmFsX2V0Zl9yb3RhdGlvbiIsZ2xvYmFsX21hY3JvX2V0Zl9yb3RhdGlvbjoiZ2xvYmFsX2V0Zl9yb3RhdGlvbiJ9fSx4dj17QkFTRV9VUkw6Ii92Mi8iLERFVjohMSxNT0RFOiJwcm9kdWN0aW9uIixQUk9EOiEwLFNTUjohMX07bGV0IGNoPXt9O3RyeXtjb25zdCBvPUpTT04ucGFyc2UoeHY/LlZJVEVfUVNMX0RJU1BMQVlfTkFNRVNfSlNPTnx8Int9Iik7byYmdHlwZW9mIG89PSJvYmplY3QiJiYhQXJyYXkuaXNBcnJheShvKSYmKGNoPW8pfWNhdGNoe31mdW5jdGlvbiBSbChvLGYsbT0iZW4iLHM9IiIsVD0iIixPPWNoKXtjb25zdCB3PU8uc3RyYXRlZ3lfYWxpYXNlcz8uW2ZdfHxTby5zdHJhdGVneV9hbGlhc2VzPy5bZl18fGY7Zm9yKGNvbnN0IEUgb2ZbTyxTb10pe2NvbnN0IEQ9bz09PSJhY2NvdW50cyI/RVtvXT8uW1N0cmluZyhUKS50b0xvd2VyQ2FzZSgpXTpFW29dLE09RD8uW0U9PT1TbyYmbz09PSJzdHJhdGVnaWVzIj93OmZdPz8obz09PSJzdHJhdGVnaWVzIj9EPy5bd106bnVsbCksVj10eXBlb2YgTT09Im9iamVjdCImJk0/TVtTdHJpbmcobSkuc3RhcnRzV2l0aCgiemgiKT8iemgiOiJlbiJdfHxNLmVuOk07aWYodHlwZW9mIFY9PSJzdHJpbmciJiZWLnRyaW0oKSlyZXR1cm4gVi50cmltKCl9cmV0dXJuIHN8fGZ8fCIifWZ1bmN0aW9uIHp2KG8sZixtPSJlbiIscz0iIil7cmV0dXJuIFJsKCJhY2NvdW50cyIsb3x8IiIsbSxSbCgiYWNjb3VudF9hbGlhc2VzIixvfHwiIixtLHN8fG98fCIiKSxmfHwiIil9ZnVuY3Rpb24gUnYobyxmLG09IiIpe3JldHVybiBSbCgic3RyYXRlZ2llcyIsbyxmLG18fChmLnN0YXJ0c1dpdGgoInpoIik/IuacquWRveWQjeetlueVpSI6IlVubmFtZWQgc3RyYXRlZ3kiKSl9ZnVuY3Rpb24gRHYobyxmKXtyZXR1cm4gUmwoImxhbmVzIixvLGYsZi5zdGFydHNXaXRoKCJ6aCIpPyLmnKrnn6UiOiJVbmtub3duIil9ZnVuY3Rpb24gTnYobyxmKXtyZXR1cm4gUmwoImRvbWFpbnMiLG8sZixmLnN0YXJ0c1dpdGgoInpoIik/IuacquefpeW4guWcuiI6IlVua25vd24gbWFya2V0Iil9ZnVuY3Rpb24gT3Yobyl7Y29uc3QgZj1ZLnVzZUNvbnRleHQoJGQpLG09SGEoKSxzPVR0KCksVD1vPT09dm9pZCAwP2Y6bztyZXR1cm57Y29uZmlnOlQsYWNjb3VudDooTyx3KT0+e2lmKCFPKXJldHVybiBzKCJjb21tb24uYWNjb3VudCIpO2NvbnN0IEU9dz9saChULHcsTyk6dm9pZCAwLEQ9RT8uYWNjb3VudF9zZWxlY3Rvcj8udHJpbSgpO3JldHVybiB3PT09Imlia3IiJiZEJiYvXlVcZHs1LH0kL2kudGVzdChEKT9ELnRvVXBwZXJDYXNlKCk6enYoTyx3LG0sRT8ubGFiZWwmJkUubGFiZWwhPT1PP0UubGFiZWw6cygiY29tbW9uLmFjY291bnQiKSl9LHN0cmF0ZWd5Ok89Pntjb25zdCB3PVQ/LnN0cmF0ZWd5UHJvZmlsZXM/LmZpbmQoRT0+RS5wcm9maWxlPT09Tyk7cmV0dXJuIFJ2KE8sbSxtPT09InpoIj93Py5sYWJlbF96aDp3Py5sYWJlbF9lbil9LGN1cnJlbnRTdHJhdGVneTpPPT5UPy5jdXJyZW50U3RyYXRlZ2llcz8uW08ucGxhdGZvcm1dPy5bTy5hY2NvdW50X2FsaWFzXT8uc3RyYXRlZ3lfcHJvZmlsZSxwbGF0Zm9ybTpPPT5NdihUPy5wbGF0Zm9ybU1ldGE/LltPXT8ubGFiZWwsTyksbGFuZTpPPT5EdihPLG0pLGRvbWFpbjpPPT5OdihPLG0pfX1mdW5jdGlvbiBNdihvLGYpe3JldHVybiBvfHxmfWZ1bmN0aW9uIHd2KCl7Y29uc3Qgbz1UdCgpLGY9T3YoKSx7c2NvcGU6bSxvcHRpb25zOnMsc2V0U2NvcGU6VH09UGQoKSxbTyx3XT1ZLnVzZVN0YXRlKCExKSxFPVkudXNlUmVmKG51bGwpO1kudXNlRWZmZWN0KCgpPT57aWYoIU8pcmV0dXJuO2NvbnN0IEg9aGU9PntFLmN1cnJlbnQ/LmNvbnRhaW5zKGhlLnRhcmdldCl8fHcoITEpfSxjZT1oZT0+e2hlLmtleT09PSJFc2NhcGUiJiZ3KCExKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixIKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixjZSksKCk9Pntkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsSCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsY2UpfX0sW09dKTtjb25zdCBEPW12KHMubWFwKEg9Pih7Li4uSCxhY2NvdW50X2FsaWFzOkguYWxpYXN9KSksbSksUz1tPT09ImFsbCI/bygic2hlbGwuc2NvcGVfYWxsIik6RD9gJHtmLnBsYXRmb3JtKEQucGxhdGZvcm0pfSDCtyAke2YuYWNjb3VudChELmFsaWFzLEQucGxhdGZvcm0pfWA6bygiY29tbW9uLnVua25vd24iKSxNPVsuLi5uZXcgU2V0KHMubWFwKEg9PkgucGxhdGZvcm0pKV0sVj1IPT55LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzY29wZS1vcHRpb24ke209PT14byh7cGxhdGZvcm06SC5wbGF0Zm9ybSxhY2NvdW50X2FsaWFzOkguYWxpYXN9KT8iIGFjdGl2ZSI6IiJ9YCxvbkNsaWNrOigpPT57VCh4byh7cGxhdGZvcm06SC5wbGF0Zm9ybSxhY2NvdW50X2FsaWFzOkguYWxpYXN9KSksdyghMSl9LGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse3N0eWxlOntmbGV4OjF9LGNoaWxkcmVuOmYuYWNjb3VudChILmFsaWFzLEgucGxhdGZvcm0pfSksSC5wYXBlciYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImJhZGdlIGJhZGdlLWFjY2VudCIsY2hpbGRyZW46bygiY29tbW9uLnBhcGVyX2JhZGdlIil9KV19LGAke0gucGxhdGZvcm19OiR7SC5hbGlhc31gKTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLXN3aXRjaGVyIixyZWY6RSxjaGlsZHJlbjpbeS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIiwiYXJpYS1oYXNwb3B1cCI6Imxpc3Rib3giLCJhcmlhLWV4cGFuZGVkIjpPLCJhcmlhLWxhYmVsIjpvKCJzaGVsbC5zY29wZSIpLG9uQ2xpY2s6KCk9PncoSD0+IUgpLGNoaWxkcmVuOltTLCIg4pa+Il19KSxPJiZ5LmpzeHMoImRpdiIse2NsYXNzTmFtZToic2NvcGUtcGFuZWwiLHJvbGU6Imxpc3Rib3giLCJhcmlhLWxhYmVsIjpvKCJzaGVsbC5zY29wZSIpLGNoaWxkcmVuOlt5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNjb3BlLW9wdGlvbiR7bT09PSJhbGwiPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PntUKCJhbGwiKSx3KCExKX0sY2hpbGRyZW46bygic2hlbGwuc2NvcGVfYWxsIil9KSxNLm1hcChIPT55LmpzeHMoImRpdiIse2NoaWxkcmVuOlt5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzY29wZS1ncm91cCIsY2hpbGRyZW46Zi5wbGF0Zm9ybShIKX0pLHMuZmlsdGVyKGNlPT5jZS5wbGF0Zm9ybT09PUgpLm1hcChWKV19LEgpKV19KV19KX1jb25zdCBvaD1bIjFNIiwiM00iLCJZVEQiLCIxWSIsIkFMTCJdO2Z1bmN0aW9uIHl5KHt2YWx1ZTpvLG9uQ2hhbmdlOmYscmV0dXJuczptfSl7Y29uc3Qgcz1UdCgpO3JldHVybiB5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzZWdtZW50ZWQiLHJvbGU6Imdyb3VwIiwiYXJpYS1sYWJlbCI6cygicGVyZi5yYW5nZS5sYWJlbCIpLGNoaWxkcmVuOm9oLm1hcChUPT55LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHtUPT09bz8iIGFjdGl2ZSI6IiJ9YCwiYXJpYS1wcmVzc2VkIjpUPT09byxvbkNsaWNrOigpPT5mKFQpLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NoaWxkcmVuOnMoYHBlcmYucmFuZ2UuJHtUfWApfSksbSYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InNlZ21lbnQtc3ViIixjaGlsZHJlbjptW1RdPz8i4oCUIn0pXX0sVCkpfSl9ZnVuY3Rpb24gVXYoe29uQ2xvc2U6b30pe2NvbnN0IGY9VHQoKSx7cHJlZnM6bSxzZXRQcmVmczpzfT1SbygpLFQ9WS51c2VSZWYobnVsbCk7WS51c2VFZmZlY3QoKCk9Pntjb25zdCBFPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudD9kb2N1bWVudC5hY3RpdmVFbGVtZW50Om51bGwsRD1FPy5jbG9zZXN0KCJkZXRhaWxzIiksUz1EJiYhRC5vcGVuP0QucXVlcnlTZWxlY3Rvcigic3VtbWFyeSIpOkU7cmV0dXJuIFQuY3VycmVudD8ucXVlcnlTZWxlY3RvcigiYnV0dG9uIik/LmZvY3VzKCksKCk9PntTIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQmJlMuaXNDb25uZWN0ZWQmJlMuZm9jdXMoKX19LFtdKTtjb25zdCBPPUU9PntpZihFLmtleT09PSJFc2NhcGUiKXtFLnByZXZlbnREZWZhdWx0KCksbygpO3JldHVybn1pZihFLmtleSE9PSJUYWIiKXJldHVybjtjb25zdCBEPVQuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdCg6ZGlzYWJsZWQpLCBpbnB1dDpub3QoOmRpc2FibGVkKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpO2lmKCFEPy5sZW5ndGgpcmV0dXJuO2NvbnN0IFM9RFswXSxNPURbRC5sZW5ndGgtMV07RS5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PVM/KEUucHJldmVudERlZmF1bHQoKSxNLmZvY3VzKCkpOiFFLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09TSYmKEUucHJldmVudERlZmF1bHQoKSxTLmZvY3VzKCkpfSx3PShFLEQpPT5zKHsuLi5tLFtFXTpEfSk7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZy1iYWNrZHJvcCIsb25Nb3VzZURvd246RT0+RS50YXJnZXQ9PT1FLmN1cnJlbnRUYXJnZXQmJm8oKSxjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZGlhbG9nIixyb2xlOiJkaWFsb2ciLCJhcmlhLW1vZGFsIjoidHJ1ZSIsImFyaWEtbGFiZWxsZWRieSI6InByZWZzLXRpdGxlIixyZWY6VCxvbktleURvd246TyxjaGlsZHJlbjpbeS5qc3goImgyIix7aWQ6InByZWZzLXRpdGxlIixjaGlsZHJlbjpmKCJwcmVmcy50aXRsZSIpfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLWdyaWQiLGNoaWxkcmVuOlt5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicHJlZnMtcm93IixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjaGlsZHJlbjpmKCJwcmVmcy50aGVtZSIpfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOmYoInByZWZzLnRoZW1lIiksY2hpbGRyZW46WyJsaWdodCIsImRhcmsiLCJzeXN0ZW0iXS5tYXAoRT0+eS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHttLnRoZW1lPT09RT8iIGFjdGl2ZSI6IiJ9YCxvbkNsaWNrOigpPT53KCJ0aGVtZSIsRSksY2hpbGRyZW46ZihgcHJlZnMudGhlbWVfJHtFfWApfSxFKSl9KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicHJlZnMtcm93IixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjaGlsZHJlbjpmKCJwcmVmcy5sYW5ndWFnZSIpfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOmYoInByZWZzLmxhbmd1YWdlIiksY2hpbGRyZW46WyJ6aCIsImVuIl0ubWFwKEU9PnkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2VnbWVudCR7bS5sYW5ndWFnZT09PUU/IiBhY3RpdmUiOiIifWAsb25DbGljazooKT0+dygibGFuZ3VhZ2UiLEUpLGNoaWxkcmVuOkU9PT0iemgiPyLkuK3mlociOiJFbmdsaXNoIn0sRSkpfSldfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLXJvdyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46ZigicHJlZnMudXBkb3duIil9KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzZWdtZW50ZWQiLHJvbGU6Imdyb3VwIiwiYXJpYS1sYWJlbCI6ZigicHJlZnMudXBkb3duIiksY2hpbGRyZW46WyJncmVlbi11cCIsInJlZC11cCJdLm1hcChFPT55LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke20udXBEb3duPT09RT8iIGFjdGl2ZSI6IiJ9YCxvbkNsaWNrOigpPT53KCJ1cERvd24iLEUpLGNoaWxkcmVuOmYoRT09PSJncmVlbi11cCI/InByZWZzLnVwZG93bl9ncmVlbl91cCI6InByZWZzLnVwZG93bl9yZWRfdXAiKX0sRSkpfSldfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLXJvdyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46ZigicHJlZnMuaGlkZV9hbW91bnRzIil9KSx5LmpzeCgiaW5wdXQiLHt0eXBlOiJjaGVja2JveCIsY2hlY2tlZDptLmhpZGVBbW91bnRzLG9uQ2hhbmdlOkU9PncoImhpZGVBbW91bnRzIixFLnRhcmdldC5jaGVja2VkKSwiYXJpYS1sYWJlbCI6ZigicHJlZnMuaGlkZV9hbW91bnRzIil9KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToicHJlZnMtcm93IixjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjaGlsZHJlbjpmKCJwcmVmcy5kZWZhdWx0X3JhbmdlIil9KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJzZWdtZW50ZWQiLHJvbGU6Imdyb3VwIiwiYXJpYS1sYWJlbCI6ZigicHJlZnMuZGVmYXVsdF9yYW5nZSIpLGNoaWxkcmVuOm9oLm1hcChFPT55LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke20uZGVmYXVsdFJhbmdlPT09RT8iIGFjdGl2ZSI6IiJ9YCxvbkNsaWNrOigpPT53KCJkZWZhdWx0UmFuZ2UiLEUpLGNoaWxkcmVuOmYoYHBlcmYucmFuZ2UuJHtFfWApfSxFKSl9KV19KV19KSx5LmpzeCgicCIse2NsYXNzTmFtZToiY2FyZC1ub3RlIixjaGlsZHJlbjpmKCJwcmVmcy5ub3RlIil9KSx5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJkaWFsb2ctYWN0aW9ucyIsY2hpbGRyZW46eS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXByaW1hcnkiLG9uQ2xpY2s6byxjaGlsZHJlbjpmKCJjb21tb24uY2xvc2UiKX0pfSldfSl9KX1jb25zdCBUbz1be2lkOiJvdmVydmlldyIsbGFiZWxLZXk6Im5hdi5vdmVydmlldyIsaWNvbjoiTTMgMTIgTDEyIDQgTDIxIDEyIE02IDEwIFYyMCBIMTggVjEwIn0se2lkOiJwZXJmb3JtYW5jZSIsbGFiZWxLZXk6Im5hdi5wZXJmb3JtYW5jZSIsaWNvbjoiTTQgMTggTDEwIDEwIEwxNCAxMyBMMjAgNSJ9LHtpZDoiZGVjaXNpb25zIixsYWJlbEtleToibmF2LmRlY2lzaW9ucyIsaWNvbjoiTTQgNiBIMjAgTTQgMTIgSDIwIE00IDE4IEgxNCJ9LHtpZDoiYWNjb3VudHMiLGxhYmVsS2V5OiJuYXYuYWNjb3VudHMiLGljb246Ik0xMiAxMiBtLTQgMCBhNCA0IDAgMSAwIDggMCBhNCA0IDAgMSAwIC04IDAgTTQgMjAgYzAtNCA0LTYgOC02IHM4IDIgOCA2In0se2lkOiJzdHJhdGVnaWVzIixsYWJlbEtleToibmF2LnN0cmF0ZWdpZXMiLGljb246Ik01IDUgSDE5IFYxOSBINSBaIE01IDEwIEgxOSBNMTAgMTAgVjE5In0se2lkOiJoZWFsdGgiLGxhYmVsS2V5OiJuYXYuaGVhbHRoIixpY29uOiJNMyAxMiBINyBMMTAgNSBMMTQgMTkgTDE3IDEyIEgyMSJ9XSxDdj1bIm92ZXJ2aWV3IiwicGVyZm9ybWFuY2UiLCJkZWNpc2lvbnMiLCJhY2NvdW50cyJdLEdkPVsic3RyYXRlZ2llcyIsImhlYWx0aCJdO2Z1bmN0aW9uIEVvKHtwYXRoOm99KXtyZXR1cm4geS5qc3goInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuOCIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46eS5qc3goInBhdGgiLHtkOm99KX0pfWZ1bmN0aW9uIHF2KHtwYWdlOm8sdG9kb0NvdW50OmYsc3ludGhldGljOm0sbG9naW46cyx1cGRhdGVkQXQ6VCxvbkxvZ291dDpPLGNoaWxkcmVuOnd9KXtjb25zdCBFPVR0KCksRD1IYSgpLFM9cnYoKSx7cHJlZnM6TSxzZXRQcmVmczpWLHJlc29sdmVkVGhlbWU6SH09Um8oKSxjZT1IPT09ImRhcmsiO1BkKCk7Y29uc3RbaGUsa2VdPVkudXNlU3RhdGUoITEpLFtOZSx0dF09WS51c2VTdGF0ZSghMSksW2F0LFNlXT1ZLnVzZVN0YXRlKCExKSx2ZT1ZLnVzZVJlZihudWxsKTtZLnVzZUVmZmVjdCgoKT0+e3ZlLmN1cnJlbnQmJih2ZS5jdXJyZW50Lm9wZW49ITEpLHR0KCExKX0sW29dKSxZLnVzZUVmZmVjdCgoKT0+e2NvbnN0IFc9Rj0+e2NvbnN0IGFlPXZlLmN1cnJlbnQ7YWU/Lm9wZW4mJiFhZS5jb250YWlucyhGLnRhcmdldCkmJihhZS5vcGVuPSExKX0seGU9Rj0+e0Yua2V5PT09IkVzY2FwZSImJnZlLmN1cnJlbnQmJih2ZS5jdXJyZW50Lm9wZW49ITEpfTtyZXR1cm4gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLFcpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHhlKSwoKT0+e2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixXKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix4ZSl9fSxbXSk7Y29uc3QgZWU9ZiE9PW51bGwmJmY+MD95LmpzeCgic3BhbiIse2NsYXNzTmFtZToibmF2LWJhZGdlIixjaGlsZHJlbjpmfSk6bnVsbCxUZT1UP3VoKFQsRCk6bnVsbCxPZT0oVyx4ZT0iIik9PnkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YCR7eGV9JHtvPT09Vy5pZD8iIGFjdGl2ZSI6IiJ9YCwiYXJpYS1sYWJlbCI6RShXLmxhYmVsS2V5KSwiYXJpYS1jdXJyZW50IjpvPT09Vy5pZD8icGFnZSI6dm9pZCAwLG9uQ2xpY2s6KCk9PlMoe3BhZ2U6Vy5pZCxhY2NvdW50Om51bGwsdGFiOm51bGx9KSxjaGlsZHJlbjpbeS5qc3goRW8se3BhdGg6Vy5pY29ufSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6Im5hdi10ZXh0IixjaGlsZHJlbjpFKFcubGFiZWxLZXkpfSksVy5pZD09PSJkZWNpc2lvbnMiJiZlZV19LFcuaWQpO3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToic2hlbGwiLGNoaWxkcmVuOlt5LmpzeCgiYSIse2NsYXNzTmFtZToic2tpcC1saW5rIixocmVmOiIjbWFpbi1jb250ZW50IixjaGlsZHJlbjpFKCJzaGVsbC5za2lwX3RvX2NvbnRlbnQiKX0pLHkuanN4cygibmF2Iix7Y2xhc3NOYW1lOmBzaWRlbmF2JHtoZT8iIGNvbGxhcHNlZCI6IiJ9YCwiYXJpYS1sYWJlbCI6RSgibmF2Lm1haW4iKSxjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJyYW5kIixjaGlsZHJlbjpbeS5qc3goImltZyIse3NyYzoiL3YyL2Fzc2V0cy9xc2wtYnJhbmQtaWNvbi5zdmciLGFsdDoiIix3aWR0aDoyOCxoZWlnaHQ6Mjh9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiYnJhbmQtbmFtZSIsY2hpbGRyZW46RSgiYXBwLm5hbWUiKX0pXX0pLFRvLm1hcChXPT5PZShXLCJuYXYtaXRlbSIpKSx5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6InNpZGVuYXYtY29sbGFwc2UiLG9uQ2xpY2s6KCk9PmtlKFc9PiFXKSwiYXJpYS1sYWJlbCI6RShoZT8iY29tbW9uLmV4cGFuZCI6ImNvbW1vbi5jb2xsYXBzZSIpLGNoaWxkcmVuOmhlPyLCuyI6IsKrIn0pXX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzaGVsbC1tYWluIixjaGlsZHJlbjpbeS5qc3hzKCJoZWFkZXIiLHtjbGFzc05hbWU6InRvcGJhciIsY2hpbGRyZW46W3kuanN4KHd2LHt9KSxUZSYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6InRvcGJhci11cGRhdGVkIixjaGlsZHJlbjpFKCJjb21tb24udXBkYXRlZF9hdCIse3ZhbHVlOmAke1RlLnRleHR9JHtUZS56b25lP2AgKCR7VGUuem9uZX0pYDoiIn1gfSl9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToic3BhY2VyIn0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIGFwcGVhcmFuY2UtdG9nZ2xlIiwiYXJpYS1sYWJlbCI6RSgicHJlZnMubGFuZ3VhZ2UiKSx0aXRsZTpFKCJwcmVmcy5sYW5ndWFnZSIpLG9uQ2xpY2s6KCk9PlYoey4uLk0sbGFuZ3VhZ2U6RD09PSJ6aCI/ImVuIjoiemgifSksY2hpbGRyZW46RD09PSJ6aCI/IkVuZ2xpc2giOiLkuK3mlocifSkseS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkgYnV0dG9uLXNtIGFwcGVhcmFuY2UtdG9nZ2xlIiwiYXJpYS1sYWJlbCI6RShjZT8ic2hlbGwuc3dpdGNoX2xpZ2h0Ijoic2hlbGwuc3dpdGNoX2RhcmsiKSx0aXRsZTpFKGNlPyJzaGVsbC5zd2l0Y2hfbGlnaHQiOiJzaGVsbC5zd2l0Y2hfZGFyayIpLG9uQ2xpY2s6KCk9PlYoey4uLk0sdGhlbWU6Y2U/ImxpZ2h0IjoiZGFyayJ9KSxjaGlsZHJlbjpbeS5qc3goInNwYW4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjpjZT8i4piAIjoi4pi+In0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0aGVtZS10b2dnbGUtbGFiZWwiLGNoaWxkcmVuOkUoY2U/InByZWZzLnRoZW1lX2xpZ2h0IjoicHJlZnMudGhlbWVfZGFyayIpfSldfSksbSYmeS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImJhZGdlIGJhZGdlLWFjY2VudCIsY2hpbGRyZW46RSgiY29tbW9uLnN5bnRoZXRpY19iYWRnZSIpfSkseS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJpY29uLWJ1dHRvbiIsImFyaWEtcHJlc3NlZCI6TS5oaWRlQW1vdW50cywiYXJpYS1sYWJlbCI6RShNLmhpZGVBbW91bnRzPyJzaGVsbC5zaG93X2Ftb3VudHMiOiJzaGVsbC5oaWRlX2Ftb3VudHMiKSx0aXRsZTpFKE0uaGlkZUFtb3VudHM/InNoZWxsLnNob3dfYW1vdW50cyI6InNoZWxsLmhpZGVfYW1vdW50cyIpLG9uQ2xpY2s6KCk9PlYoey4uLk0saGlkZUFtb3VudHM6IU0uaGlkZUFtb3VudHN9KSxjaGlsZHJlbjp5LmpzeCgic3ZnIix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoiMS44IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjpNLmhpZGVBbW91bnRzP3kuanN4KCJwYXRoIix7ZDoiTTMgMyBMMjEgMjEgTTEwIDUuNSBDMTEuNSA1IDEzIDUgMTQgNS41IEMxOCA3IDIxIDEyIDIxIDEyIEMyMCAxNCAxOC41IDE1LjggMTYuNSAxNyBNNi41IDYuOCBDNCA4LjcgMyAxMiAzIDEyIEMzIDEyIDYgMTggMTIgMTggQzEzIDE4IDE0IDE3LjggMTQuOCAxNy41In0pOnkuanN4cyh5LkZyYWdtZW50LHtjaGlsZHJlbjpbeS5qc3goInBhdGgiLHtkOiJNMiAxMiBDMiAxMiA1LjUgNSAxMiA1IEMxOC41IDUgMjIgMTIgMjIgMTIgQzIyIDEyIDE4LjUgMTkgMTIgMTkgQzUuNSAxOSAyIDEyIDIgMTIgWiJ9KSx5LmpzeCgiY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjMifSldfSl9KX0pLHkuanN4cygiZGV0YWlscyIse2NsYXNzTmFtZToidXNlci1tZW51IixyZWY6dmUsY2hpbGRyZW46W3kuanN4KCJzdW1tYXJ5Iix7ImFyaWEtbGFiZWwiOkUoInNoZWxsLnVzZXJfbWVudSIpLGNoaWxkcmVuOihzfHwiVSIpLnNsaWNlKDAsMSkudG9VcHBlckNhc2UoKX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ1c2VyLW1lbnUtcGFuZWwiLGNoaWxkcmVuOlt5LmpzeCgic3Ryb25nIix7Y2xhc3NOYW1lOiJ1c2VyLW1lbnUtbmFtZSIsY2hpbGRyZW46c3x8IuKAlCJ9KSx5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Im1lbnUtaXRlbSIsb25DbGljazooKT0+e1NlKCEwKSx2ZS5jdXJyZW50JiYodmUuY3VycmVudC5vcGVuPSExKX0sY2hpbGRyZW46RSgic2hlbGwucHJlZmVyZW5jZXMiKX0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibWVudS1pdGVtIixvbkNsaWNrOk8sY2hpbGRyZW46RSgic2hlbGwubG9nb3V0Iil9KV19KV19KV19KSx5LmpzeChidix7fSkseS5qc3goIm1haW4iLHtjbGFzc05hbWU6ImNvbnRlbnQiLGlkOiJtYWluLWNvbnRlbnQiLGNoaWxkcmVuOnd9LG8pXX0pLHkuanN4KCJuYXYiLHtjbGFzc05hbWU6ImJvdHRvbS10YWJzIiwiYXJpYS1sYWJlbCI6RSgibmF2Lm1haW4iKSxjaGlsZHJlbjp5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiYm90dG9tLXRhYnMtaW5uZXIiLGNoaWxkcmVuOltDdi5tYXAoVz0+T2UoVG8uZmluZCh4ZT0+eGUuaWQ9PT1XKSwiYm90dG9tLXRhYiIpKSx5LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBib3R0b20tdGFiJHtOZXx8R2QuaW5jbHVkZXMobyk/IiBhY3RpdmUiOiIifWAsImFyaWEtZXhwYW5kZWQiOk5lLG9uQ2xpY2s6KCk9PnR0KFc9PiFXKSxjaGlsZHJlbjpbeS5qc3goRW8se3BhdGg6Ik01IDEyIG0tMS41IDAgYTEuNSAxLjUgMCAxIDAgMyAwIGExLjUgMS41IDAgMSAwIC0zIDAgTTEyIDEyIG0tMS41IDAgYTEuNSAxLjUgMCAxIDAgMyAwIGExLjUgMS41IDAgMSAwIC0zIDAgTTE5IDEyIG0tMS41IDAgYTEuNSAxLjUgMCAxIDAgMyAwIGExLjUgMS41IDAgMSAwIC0zIDAifSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6Im5hdi10ZXh0IixjaGlsZHJlbjpFKCJuYXYubW9yZSIpfSldfSldfSl9KSxOZSYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6Im1vcmUtc2hlZXQiLHJvbGU6Im1lbnUiLGNoaWxkcmVuOltHZC5tYXAoVz0+T2UoVG8uZmluZCh4ZT0+eGUuaWQ9PT1XKSwibmF2LWl0ZW0iKSkseS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToibmF2LWl0ZW0iLG9uQ2xpY2s6KCk9PntTZSghMCksdHQoITEpfSxjaGlsZHJlbjpbeS5qc3goRW8se3BhdGg6Ik0xMiAxNSBtLTMgMCBhMyAzIDAgMSAwIDYgMCBhMyAzIDAgMSAwIC02IDAgTTE5IDEyIGE3IDcgMCAwIDAtLjEtMS4yIGwyLTEuNSAtMi0zLjQgLTIuMyAxIGE3IDcgMCAwIDAtMi0xLjIgTDE0LjIgMyBIOS44IEw5LjQgNS43IGE3IDcgMCAwIDAtMiAxLjIgbC0yLjMtMSAtMiAzLjQgMiAxLjUgQTcgNyAwIDAgMCA1IDEyIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJuYXYtdGV4dCIsY2hpbGRyZW46RSgic2hlbGwucHJlZmVyZW5jZXMiKX0pXX0pXX0pLGF0JiZ5LmpzeChVdix7b25DbG9zZTooKT0+U2UoITEpfSldfSl9Y29uc3Qgc2g9WS5jcmVhdGVDb250ZXh0KCgpPT57fSk7ZnVuY3Rpb24gcHkoKXtyZXR1cm4gWS51c2VDb250ZXh0KHNoKX1mdW5jdGlvbiBqdih7Y2hpbGRyZW46b30pe2NvbnN0IGY9VHQoKSxbbSxzXT1ZLnVzZVN0YXRlKFtdKSxUPVkudXNlUmVmKDEpLE89WS51c2VDYWxsYmFjayhFPT57Y29uc3QgRD1ULmN1cnJlbnQrKztzKFM9PlsuLi5TLnNsaWNlKC0zKSx7Li4uRSxpZDpEfV0pLHdpbmRvdy5zZXRUaW1lb3V0KCgpPT5zKFM9PlMuZmlsdGVyKE09Pk0uaWQhPT1EKSksNmUzKX0sW10pLHc9RT0+cyhEPT5ELmZpbHRlcihTPT5TLmlkIT09RSkpO3JldHVybiB5LmpzeHMoc2guUHJvdmlkZXIse3ZhbHVlOk8sY2hpbGRyZW46W28seS5qc3goImRpdiIse2NsYXNzTmFtZToidG9hc3Qtc3RhY2siLHJvbGU6InN0YXR1cyIsImFyaWEtbGl2ZSI6InBvbGl0ZSIsY2hpbGRyZW46bS5tYXAoRT0+eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6YHRvYXN0ICR7RS5raW5kPT09ImluZm8iPyIiOkUua2luZH1gLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse3N0eWxlOntmbGV4OjF9LGNoaWxkcmVuOkUudGV4dH0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PncoRS5pZCksImFyaWEtbGFiZWwiOmYoImNvbW1vbi5jbG9zZSIpLGNoaWxkcmVuOiLinJUifSldfSxFLmlkKSl9KV19KX1mdW5jdGlvbiBIdih7dG9uZTpvfSl7cmV0dXJuIG89PT0ib2siP3kuanN4KCJzdmciLHt3aWR0aDoxMCxoZWlnaHQ6MTAsdmlld0JveDoiMCAwIDEwIDEwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjp5LmpzeCgicGF0aCIse2Q6Ik0xLjUgNS41IEw0IDggTDguNSAyIixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuNiIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCJ9KX0pOm89PT0id2FybiI/eS5qc3hzKCJzdmciLHt3aWR0aDoxMCxoZWlnaHQ6MTAsdmlld0JveDoiMCAwIDEwIDEwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjpbeS5qc3goInBhdGgiLHtkOiJNNSAxIEw5LjUgOSBIMC41IFoiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoiMS4yIixzdHJva2VMaW5lam9pbjoicm91bmQifSkseS5qc3goImxpbmUiLHt4MToiNSIseTE6IjQiLHgyOiI1Iix5MjoiNi40IixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuMiIsc3Ryb2tlTGluZWNhcDoicm91bmQifSkseS5qc3goImNpcmNsZSIse2N4OiI1IixjeToiNy44IixyOiIwLjciLGZpbGw6ImN1cnJlbnRDb2xvciJ9KV19KTpvPT09ImVycm9yIj95LmpzeHMoInN2ZyIse3dpZHRoOjEwLGhlaWdodDoxMCx2aWV3Qm94OiIwIDAgMTAgMTAiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOlt5LmpzeCgiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuMiJ9KSx5LmpzeCgicGF0aCIse2Q6Ik0zLjIgMy4yIEw2LjggNi44IE02LjggMy4yIEwzLjIgNi44IixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuMiIsc3Ryb2tlTGluZWNhcDoicm91bmQifSldfSk6eS5qc3goInN2ZyIse3dpZHRoOjEwLGhlaWdodDoxMCx2aWV3Qm94OiIwIDAgMTAgMTAiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOnkuanN4KCJjaXJjbGUiLHtjeDoiNSIsY3k6IjUiLHI6IjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoiMS4yIixzdHJva2VEYXNoYXJyYXk6IjIgMS40In0pfSl9ZnVuY3Rpb24gQnYoe3RvbmU6byxjaGlsZHJlbjpmLHRpdGxlOm19KXtyZXR1cm4geS5qc3hzKCJzcGFuIix7Y2xhc3NOYW1lOmBiYWRnZSBiYWRnZS0ke299YCx0aXRsZTptLGNoaWxkcmVuOltvIT09ImFjY2VudCImJnkuanN4KEh2LHt0b25lOm99KSxmXX0pfWNvbnN0IFl2PXtoZWFsdGh5OiJvayIscmV2aWV3OiJ3YXJuIix3YXRjaDoid2FybiIsY3JpdGljYWw6ImVycm9yIixmcmVzaDoib2siLGJsb2NrZWQ6ImVycm9yIixmYWlsZWQ6ImVycm9yIixyZWFkX2luY29tcGxldGU6ImVycm9yIixpbnN1ZmZpY2llbnQ6Indhcm4iLHByZXZpZXdlZDoidW5rbm93biIsbm9fc2lnbmFsOiJvayIsb2s6Im9rIixwYXJ0aWFsOiJ3YXJuIixzdGFsZToid2FybiIsbm9fZGF0YToidW5rbm93biIsbm90X2Nvbm5lY3RlZDoidW5rbm93biIsdW5hdmFpbGFibGU6InVua25vd24iLHJlYWRfZmFpbGVkOiJlcnJvciJ9O2Z1bmN0aW9uIEx2KG8pe3JldHVybiBZdltvfHwiIl18fCJ1bmtub3duIn1mdW5jdGlvbiBneSh7c3RhdHVzOm8scmVhc29uOmZ9KXtjb25zdCBtPVR0KCkscz1gc3RhdGUuJHtvfHwidW5rbm93biJ9YCxUPWY/YHJlYXNvbi4ke2Z9YDpudWxsLE89VD9tKFQpOnZvaWQgMDtyZXR1cm4geS5qc3goQnYse3RvbmU6THYobyksdGl0bGU6TyxjaGlsZHJlbjptKHMpfSl9ZnVuY3Rpb24gYnkoe3ZhbHVlOm8scHJlZml4OmY9ImNvbW1vbi5hc19vZiJ9KXtjb25zdCBtPVR0KCkscz1IYSgpO2lmKCFvKXJldHVybiB5LmpzeCgic3BhbiIse2NsYXNzTmFtZToiYXNvZiIsY2hpbGRyZW46bShmLHt2YWx1ZTptKCJjb21tb24ubmEiKX0pfSk7Y29uc3R7dGV4dDpULHpvbmU6T309dWgobyxzKTtyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFzb2YiLGNoaWxkcmVuOm0oZix7dmFsdWU6Tz9gJHtUfSAoJHtPfSlgOlR9KX0pfWZ1bmN0aW9uIFN5KHt2YWx1ZTpvfSl7Y29uc3QgZj1IYSgpO3JldHVybiB5LmpzeCh5LkZyYWdtZW50LHtjaGlsZHJlbjpBdihvLGYpfSl9ZnVuY3Rpb24gVHkoe3ZhbHVlOm8sY3VycmVuY3k6ZixzaWduZWQ6bT0hMX0pe2NvbnN0IHM9SGEoKSx7cHJlZnM6VH09Um8oKTtpZihULmhpZGVBbW91bnRzKXJldHVybiB5LmpzeCgic3BhbiIse2NsYXNzTmFtZToibW9uZXkiLGNoaWxkcmVuOiLigKLigKLigKIifSk7aWYobz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKSlyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6Im1vbmV5IGZsYXQiLGNoaWxkcmVuOiLigJQifSk7Y29uc3QgTz1UdihtP01hdGguYWJzKG8pOm8sZixzKSx3PW0/bz4wPyIrIjpvPDA/Ii0iOiIiOiIiLEU9IW18fG89PT0wPyJmbGF0IjpvPjA/InVwIjoiZG93biI7cmV0dXJuIHkuanN4cygic3BhbiIse2NsYXNzTmFtZTpgbW9uZXkgJHtFfWAsY2hpbGRyZW46W3csT119KX1mdW5jdGlvbiBFeSh7dmFsdWU6byxkaWdpdHM6Zj0yfSl7aWYobz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKSlyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6InBlcmNlbnQgZmxhdCIsY2hpbGRyZW46IuKAlCJ9KTtjb25zdCBtPUhhKCkscz1vPT09MD8iZmxhdCI6bz4wPyJ1cCI6ImRvd24iO3JldHVybiB5LmpzeCgic3BhbiIse2NsYXNzTmFtZTpgcGVyY2VudCAke3N9YCxjaGlsZHJlbjpTdihvLG0sZil9KX1mdW5jdGlvbiBYZCh7aGVpZ2h0Om89MTYsd2lkdGg6Zj0iMTAwJSJ9KXtyZXR1cm4geS5qc3goImRpdiIse2NsYXNzTmFtZToic2tlbGV0b24iLHN0eWxlOntoZWlnaHQ6byx3aWR0aDpmfSwiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pfWZ1bmN0aW9uIEF5KHt0aXRsZTpvLGJvZHk6ZixhY3Rpb246bX0pe3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZW1wdHktc3RhdGUiLGNoaWxkcmVuOlt5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJlbXB0eS10aXRsZSIsY2hpbGRyZW46b30pLGYmJnkuanN4KCJkaXYiLHtjaGlsZHJlbjpmfSksbSYmeS5qc3goImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTJ9LGNoaWxkcmVuOm19KV19KX1mdW5jdGlvbiB4eSh7b25SZXRyeTpvfSl7Y29uc3QgZj1UdCgpO3JldHVybiB5LmpzeHMoImRpdiIse2NsYXNzTmFtZToiZXJyb3Itc3RhdGUiLHJvbGU6ImFsZXJ0IixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToiZXJyb3ItdGl0bGUiLGNoaWxkcmVuOmYoInN0YXRlLnJlYWRfZmFpbGVkIil9KSx5LmpzeCgiZGl2Iix7Y2hpbGRyZW46ZigiZXJyb3IuZ2VuZXJpYyIpfSksbyYmeS5qc3goImRpdiIse3N0eWxlOnttYXJnaW5Ub3A6MTJ9LGNoaWxkcmVuOnkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLG9uQ2xpY2s6byxjaGlsZHJlbjpmKCJjb21tb24ucmV0cnkiKX0pfSldfSl9ZnVuY3Rpb24genkoe3RpdGxlS2V5Om8sYm9keUtleTpmfSl7Y29uc3QgbT1UdCgpO3JldHVybiB5LmpzeHMoImRldGFpbHMiLHtjbGFzc05hbWU6Im1ldGhvZC1ub3RlIixjaGlsZHJlbjpbeS5qc3goInN1bW1hcnkiLHtjaGlsZHJlbjptKG8pfSkseS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46bShmKX0pXX0pfWNvbnN0IEd2PVkubGF6eSgoKT0+eG4oKCk9PmltcG9ydCgiLi9PdmVydmlld1BhZ2UtQzdWaTdBbUsuanMiKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyLDMsNCw1LDYsN10pKSksWHY9WS5sYXp5KCgpPT54bigoKT0+aW1wb3J0KCIuL1BlcmZvcm1hbmNlUGFnZS1CdmRxQ0dxdi5qcyIpLF9fdml0ZV9fbWFwRGVwcyhbOCw1LDYsMiwzLDksMTAsMTFdKSkpLFF2PVkubGF6eSgoKT0+eG4oKCk9PmltcG9ydCgiLi9EZWNpc2lvbnNQYWdlLUJCNHpvNWZNLmpzIiksX192aXRlX19tYXBEZXBzKFsxMiwxLDEzLDUsMTAsMTQsMTVdKSkpLGt2PVkubGF6eSgoKT0+eG4oKCk9PmltcG9ydCgiLi9BY2NvdW50c1BhZ2UtWHNrZWxwNzYuanMiKSxfX3ZpdGVfX21hcERlcHMoWzE2LDQsNSwxNCwxMCwxN10pKSksWnY9WS5sYXp5KCgpPT54bigoKT0+aW1wb3J0KCIuL1N0cmF0ZWdpZXNQYWdlLXgwejBRYVctLmpzIiksX192aXRlX19tYXBEZXBzKFsxOCw1LDEwLDE5XSkpKSxWdj1ZLmxhenkoKCk9PnhuKCgpPT5pbXBvcnQoIi4vSGVhbHRoUGFnZS1CcTJlamtWcy5qcyIpLF9fdml0ZV9fbWFwRGVwcyhbMjAsNSw2LDksMTMsMjFdKSkpO2Z1bmN0aW9uIFFkKHtraW5kOm8sbm9BY2Nlc3M6ZixvblJldHJ5Om19KXtjb25zdCBzPVR0KCksVD1vPT09ImRlbmllZCI7cmV0dXJuIHkuanN4cygibWFpbiIse2NsYXNzTmFtZToiYWNjZXNzLXNjcmVlbiIsY2hpbGRyZW46W3kuanN4KCJpbWciLHtzcmM6Ii92Mi9hc3NldHMvcXNsLWJyYW5kLWljb24uc3ZnIixhbHQ6IiIsd2lkdGg6NDgsaGVpZ2h0OjQ4fSkseS5qc3goImgxIix7Y2hpbGRyZW46cyhUP2Y/ImF1dGguZGVuaWVkX3RpdGxlIjoiYXV0aC5sb2dpbl90aXRsZSI6ImF1dGguZXJyb3JfdGl0bGUiKX0pLHkuanN4KCJwIix7Y2hpbGRyZW46cyhUP2Y/ImF1dGguZGVuaWVkX2JvZHkiOiJhdXRoLmxvZ2luX2JvZHkiOiJhdXRoLmVycm9yX2JvZHkiKX0pLFQ/Zj9udWxsOnkuanN4KCJhIix7Y2xhc3NOYW1lOiJidXR0b24gYnV0dG9uLXByaW1hcnkiLGhyZWY6Ii9sb2dpbiIsY2hpbGRyZW46cygiYXV0aC5sb2dpbiIpfSk6eS5qc3goImJ1dHRvbiIse2NsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5Iix0eXBlOiJidXR0b24iLG9uQ2xpY2s6bSxjaGlsZHJlbjpzKCJjb21tb24ucmV0cnkiKX0pXX0pfWZ1bmN0aW9uIEt2KCl7Y29uc3RbbyxmXT1ZLnVzZVN0YXRlKEtkKSxbbSxzXT1ZLnVzZVN0YXRlKCgpPT53aW5kb3cubWF0Y2hNZWRpYT8uKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8/ITEpLFtULE9dPVkudXNlU3RhdGUoImxvYWRpbmciKSxbdyxFXT1ZLnVzZVN0YXRlKG51bGwpLFtELFNdPVkudXNlU3RhdGUoKCk9PmpkKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpKSxbTSxWXT1ZLnVzZVN0YXRlKG51bGwpLFtILGNlXT1ZLnVzZVN0YXRlKFtdKSxbaGUsa2VdPVkudXNlU3RhdGUobnVsbCksW05lLHR0XT1ZLnVzZVN0YXRlKG51bGwpLFthdCxTZV09WS51c2VTdGF0ZSgwKSx2ZT1ZLnVzZVJlZihEKTt2ZS5jdXJyZW50PUQ7Y29uc3QgZWU9WS51c2VDYWxsYmFjayhGPT57ZihGKSxzdihGKX0sW10pLFRlPUpkKG8udGhlbWUsbSk7WS51c2VFZmZlY3QoKCk9Pntkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGF0YXNldC50aGVtZT1UZX0sW1RlXSksWS51c2VFZmZlY3QoKCk9Pntkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGF0YXNldC51cGRvd249by51cERvd259LFtvLnVwRG93bl0pLFkudXNlRWZmZWN0KCgpPT57ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc9by5sYW5ndWFnZT09PSJ6aCI/InpoLUNOIjoiZW4ifSxbby5sYW5ndWFnZV0pLFkudXNlRWZmZWN0KCgpPT57Y29uc3QgRj13aW5kb3cubWF0Y2hNZWRpYT8uKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIik7aWYoIUYpcmV0dXJuO2NvbnN0IGFlPW5lPT5zKG5lLm1hdGNoZXMpO3JldHVybiBGLmFkZEV2ZW50TGlzdGVuZXI/LigiY2hhbmdlIixhZSksKCk9PkYucmVtb3ZlRXZlbnRMaXN0ZW5lcj8uKCJjaGFuZ2UiLGFlKX0sW10pLFkudXNlRWZmZWN0KCgpPT57bGV0IEY9ITE7cmV0dXJuKGFzeW5jKCk9Pnt0cnl7Y29uc3QgYWU9YXdhaXQgX3YoKTtpZihGKXJldHVybjtpZighYWUuYXV0aGVudGljYXRlZHx8IWFlLmFsbG93ZWQpe0UoYWUpLE8oImRlbmllZCIpO3JldHVybn1FKGFlKSxPKCJyZWFkeSIpO3RyeXtjb25zdCBuZT1hd2FpdCBwdigpO2lmKEYpcmV0dXJuO2xldCBxZT1udWxsO3RyeXtxZT1hd2FpdCBEZSgiL2FwaS9jb25maWciKX1jYXRjaHt9aWYoRilyZXR1cm47VihxZSksY2UobmUuYWNjb3VudHMubWFwKCRlPT4oe2FsaWFzOiRlLmFjY291bnRfYWxpYXMscGxhdGZvcm06JGUucGxhdGZvcm0scGFwZXI6cWU/LmFjY291bnRPcHRpb25zPy5bJGUucGxhdGZvcm1dPy5maW5kKGplPT5qZS5rZXk9PT0kZS5hY2NvdW50X2FsaWFzKT8uYnJva2VyX2Vudmlyb25tZW50PT09InBhcGVyIn0pKSksdHQobmV3IERhdGUoKS50b0lTT1N0cmluZygpKX1jYXRjaHt9dHJ5e2NvbnN0IG5lPWF3YWl0IHl2KCk7aWYoRilyZXR1cm47a2UobmUuc3RhdHVzPT09InJlYWRfZmFpbGVkIj9udWxsOm5lLml0ZW1zLmZpbHRlcihxZT0+cWUuc3RhdHVzPT09InBlbmRpbmciKS5sZW5ndGgpfWNhdGNoe0Z8fGtlKG51bGwpfX1jYXRjaChhZSl7aWYoRilyZXR1cm47YWUgaW5zdGFuY2VvZiBEbyYmYWUuc3RhdHVzPT09NDAxP08oImRlbmllZCIpOk8obmU9Pm5lPT09InJlYWR5Ij9uZToiZXJyb3IiKX19KSgpLCgpPT57Rj0hMH19LFthdF0pLFkudXNlRWZmZWN0KCgpPT57Y29uc3QgRj0oKT0+e0UobnVsbCksTygiZGVuaWVkIil9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicXNsLXByaXZhdGUtc2Vzc2lvbi1pbnZhbGlkIixGKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInFzbC1wcml2YXRlLXNlc3Npb24taW52YWxpZCIsRil9LFtdKTtjb25zdCBPZT1ZLnVzZUNhbGxiYWNrKEY9Pntjb25zdCBhZT17Li4udmUuY3VycmVudCwuLi5GfSxuZT0oKT0+e1MoYWUpLEhkKGFlKX0scWU9QW8oKTtpZihxZSYmKGFlLnBhZ2UhPT12ZS5jdXJyZW50LnBhZ2V8fGFlLmFjY291bnQhPT12ZS5jdXJyZW50LmFjY291bnQpKXtxZSgpLnRoZW4oJGU9PnskZSYmbmUoKX0pO3JldHVybn1uZSgpfSxbXSk7WS51c2VFZmZlY3QoKCk9Pntjb25zdCBGPSgpPT57Y29uc3QgYWU9amQod2luZG93LmxvY2F0aW9uLnNlYXJjaCksbmU9QW8oKTtpZihuZSl7bmUoKS50aGVuKHFlPT57cWU/UyhhZSk6SGQodmUuY3VycmVudCl9KTtyZXR1cm59UyhhZSl9O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLEYpLCgpPT53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLEYpfSxbXSk7Y29uc3QgVz1hc3luYygpPT57T28oKTt0cnl7YXdhaXQgbmgoIi9hcGkvbG9nb3V0Iix7fSl9Y2F0Y2h7fXdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oIi9sb2dpbiIpfTtpZihZLnVzZUVmZmVjdCgoKT0+e2RvY3VtZW50LnRpdGxlPWAke1pkKG8ubGFuZ3VhZ2UsYG5hdi4ke0QucGFnZX1gKX0gwrcgUXVhbnRTdHJhdGVneUxhYmB9LFtvLmxhbmd1YWdlLEQucGFnZV0pLFQ9PT0ibG9hZGluZyIpcmV0dXJuIHkuanN4KFppLHtsYW5ndWFnZTpvLmxhbmd1YWdlLGNoaWxkcmVuOnkuanN4KCJtYWluIix7Y2xhc3NOYW1lOiJib290LXNjcmVlbiIscm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoicG9saXRlIixjaGlsZHJlbjp5LmpzeChYZCx7aGVpZ2h0OjI0LHdpZHRoOjIwMH0pfSl9KTtpZihUPT09ImRlbmllZCIpcmV0dXJuIHkuanN4KFppLHtsYW5ndWFnZTpvLmxhbmd1YWdlLGNoaWxkcmVuOnkuanN4KFFkLHtraW5kOiJkZW5pZWQiLG5vQWNjZXNzOnc/LmF1dGhlbnRpY2F0ZWQ9PT0hMCYmIXcuYWxsb3dlZH0pfSk7aWYoVD09PSJlcnJvciIpcmV0dXJuIHkuanN4KFppLHtsYW5ndWFnZTpvLmxhbmd1YWdlLGNoaWxkcmVuOnkuanN4KFFkLHtraW5kOiJlcnJvciIsb25SZXRyeTooKT0+U2UoRj0+RisxKX0pfSk7Y29uc3QgeGU9e3Njb3BlOkQuc2NvcGUsb3B0aW9uczpILHNldFNjb3BlOkY9Pk9lKHtzY29wZTpGfSl9O3JldHVybiB5LmpzeChaaSx7bGFuZ3VhZ2U6by5sYW5ndWFnZSxjaGlsZHJlbjp5LmpzeChXZC5Qcm92aWRlcix7dmFsdWU6e3ByZWZzOm8sc2V0UHJlZnM6ZWUscmVzb2x2ZWRUaGVtZTpUZX0sY2hpbGRyZW46eS5qc3goJGQuUHJvdmlkZXIse3ZhbHVlOk0sY2hpbGRyZW46eS5qc3goRmQuUHJvdmlkZXIse3ZhbHVlOnhlLGNoaWxkcmVuOnkuanN4KElkLlByb3ZpZGVyLHt2YWx1ZTpPZSxjaGlsZHJlbjp5LmpzeChqdix7Y2hpbGRyZW46eS5qc3gocXYse3BhZ2U6RC5wYWdlLHRvZG9Db3VudDpoZSxzeW50aGV0aWM6dz8uc3ludGhldGljPT09ITAsbG9naW46dz8ubG9naW58fG51bGwsdXBkYXRlZEF0Ok5lLG9uTG9nb3V0OigpPT57VygpfSxjaGlsZHJlbjp5LmpzeHMoWS5TdXNwZW5zZSx7ZmFsbGJhY2s6eS5qc3goWGQse2hlaWdodDoyNDB9KSxjaGlsZHJlbjpbRC5wYWdlPT09Im92ZXJ2aWV3IiYmeS5qc3goR3Yse30pLEQucGFnZT09PSJwZXJmb3JtYW5jZSImJnkuanN4KFh2LHt9KSxELnBhZ2U9PT0iZGVjaXNpb25zIiYmeS5qc3goUXYse30pLEQucGFnZT09PSJhY2NvdW50cyImJnkuanN4KGt2LHthY2NvdW50OkQuYWNjb3VudCx0YWI6RC50YWJ9KSxELnBhZ2U9PT0ic3RyYXRlZ2llcyImJnkuanN4KFp2LHt9KSxELnBhZ2U9PT0iaGVhbHRoIiYmeS5qc3goVnYse30pXX0pfSl9KX0pfSl9KX0pfSl9Y29uc3Qgcmg9S2QoKTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGF0YXNldC50aGVtZT1KZChyaC50aGVtZSx3aW5kb3cubWF0Y2hNZWRpYT8uKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8/ITEpO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nPXJoLmxhbmd1YWdlPT09InpoIj8iemgtQ04iOiJlbiI7Y29uc3Qga2Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKTtrZCYmWF8uY3JlYXRlUm9vdChrZCkucmVuZGVyKHkuanN4KEt2LHt9KSk7ZXhwb3J0e2xoIGFzICQsYnkgYXMgQSxCdiBhcyBCLF95IGFzIEMsU3kgYXMgRCx4eSBhcyBFLG9oIGFzIEYsUmwgYXMgRyxweSBhcyBILF92IGFzIEksV3YgYXMgSix1aCBhcyBLLG5oIGFzIEwsVHkgYXMgTSxEbyBhcyBOLGFoIGFzIE8sRXkgYXMgUCxSdiBhcyBRLHl5IGFzIFIsZ3kgYXMgUyxGdiBhcyBULGV5IGFzIFUsSXYgYXMgVixseSBhcyBXLFB2IGFzIFgsSnYgYXMgWSxtdiBhcyBaLCR2IGFzIF8sUGQgYXMgYSx4byBhcyBhMCxheSBhcyBhMSxkeSBhcyBhMixoeSBhcyBhMyxmeSBhcyBhNCxueSBhcyBhNSxpeSBhcyBiLHJ5IGFzIGMsdXkgYXMgZCxydiBhcyBlLFhkIGFzIGYseXYgYXMgZyx0eSBhcyBoLEF5IGFzIGkseSBhcyBqLEhhIGFzIGssY3kgYXMgbCx2eSBhcyBtLERlIGFzIG4scHYgYXMgbyxBdiBhcyBwLG15IGFzIHEsWSBhcyByLHp5IGFzIHMsUm8gYXMgdCxUdCBhcyB1LFR2IGFzIHYsT3YgYXMgdyxTdiBhcyB4LG95IGFzIHksc3kgYXMgen07Cg==" }, + "/v2/assets/index-CY6iGPOX.js": { contentType: "text/javascript; charset=utf-8", base64: "Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bImFzc2V0cy9PdmVydmlld1BhZ2UtQlZydWdTd1ouanMiLCJhc3NldHMvSW5ib3hSZWFkRmFpbGVkLUQyQ09fcnNTLmpzIiwiYXNzZXRzL0xpbmVDaGFydC0tWGVHMnlnNS5qcyIsImFzc2V0cy9MaW5lQ2hhcnQtRGFYSjNnWWUuY3NzIiwiYXNzZXRzL0FjY291bnRHcm91cHMtQmhsamZiTm4uanMiLCJhc3NldHMvaG9va3MtQ1JOa1loeDcuanMiLCJhc3NldHMvS3BpQ2FyZC1DUlNqZF8zay5qcyIsImFzc2V0cy9PdmVydmlld1BhZ2UtMVRYdzJaeWYuY3NzIiwiYXNzZXRzL1BlcmZvcm1hbmNlUGFnZS1DYjR0bDRURi5qcyIsImFzc2V0cy9EYXRhVGFibGUtQ3ZNVS1xR2MuanMiLCJhc3NldHMvVGFicy1Cd1h4RHZJbS5qcyIsImFzc2V0cy9QZXJmb3JtYW5jZVBhZ2UtQkZfdHlNaWcuY3NzIiwiYXNzZXRzL0RlY2lzaW9uc1BhZ2UtQ3lfTDlTLXYuanMiLCJhc3NldHMvcnVudGltZV9kYWlseV9jb250cmFjdC1DZjhOdTFUZS5qcyIsImFzc2V0cy9EaWFsb2ctQ3ZOQlpIMVIuanMiLCJhc3NldHMvRGVjaXNpb25zUGFnZS1CQTNSY05fOC5jc3MiLCJhc3NldHMvQWNjb3VudHNQYWdlLUExeHc5SXJ2LmpzIiwiYXNzZXRzL0FjY291bnRzUGFnZS1Eckx2dkFLMS5jc3MiLCJhc3NldHMvU3RyYXRlZ2llc1BhZ2UtRFJqMlUwX1EuanMiLCJhc3NldHMvU3RyYXRlZ2llc1BhZ2UtQ05yckJyRGMuY3NzIiwiYXNzZXRzL0hlYWx0aFBhZ2UtQ2YySTU2WGsuanMiLCJhc3NldHMvSGVhbHRoUGFnZS16WUJDSlY0WS5jc3MiXSkpKT0+aS5tYXAoaT0+ZFtpXSk7CihmdW5jdGlvbigpe2NvbnN0IGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpLnJlbExpc3Q7aWYoZiYmZi5zdXBwb3J0cyYmZi5zdXBwb3J0cygibW9kdWxlcHJlbG9hZCIpKXJldHVybjtmb3IoY29uc3QgVCBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdJykpcyhUKTtuZXcgTXV0YXRpb25PYnNlcnZlcihUPT57Zm9yKGNvbnN0IE0gb2YgVClpZihNLnR5cGU9PT0iY2hpbGRMaXN0Iilmb3IoY29uc3QgdyBvZiBNLmFkZGVkTm9kZXMpdy50YWdOYW1lPT09IkxJTksiJiZ3LnJlbD09PSJtb2R1bGVwcmVsb2FkIiYmcyh3KX0pLm9ic2VydmUoZG9jdW1lbnQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSk7ZnVuY3Rpb24gbShUKXtjb25zdCBNPXt9O3JldHVybiBULmludGVncml0eSYmKE0uaW50ZWdyaXR5PVQuaW50ZWdyaXR5KSxULnJlZmVycmVyUG9saWN5JiYoTS5yZWZlcnJlclBvbGljeT1ULnJlZmVycmVyUG9saWN5KSxULmNyb3NzT3JpZ2luPT09InVzZS1jcmVkZW50aWFscyI/TS5jcmVkZW50aWFscz0iaW5jbHVkZSI6VC5jcm9zc09yaWdpbj09PSJhbm9ueW1vdXMiP00uY3JlZGVudGlhbHM9Im9taXQiOk0uY3JlZGVudGlhbHM9InNhbWUtb3JpZ2luIixNfWZ1bmN0aW9uIHMoVCl7aWYoVC5lcClyZXR1cm47VC5lcD0hMDtjb25zdCBNPW0oVCk7ZmV0Y2goVC5ocmVmLE0pfX0pKCk7dmFyIF9vPXtleHBvcnRzOnt9fSxFbD17fTt2YXIgeGQ7ZnVuY3Rpb24gVV8oKXtpZih4ZClyZXR1cm4gRWw7eGQ9MTt2YXIgbz1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLGY9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKTtmdW5jdGlvbiBtKHMsVCxNKXt2YXIgdz1udWxsO2lmKE0hPT12b2lkIDAmJih3PSIiK00pLFQua2V5IT09dm9pZCAwJiYodz0iIitULmtleSksImtleSJpbiBUKXtNPXt9O2Zvcih2YXIgRSBpbiBUKUUhPT0ia2V5IiYmKE1bRV09VFtFXSl9ZWxzZSBNPVQ7cmV0dXJuIFQ9TS5yZWYseyQkdHlwZW9mOm8sdHlwZTpzLGtleTp3LHJlZjpUIT09dm9pZCAwP1Q6bnVsbCxwcm9wczpNfX1yZXR1cm4gRWwuRnJhZ21lbnQ9ZixFbC5qc3g9bSxFbC5qc3hzPW0sRWx9dmFyIHpkO2Z1bmN0aW9uIENfKCl7cmV0dXJuIHpkfHwoemQ9MSxfby5leHBvcnRzPVVfKCkpLF9vLmV4cG9ydHN9dmFyIHk9Q18oKSx2bz17ZXhwb3J0czp7fX0sQWw9e30seW89e2V4cG9ydHM6e319LHBvPXt9O3ZhciBSZDtmdW5jdGlvbiBxXygpe3JldHVybiBSZHx8KFJkPTEsKGZ1bmN0aW9uKG8pe2Z1bmN0aW9uIGYoeCxDKXt2YXIgUT14Lmxlbmd0aDt4LnB1c2goQyk7ZTpmb3IoOzA8UTspe3ZhciBtZT1RLTE+Pj4xLGQ9eFttZV07aWYoMDxUKGQsQykpeFttZV09Qyx4W1FdPWQsUT1tZTtlbHNlIGJyZWFrIGV9fWZ1bmN0aW9uIG0oeCl7cmV0dXJuIHgubGVuZ3RoPT09MD9udWxsOnhbMF19ZnVuY3Rpb24gcyh4KXtpZih4Lmxlbmd0aD09PTApcmV0dXJuIG51bGw7dmFyIEM9eFswXSxRPXgucG9wKCk7aWYoUSE9PUMpe3hbMF09UTtlOmZvcih2YXIgbWU9MCxkPXgubGVuZ3RoLE49ZD4+PjE7bWU8Tjspe3ZhciBxPTIqKG1lKzEpLTEsVT14W3FdLEw9cSsxLGxlPXhbTF07aWYoMD5UKFUsUSkpTDxkJiYwPlQobGUsVSk/KHhbbWVdPWxlLHhbTF09USxtZT1MKTooeFttZV09VSx4W3FdPVEsbWU9cSk7ZWxzZSBpZihMPGQmJjA+VChsZSxRKSl4W21lXT1sZSx4W0xdPVEsbWU9TDtlbHNlIGJyZWFrIGV9fXJldHVybiBDfWZ1bmN0aW9uIFQoeCxDKXt2YXIgUT14LnNvcnRJbmRleC1DLnNvcnRJbmRleDtyZXR1cm4gUSE9PTA/UTp4LmlkLUMuaWR9aWYoby51bnN0YWJsZV9ub3c9dm9pZCAwLHR5cGVvZiBwZXJmb3JtYW5jZT09Im9iamVjdCImJnR5cGVvZiBwZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiIpe3ZhciBNPXBlcmZvcm1hbmNlO28udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIE0ubm93KCl9fWVsc2V7dmFyIHc9RGF0ZSxFPXcubm93KCk7by51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gdy5ub3coKS1FfX12YXIgRD1bXSxTPVtdLE89MSxWPW51bGwsSD0zLGNlPSExLGhlPSExLGtlPSExLE5lPSExLHR0PXR5cGVvZiBzZXRUaW1lb3V0PT0iZnVuY3Rpb24iP3NldFRpbWVvdXQ6bnVsbCxhdD10eXBlb2YgY2xlYXJUaW1lb3V0PT0iZnVuY3Rpb24iP2NsZWFyVGltZW91dDpudWxsLFNlPXR5cGVvZiBzZXRJbW1lZGlhdGU8InUiP3NldEltbWVkaWF0ZTpudWxsO2Z1bmN0aW9uIHZlKHgpe2Zvcih2YXIgQz1tKFMpO0MhPT1udWxsOyl7aWYoQy5jYWxsYmFjaz09PW51bGwpcyhTKTtlbHNlIGlmKEMuc3RhcnRUaW1lPD14KXMoUyksQy5zb3J0SW5kZXg9Qy5leHBpcmF0aW9uVGltZSxmKEQsQyk7ZWxzZSBicmVhaztDPW0oUyl9fWZ1bmN0aW9uIGVlKHgpe2lmKGtlPSExLHZlKHgpLCFoZSlpZihtKEQpIT09bnVsbCloZT0hMCxUZXx8KFRlPSEwLG5lKCkpO2Vsc2V7dmFyIEM9bShTKTtDIT09bnVsbCYmamUoZWUsQy5zdGFydFRpbWUteCl9fXZhciBUZT0hMSxNZT0tMSxXPTUseGU9LTE7ZnVuY3Rpb24gRigpe3JldHVybiBOZT8hMDohKG8udW5zdGFibGVfbm93KCkteGU8Vyl9ZnVuY3Rpb24gYWUoKXtpZihOZT0hMSxUZSl7dmFyIHg9by51bnN0YWJsZV9ub3coKTt4ZT14O3ZhciBDPSEwO3RyeXtlOntoZT0hMSxrZSYmKGtlPSExLGF0KE1lKSxNZT0tMSksY2U9ITA7dmFyIFE9SDt0cnl7dDp7Zm9yKHZlKHgpLFY9bShEKTtWIT09bnVsbCYmIShWLmV4cGlyYXRpb25UaW1lPngmJkYoKSk7KXt2YXIgbWU9Vi5jYWxsYmFjaztpZih0eXBlb2YgbWU9PSJmdW5jdGlvbiIpe1YuY2FsbGJhY2s9bnVsbCxIPVYucHJpb3JpdHlMZXZlbDt2YXIgZD1tZShWLmV4cGlyYXRpb25UaW1lPD14KTtpZih4PW8udW5zdGFibGVfbm93KCksdHlwZW9mIGQ9PSJmdW5jdGlvbiIpe1YuY2FsbGJhY2s9ZCx2ZSh4KSxDPSEwO2JyZWFrIHR9Vj09PW0oRCkmJnMoRCksdmUoeCl9ZWxzZSBzKEQpO1Y9bShEKX1pZihWIT09bnVsbClDPSEwO2Vsc2V7dmFyIE49bShTKTtOIT09bnVsbCYmamUoZWUsTi5zdGFydFRpbWUteCksQz0hMX19YnJlYWsgZX1maW5hbGx5e1Y9bnVsbCxIPVEsY2U9ITF9Qz12b2lkIDB9fWZpbmFsbHl7Qz9uZSgpOlRlPSExfX19dmFyIG5lO2lmKHR5cGVvZiBTZT09ImZ1bmN0aW9uIiluZT1mdW5jdGlvbigpe1NlKGFlKX07ZWxzZSBpZih0eXBlb2YgTWVzc2FnZUNoYW5uZWw8InUiKXt2YXIgcWU9bmV3IE1lc3NhZ2VDaGFubmVsLCRlPXFlLnBvcnQyO3FlLnBvcnQxLm9ubWVzc2FnZT1hZSxuZT1mdW5jdGlvbigpeyRlLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIG5lPWZ1bmN0aW9uKCl7dHQoYWUsMCl9O2Z1bmN0aW9uIGplKHgsQyl7TWU9dHQoZnVuY3Rpb24oKXt4KG8udW5zdGFibGVfbm93KCkpfSxDKX1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG8udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxvLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsby51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG8udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsby51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLG8udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oeCl7eC5jYWxsYmFjaz1udWxsfSxvLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKHgpezA+eHx8MTI1PHg/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6Vz0wPHg/TWF0aC5mbG9vcigxZTMveCk6NX0sby51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBIfSxvLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oeCl7c3dpdGNoKEgpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciBDPTM7YnJlYWs7ZGVmYXVsdDpDPUh9dmFyIFE9SDtIPUM7dHJ5e3JldHVybiB4KCl9ZmluYWxseXtIPVF9fSxvLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe05lPSEwfSxvLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbih4LEMpe3N3aXRjaCh4KXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6eD0zfXZhciBRPUg7SD14O3RyeXtyZXR1cm4gQygpfWZpbmFsbHl7SD1RfX0sby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKHgsQyxRKXt2YXIgbWU9by51bnN0YWJsZV9ub3coKTtzd2l0Y2godHlwZW9mIFE9PSJvYmplY3QiJiZRIT09bnVsbD8oUT1RLmRlbGF5LFE9dHlwZW9mIFE9PSJudW1iZXIiJiYwPFE/bWUrUTptZSk6UT1tZSx4KXtjYXNlIDE6dmFyIGQ9LTE7YnJlYWs7Y2FzZSAyOmQ9MjUwO2JyZWFrO2Nhc2UgNTpkPTEwNzM3NDE4MjM7YnJlYWs7Y2FzZSA0OmQ9MWU0O2JyZWFrO2RlZmF1bHQ6ZD01ZTN9cmV0dXJuIGQ9UStkLHg9e2lkOk8rKyxjYWxsYmFjazpDLHByaW9yaXR5TGV2ZWw6eCxzdGFydFRpbWU6USxleHBpcmF0aW9uVGltZTpkLHNvcnRJbmRleDotMX0sUT5tZT8oeC5zb3J0SW5kZXg9USxmKFMseCksbShEKT09PW51bGwmJng9PT1tKFMpJiYoa2U/KGF0KE1lKSxNZT0tMSk6a2U9ITAsamUoZWUsUS1tZSkpKTooeC5zb3J0SW5kZXg9ZCxmKEQseCksaGV8fGNlfHwoaGU9ITAsVGV8fChUZT0hMCxuZSgpKSkpLHh9LG8udW5zdGFibGVfc2hvdWxkWWllbGQ9RixvLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbih4KXt2YXIgQz1IO3JldHVybiBmdW5jdGlvbigpe3ZhciBRPUg7SD1DO3RyeXtyZXR1cm4geC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtIPVF9fX19KShwbykpLHBvfXZhciBEZDtmdW5jdGlvbiBqXygpe3JldHVybiBEZHx8KERkPTEseW8uZXhwb3J0cz1xXygpKSx5by5leHBvcnRzfXZhciBnbz17ZXhwb3J0czp7fX0sSz17fTt2YXIgTmQ7ZnVuY3Rpb24gSF8oKXtpZihOZClyZXR1cm4gSztOZD0xO3ZhciBvPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksZj1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxtPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50Iikscz1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLFQ9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxNPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksdz1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksRT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEQ9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxTPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxPPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSxWPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBIKGQpe3JldHVybiBkPT09bnVsbHx8dHlwZW9mIGQhPSJvYmplY3QiP251bGw6KGQ9ViYmZFtWXXx8ZFsiQEBpdGVyYXRvciJdLHR5cGVvZiBkPT0iZnVuY3Rpb24iP2Q6bnVsbCl9dmFyIGNlPXtpc01vdW50ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKCl7fSxlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oKXt9fSxoZT1PYmplY3QuYXNzaWduLGtlPXt9O2Z1bmN0aW9uIE5lKGQsTixxKXt0aGlzLnByb3BzPWQsdGhpcy5jb250ZXh0PU4sdGhpcy5yZWZzPWtlLHRoaXMudXBkYXRlcj1xfHxjZX1OZS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD17fSxOZS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZCxOKXtpZih0eXBlb2YgZCE9Im9iamVjdCImJnR5cGVvZiBkIT0iZnVuY3Rpb24iJiZkIT1udWxsKXRocm93IEVycm9yKCJ0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZCxOLCJzZXRTdGF0ZSIpfSxOZS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZCl7dGhpcy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzLGQsImZvcmNlVXBkYXRlIil9O2Z1bmN0aW9uIHR0KCl7fXR0LnByb3RvdHlwZT1OZS5wcm90b3R5cGU7ZnVuY3Rpb24gYXQoZCxOLHEpe3RoaXMucHJvcHM9ZCx0aGlzLmNvbnRleHQ9Tix0aGlzLnJlZnM9a2UsdGhpcy51cGRhdGVyPXF8fGNlfXZhciBTZT1hdC5wcm90b3R5cGU9bmV3IHR0O1NlLmNvbnN0cnVjdG9yPWF0LGhlKFNlLE5lLnByb3RvdHlwZSksU2UuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHZlPUFycmF5LmlzQXJyYXksZWU9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbCxWOm51bGx9LFRlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTWUoZCxOLHEsVSxMLGxlKXtyZXR1cm4gcT1sZS5yZWYseyQkdHlwZW9mOm8sdHlwZTpkLGtleTpOLHJlZjpxIT09dm9pZCAwP3E6bnVsbCxwcm9wczpsZX19ZnVuY3Rpb24gVyhkLE4pe3JldHVybiBNZShkLnR5cGUsTix2b2lkIDAsdm9pZCAwLHZvaWQgMCxkLnByb3BzKX1mdW5jdGlvbiB4ZShkKXtyZXR1cm4gdHlwZW9mIGQ9PSJvYmplY3QiJiZkIT09bnVsbCYmZC4kJHR5cGVvZj09PW99ZnVuY3Rpb24gRihkKXt2YXIgTj17Ij0iOiI9MCIsIjoiOiI9MiJ9O3JldHVybiIkIitkLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihxKXtyZXR1cm4gTltxXX0pfXZhciBhZT0vXC8rL2c7ZnVuY3Rpb24gbmUoZCxOKXtyZXR1cm4gdHlwZW9mIGQ9PSJvYmplY3QiJiZkIT09bnVsbCYmZC5rZXkhPW51bGw/RigiIitkLmtleSk6Ti50b1N0cmluZygzNil9ZnVuY3Rpb24gcWUoKXt9ZnVuY3Rpb24gJGUoZCl7c3dpdGNoKGQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZC5yZWFzb247ZGVmYXVsdDpzd2l0Y2godHlwZW9mIGQuc3RhdHVzPT0ic3RyaW5nIj9kLnRoZW4ocWUscWUpOihkLnN0YXR1cz0icGVuZGluZyIsZC50aGVuKGZ1bmN0aW9uKE4pe2Quc3RhdHVzPT09InBlbmRpbmciJiYoZC5zdGF0dXM9ImZ1bGZpbGxlZCIsZC52YWx1ZT1OKX0sZnVuY3Rpb24oTil7ZC5zdGF0dXM9PT0icGVuZGluZyImJihkLnN0YXR1cz0icmVqZWN0ZWQiLGQucmVhc29uPU4pfSkpLGQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZC5yZWFzb259fXRocm93IGR9ZnVuY3Rpb24gamUoZCxOLHEsVSxMKXt2YXIgbGU9dHlwZW9mIGQ7KGxlPT09InVuZGVmaW5lZCJ8fGxlPT09ImJvb2xlYW4iKSYmKGQ9bnVsbCk7dmFyIFo9ITE7aWYoZD09PW51bGwpWj0hMDtlbHNlIHN3aXRjaChsZSl7Y2FzZSJiaWdpbnQiOmNhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Wj0hMDticmVhaztjYXNlIm9iamVjdCI6c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgbzpjYXNlIGY6Wj0hMDticmVhaztjYXNlIE86cmV0dXJuIFo9ZC5faW5pdCxqZShaKGQuX3BheWxvYWQpLE4scSxVLEwpfX1pZihaKXJldHVybiBMPUwoZCksWj1VPT09IiI/Ii4iK25lKGQsMCk6VSx2ZShMKT8ocT0iIixaIT1udWxsJiYocT1aLnJlcGxhY2UoYWUsIiQmLyIpKyIvIiksamUoTCxOLHEsIiIsZnVuY3Rpb24oSnQpe3JldHVybiBKdH0pKTpMIT1udWxsJiYoeGUoTCkmJihMPVcoTCxxKyhMLmtleT09bnVsbHx8ZCYmZC5rZXk9PT1MLmtleT8iIjooIiIrTC5rZXkpLnJlcGxhY2UoYWUsIiQmLyIpKyIvIikrWikpLE4ucHVzaChMKSksMTtaPTA7dmFyIG50PVU9PT0iIj8iLiI6VSsiOiI7aWYodmUoZCkpZm9yKHZhciBwZT0wO3BlPGQubGVuZ3RoO3BlKyspVT1kW3BlXSxsZT1udCtuZShVLHBlKSxaKz1qZShVLE4scSxsZSxMKTtlbHNlIGlmKHBlPUgoZCksdHlwZW9mIHBlPT0iZnVuY3Rpb24iKWZvcihkPXBlLmNhbGwoZCkscGU9MDshKFU9ZC5uZXh0KCkpLmRvbmU7KVU9VS52YWx1ZSxsZT1udCtuZShVLHBlKyspLForPWplKFUsTixxLGxlLEwpO2Vsc2UgaWYobGU9PT0ib2JqZWN0Iil7aWYodHlwZW9mIGQudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gamUoJGUoZCksTixxLFUsTCk7dGhyb3cgTj1TdHJpbmcoZCksRXJyb3IoIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogIisoTj09PSJbb2JqZWN0IE9iamVjdF0iPyJvYmplY3Qgd2l0aCBrZXlzIHsiK09iamVjdC5rZXlzKGQpLmpvaW4oIiwgIikrIn0iOk4pKyIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuIil9cmV0dXJuIFp9ZnVuY3Rpb24geChkLE4scSl7aWYoZD09bnVsbClyZXR1cm4gZDt2YXIgVT1bXSxMPTA7cmV0dXJuIGplKGQsVSwiIiwiIixmdW5jdGlvbihsZSl7cmV0dXJuIE4uY2FsbChxLGxlLEwrKyl9KSxVfWZ1bmN0aW9uIEMoZCl7aWYoZC5fc3RhdHVzPT09LTEpe3ZhciBOPWQuX3Jlc3VsdDtOPU4oKSxOLnRoZW4oZnVuY3Rpb24ocSl7KGQuX3N0YXR1cz09PTB8fGQuX3N0YXR1cz09PS0xKSYmKGQuX3N0YXR1cz0xLGQuX3Jlc3VsdD1xKX0sZnVuY3Rpb24ocSl7KGQuX3N0YXR1cz09PTB8fGQuX3N0YXR1cz09PS0xKSYmKGQuX3N0YXR1cz0yLGQuX3Jlc3VsdD1xKX0pLGQuX3N0YXR1cz09PS0xJiYoZC5fc3RhdHVzPTAsZC5fcmVzdWx0PU4pfWlmKGQuX3N0YXR1cz09PTEpcmV0dXJuIGQuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGQuX3Jlc3VsdH12YXIgUT10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZCl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIE49bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBkPT0ib2JqZWN0IiYmZCE9PW51bGwmJnR5cGVvZiBkLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhkLm1lc3NhZ2UpOlN0cmluZyhkKSxlcnJvcjpkfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KE4pKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsZCk7cmV0dXJufWNvbnNvbGUuZXJyb3IoZCl9O2Z1bmN0aW9uIG1lKCl7fXJldHVybiBLLkNoaWxkcmVuPXttYXA6eCxmb3JFYWNoOmZ1bmN0aW9uKGQsTixxKXt4KGQsZnVuY3Rpb24oKXtOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scSl9LGNvdW50OmZ1bmN0aW9uKGQpe3ZhciBOPTA7cmV0dXJuIHgoZCxmdW5jdGlvbigpe04rK30pLE59LHRvQXJyYXk6ZnVuY3Rpb24oZCl7cmV0dXJuIHgoZCxmdW5jdGlvbihOKXtyZXR1cm4gTn0pfHxbXX0sb25seTpmdW5jdGlvbihkKXtpZigheGUoZCkpdGhyb3cgRXJyb3IoIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLiIpO3JldHVybiBkfX0sSy5Db21wb25lbnQ9TmUsSy5GcmFnbWVudD1tLEsuUHJvZmlsZXI9VCxLLlB1cmVDb21wb25lbnQ9YXQsSy5TdHJpY3RNb2RlPXMsSy5TdXNwZW5zZT1ELEsuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWVlLEsuX19DT01QSUxFUl9SVU5USU1FPXtfX3Byb3RvX186bnVsbCxjOmZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZU1lbW9DYWNoZShkKX19LEsuY2FjaGU9ZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGQuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sSy5jbG9uZUVsZW1lbnQ9ZnVuY3Rpb24oZCxOLHEpe2lmKGQ9PW51bGwpdGhyb3cgRXJyb3IoIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgIitkKyIuIik7dmFyIFU9aGUoe30sZC5wcm9wcyksTD1kLmtleSxsZT12b2lkIDA7aWYoTiE9bnVsbClmb3IoWiBpbiBOLnJlZiE9PXZvaWQgMCYmKGxlPXZvaWQgMCksTi5rZXkhPT12b2lkIDAmJihMPSIiK04ua2V5KSxOKSFUZS5jYWxsKE4sWil8fFo9PT0ia2V5Inx8Wj09PSJfX3NlbGYifHxaPT09Il9fc291cmNlInx8Wj09PSJyZWYiJiZOLnJlZj09PXZvaWQgMHx8KFVbWl09TltaXSk7dmFyIFo9YXJndW1lbnRzLmxlbmd0aC0yO2lmKFo9PT0xKVUuY2hpbGRyZW49cTtlbHNlIGlmKDE8Wil7Zm9yKHZhciBudD1BcnJheShaKSxwZT0wO3BlPFo7cGUrKyludFtwZV09YXJndW1lbnRzW3BlKzJdO1UuY2hpbGRyZW49bnR9cmV0dXJuIE1lKGQudHlwZSxMLHZvaWQgMCx2b2lkIDAsbGUsVSl9LEsuY3JlYXRlQ29udGV4dD1mdW5jdGlvbihkKXtyZXR1cm4gZD17JCR0eXBlb2Y6dyxfY3VycmVudFZhbHVlOmQsX2N1cnJlbnRWYWx1ZTI6ZCxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9LGQuUHJvdmlkZXI9ZCxkLkNvbnN1bWVyPXskJHR5cGVvZjpNLF9jb250ZXh0OmR9LGR9LEsuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihkLE4scSl7dmFyIFUsTD17fSxsZT1udWxsO2lmKE4hPW51bGwpZm9yKFUgaW4gTi5rZXkhPT12b2lkIDAmJihsZT0iIitOLmtleSksTilUZS5jYWxsKE4sVSkmJlUhPT0ia2V5IiYmVSE9PSJfX3NlbGYiJiZVIT09Il9fc291cmNlIiYmKExbVV09TltVXSk7dmFyIFo9YXJndW1lbnRzLmxlbmd0aC0yO2lmKFo9PT0xKUwuY2hpbGRyZW49cTtlbHNlIGlmKDE8Wil7Zm9yKHZhciBudD1BcnJheShaKSxwZT0wO3BlPFo7cGUrKyludFtwZV09YXJndW1lbnRzW3BlKzJdO0wuY2hpbGRyZW49bnR9aWYoZCYmZC5kZWZhdWx0UHJvcHMpZm9yKFUgaW4gWj1kLmRlZmF1bHRQcm9wcyxaKUxbVV09PT12b2lkIDAmJihMW1VdPVpbVV0pO3JldHVybiBNZShkLGxlLHZvaWQgMCx2b2lkIDAsbnVsbCxMKX0sSy5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sSy5mb3J3YXJkUmVmPWZ1bmN0aW9uKGQpe3JldHVybnskJHR5cGVvZjpFLHJlbmRlcjpkfX0sSy5pc1ZhbGlkRWxlbWVudD14ZSxLLmxhenk9ZnVuY3Rpb24oZCl7cmV0dXJueyQkdHlwZW9mOk8sX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDpkfSxfaW5pdDpDfX0sSy5tZW1vPWZ1bmN0aW9uKGQsTil7cmV0dXJueyQkdHlwZW9mOlMsdHlwZTpkLGNvbXBhcmU6Tj09PXZvaWQgMD9udWxsOk59fSxLLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihkKXt2YXIgTj1lZS5ULHE9e307ZWUuVD1xO3RyeXt2YXIgVT1kKCksTD1lZS5TO0whPT1udWxsJiZMKHEsVSksdHlwZW9mIFU9PSJvYmplY3QiJiZVIT09bnVsbCYmdHlwZW9mIFUudGhlbj09ImZ1bmN0aW9uIiYmVS50aGVuKG1lLFEpfWNhdGNoKGxlKXtRKGxlKX1maW5hbGx5e2VlLlQ9Tn19LEsudW5zdGFibGVfdXNlQ2FjaGVSZWZyZXNoPWZ1bmN0aW9uKCl7cmV0dXJuIGVlLkgudXNlQ2FjaGVSZWZyZXNoKCl9LEsudXNlPWZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZShkKX0sSy51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihkLE4scSl7cmV0dXJuIGVlLkgudXNlQWN0aW9uU3RhdGUoZCxOLHEpfSxLLnVzZUNhbGxiYWNrPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlQ2FsbGJhY2soZCxOKX0sSy51c2VDb250ZXh0PWZ1bmN0aW9uKGQpe3JldHVybiBlZS5ILnVzZUNvbnRleHQoZCl9LEsudXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sSy51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlRGVmZXJyZWRWYWx1ZShkLE4pfSxLLnVzZUVmZmVjdD1mdW5jdGlvbihkLE4scSl7dmFyIFU9ZWUuSDtpZih0eXBlb2YgcT09ImZ1bmN0aW9uIil0aHJvdyBFcnJvcigidXNlRWZmZWN0IENSVUQgb3ZlcmxvYWQgaXMgbm90IGVuYWJsZWQgaW4gdGhpcyBidWlsZCBvZiBSZWFjdC4iKTtyZXR1cm4gVS51c2VFZmZlY3QoZCxOKX0sSy51c2VJZD1mdW5jdGlvbigpe3JldHVybiBlZS5ILnVzZUlkKCl9LEsudXNlSW1wZXJhdGl2ZUhhbmRsZT1mdW5jdGlvbihkLE4scSl7cmV0dXJuIGVlLkgudXNlSW1wZXJhdGl2ZUhhbmRsZShkLE4scSl9LEsudXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlSW5zZXJ0aW9uRWZmZWN0KGQsTil9LEsudXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlTGF5b3V0RWZmZWN0KGQsTil9LEsudXNlTWVtbz1mdW5jdGlvbihkLE4pe3JldHVybiBlZS5ILnVzZU1lbW8oZCxOKX0sSy51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKGQsTil7cmV0dXJuIGVlLkgudXNlT3B0aW1pc3RpYyhkLE4pfSxLLnVzZVJlZHVjZXI9ZnVuY3Rpb24oZCxOLHEpe3JldHVybiBlZS5ILnVzZVJlZHVjZXIoZCxOLHEpfSxLLnVzZVJlZj1mdW5jdGlvbihkKXtyZXR1cm4gZWUuSC51c2VSZWYoZCl9LEsudXNlU3RhdGU9ZnVuY3Rpb24oZCl7cmV0dXJuIGVlLkgudXNlU3RhdGUoZCl9LEsudXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oZCxOLHEpe3JldHVybiBlZS5ILnVzZVN5bmNFeHRlcm5hbFN0b3JlKGQsTixxKX0sSy51c2VUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGVlLkgudXNlVHJhbnNpdGlvbigpfSxLLnZlcnNpb249IjE5LjEuMSIsS312YXIgTWQ7ZnVuY3Rpb24gem8oKXtyZXR1cm4gTWR8fChNZD0xLGdvLmV4cG9ydHM9SF8oKSksZ28uZXhwb3J0c312YXIgYm89e2V4cG9ydHM6e319LEtlPXt9O3ZhciBPZDtmdW5jdGlvbiBCXygpe2lmKE9kKXJldHVybiBLZTtPZD0xO3ZhciBvPXpvKCk7ZnVuY3Rpb24gZihEKXt2YXIgUz0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrRDtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe1MrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBPPTI7Tzxhcmd1bWVudHMubGVuZ3RoO08rKylTKz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbT10pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitEKyI7IHZpc2l0ICIrUysiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIG0oKXt9dmFyIHM9e2Q6e2Y6bSxyOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoZig1MjIpKX0sRDptLEM6bSxMOm0sbSxYOm0sUzptLE06bX0scDowLGZpbmRET01Ob2RlOm51bGx9LFQ9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIik7ZnVuY3Rpb24gTShELFMsTyl7dmFyIFY9Mzxhcmd1bWVudHMubGVuZ3RoJiZhcmd1bWVudHNbM10hPT12b2lkIDA/YXJndW1lbnRzWzNdOm51bGw7cmV0dXJueyQkdHlwZW9mOlQsa2V5OlY9PW51bGw/bnVsbDoiIitWLGNoaWxkcmVuOkQsY29udGFpbmVySW5mbzpTLGltcGxlbWVudGF0aW9uOk99fXZhciB3PW8uX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFO2Z1bmN0aW9uIEUoRCxTKXtpZihEPT09ImZvbnQiKXJldHVybiIiO2lmKHR5cGVvZiBTPT0ic3RyaW5nIilyZXR1cm4gUz09PSJ1c2UtY3JlZGVudGlhbHMiP1M6IiJ9cmV0dXJuIEtlLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1zLEtlLmNyZWF0ZVBvcnRhbD1mdW5jdGlvbihELFMpe3ZhciBPPTI8YXJndW1lbnRzLmxlbmd0aCYmYXJndW1lbnRzWzJdIT09dm9pZCAwP2FyZ3VtZW50c1syXTpudWxsO2lmKCFTfHxTLm5vZGVUeXBlIT09MSYmUy5ub2RlVHlwZSE9PTkmJlMubm9kZVR5cGUhPT0xMSl0aHJvdyBFcnJvcihmKDI5OSkpO3JldHVybiBNKEQsUyxudWxsLE8pfSxLZS5mbHVzaFN5bmM9ZnVuY3Rpb24oRCl7dmFyIFM9dy5ULE89cy5wO3RyeXtpZih3LlQ9bnVsbCxzLnA9MixEKXJldHVybiBEKCl9ZmluYWxseXt3LlQ9UyxzLnA9TyxzLmQuZigpfX0sS2UucHJlY29ubmVjdD1mdW5jdGlvbihELFMpe3R5cGVvZiBEPT0ic3RyaW5nIiYmKFM/KFM9Uy5jcm9zc09yaWdpbixTPXR5cGVvZiBTPT0ic3RyaW5nIj9TPT09InVzZS1jcmVkZW50aWFscyI/UzoiIjp2b2lkIDApOlM9bnVsbCxzLmQuQyhELFMpKX0sS2UucHJlZmV0Y2hETlM9ZnVuY3Rpb24oRCl7dHlwZW9mIEQ9PSJzdHJpbmciJiZzLmQuRChEKX0sS2UucHJlaW5pdD1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIiYmUyYmdHlwZW9mIFMuYXM9PSJzdHJpbmciKXt2YXIgTz1TLmFzLFY9RShPLFMuY3Jvc3NPcmlnaW4pLEg9dHlwZW9mIFMuaW50ZWdyaXR5PT0ic3RyaW5nIj9TLmludGVncml0eTp2b2lkIDAsY2U9dHlwZW9mIFMuZmV0Y2hQcmlvcml0eT09InN0cmluZyI/Uy5mZXRjaFByaW9yaXR5OnZvaWQgMDtPPT09InN0eWxlIj9zLmQuUyhELHR5cGVvZiBTLnByZWNlZGVuY2U9PSJzdHJpbmciP1MucHJlY2VkZW5jZTp2b2lkIDAse2Nyb3NzT3JpZ2luOlYsaW50ZWdyaXR5OkgsZmV0Y2hQcmlvcml0eTpjZX0pOk89PT0ic2NyaXB0IiYmcy5kLlgoRCx7Y3Jvc3NPcmlnaW46VixpbnRlZ3JpdHk6SCxmZXRjaFByaW9yaXR5OmNlLG5vbmNlOnR5cGVvZiBTLm5vbmNlPT0ic3RyaW5nIj9TLm5vbmNlOnZvaWQgMH0pfX0sS2UucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIilpZih0eXBlb2YgUz09Im9iamVjdCImJlMhPT1udWxsKXtpZihTLmFzPT1udWxsfHxTLmFzPT09InNjcmlwdCIpe3ZhciBPPUUoUy5hcyxTLmNyb3NzT3JpZ2luKTtzLmQuTShELHtjcm9zc09yaWdpbjpPLGludGVncml0eTp0eXBlb2YgUy5pbnRlZ3JpdHk9PSJzdHJpbmciP1MuaW50ZWdyaXR5OnZvaWQgMCxub25jZTp0eXBlb2YgUy5ub25jZT09InN0cmluZyI/Uy5ub25jZTp2b2lkIDB9KX19ZWxzZSBTPT1udWxsJiZzLmQuTShEKX0sS2UucHJlbG9hZD1mdW5jdGlvbihELFMpe2lmKHR5cGVvZiBEPT0ic3RyaW5nIiYmdHlwZW9mIFM9PSJvYmplY3QiJiZTIT09bnVsbCYmdHlwZW9mIFMuYXM9PSJzdHJpbmciKXt2YXIgTz1TLmFzLFY9RShPLFMuY3Jvc3NPcmlnaW4pO3MuZC5MKEQsTyx7Y3Jvc3NPcmlnaW46VixpbnRlZ3JpdHk6dHlwZW9mIFMuaW50ZWdyaXR5PT0ic3RyaW5nIj9TLmludGVncml0eTp2b2lkIDAsbm9uY2U6dHlwZW9mIFMubm9uY2U9PSJzdHJpbmciP1Mubm9uY2U6dm9pZCAwLHR5cGU6dHlwZW9mIFMudHlwZT09InN0cmluZyI/Uy50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5OnR5cGVvZiBTLmZldGNoUHJpb3JpdHk9PSJzdHJpbmciP1MuZmV0Y2hQcmlvcml0eTp2b2lkIDAscmVmZXJyZXJQb2xpY3k6dHlwZW9mIFMucmVmZXJyZXJQb2xpY3k9PSJzdHJpbmciP1MucmVmZXJyZXJQb2xpY3k6dm9pZCAwLGltYWdlU3JjU2V0OnR5cGVvZiBTLmltYWdlU3JjU2V0PT0ic3RyaW5nIj9TLmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOnR5cGVvZiBTLmltYWdlU2l6ZXM9PSJzdHJpbmciP1MuaW1hZ2VTaXplczp2b2lkIDAsbWVkaWE6dHlwZW9mIFMubWVkaWE9PSJzdHJpbmciP1MubWVkaWE6dm9pZCAwfSl9fSxLZS5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKEQsUyl7aWYodHlwZW9mIEQ9PSJzdHJpbmciKWlmKFMpe3ZhciBPPUUoUy5hcyxTLmNyb3NzT3JpZ2luKTtzLmQubShELHthczp0eXBlb2YgUy5hcz09InN0cmluZyImJlMuYXMhPT0ic2NyaXB0Ij9TLmFzOnZvaWQgMCxjcm9zc09yaWdpbjpPLGludGVncml0eTp0eXBlb2YgUy5pbnRlZ3JpdHk9PSJzdHJpbmciP1MuaW50ZWdyaXR5OnZvaWQgMH0pfWVsc2Ugcy5kLm0oRCl9LEtlLnJlcXVlc3RGb3JtUmVzZXQ9ZnVuY3Rpb24oRCl7cy5kLnIoRCl9LEtlLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKEQsUyl7cmV0dXJuIEQoUyl9LEtlLnVzZUZvcm1TdGF0ZT1mdW5jdGlvbihELFMsTyl7cmV0dXJuIHcuSC51c2VGb3JtU3RhdGUoRCxTLE8pfSxLZS51c2VGb3JtU3RhdHVzPWZ1bmN0aW9uKCl7cmV0dXJuIHcuSC51c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpfSxLZS52ZXJzaW9uPSIxOS4xLjEiLEtlfXZhciB3ZDtmdW5jdGlvbiBZXygpe2lmKHdkKXJldHVybiBiby5leHBvcnRzO3dkPTE7ZnVuY3Rpb24gbygpe2lmKCEodHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXz4idSJ8fHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UhPSJmdW5jdGlvbiIpKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0Uobyl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihmKX19cmV0dXJuIG8oKSxiby5leHBvcnRzPUJfKCksYm8uZXhwb3J0c312YXIgVWQ7ZnVuY3Rpb24gTF8oKXtpZihVZClyZXR1cm4gQWw7VWQ9MTt2YXIgbz1qXygpLGY9em8oKSxtPVlfKCk7ZnVuY3Rpb24gcyhlKXt2YXIgdD0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe3QrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBhPTI7YTxhcmd1bWVudHMubGVuZ3RoO2ErKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbYV0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIFQoZSl7cmV0dXJuISghZXx8ZS5ub2RlVHlwZSE9PTEmJmUubm9kZVR5cGUhPT05JiZlLm5vZGVUeXBlIT09MTEpfWZ1bmN0aW9uIE0oZSl7dmFyIHQ9ZSxhPWU7aWYoZS5hbHRlcm5hdGUpZm9yKDt0LnJldHVybjspdD10LnJldHVybjtlbHNle2U9dDtkbyB0PWUsKHQuZmxhZ3MmNDA5OCkhPT0wJiYoYT10LnJldHVybiksZT10LnJldHVybjt3aGlsZShlKX1yZXR1cm4gdC50YWc9PT0zP2E6bnVsbH1mdW5jdGlvbiB3KGUpe2lmKGUudGFnPT09MTMpe3ZhciB0PWUubWVtb2l6ZWRTdGF0ZTtpZih0PT09bnVsbCYmKGU9ZS5hbHRlcm5hdGUsZSE9PW51bGwmJih0PWUubWVtb2l6ZWRTdGF0ZSkpLHQhPT1udWxsKXJldHVybiB0LmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gRShlKXtpZihNKGUpIT09ZSl0aHJvdyBFcnJvcihzKDE4OCkpfWZ1bmN0aW9uIEQoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpe2lmKHQ9TShlKSx0PT09bnVsbCl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiB0IT09ZT9udWxsOmV9Zm9yKHZhciBhPWUsbj10Ozspe3ZhciBsPWEucmV0dXJuO2lmKGw9PT1udWxsKWJyZWFrO3ZhciBpPWwuYWx0ZXJuYXRlO2lmKGk9PT1udWxsKXtpZihuPWwucmV0dXJuLG4hPT1udWxsKXthPW47Y29udGludWV9YnJlYWt9aWYobC5jaGlsZD09PWkuY2hpbGQpe2ZvcihpPWwuY2hpbGQ7aTspe2lmKGk9PT1hKXJldHVybiBFKGwpLGU7aWYoaT09PW4pcmV0dXJuIEUobCksdDtpPWkuc2libGluZ310aHJvdyBFcnJvcihzKDE4OCkpfWlmKGEucmV0dXJuIT09bi5yZXR1cm4pYT1sLG49aTtlbHNle2Zvcih2YXIgdT0hMSxjPWwuY2hpbGQ7Yzspe2lmKGM9PT1hKXt1PSEwLGE9bCxuPWk7YnJlYWt9aWYoYz09PW4pe3U9ITAsbj1sLGE9aTticmVha31jPWMuc2libGluZ31pZighdSl7Zm9yKGM9aS5jaGlsZDtjOyl7aWYoYz09PWEpe3U9ITAsYT1pLG49bDticmVha31pZihjPT09bil7dT0hMCxuPWksYT1sO2JyZWFrfWM9Yy5zaWJsaW5nfWlmKCF1KXRocm93IEVycm9yKHMoMTg5KSl9fWlmKGEuYWx0ZXJuYXRlIT09bil0aHJvdyBFcnJvcihzKDE5MCkpfWlmKGEudGFnIT09Myl0aHJvdyBFcnJvcihzKDE4OCkpO3JldHVybiBhLnN0YXRlTm9kZS5jdXJyZW50PT09YT9lOnR9ZnVuY3Rpb24gUyhlKXt2YXIgdD1lLnRhZztpZih0PT09NXx8dD09PTI2fHx0PT09Mjd8fHQ9PT02KXJldHVybiBlO2ZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXtpZih0PVMoZSksdCE9PW51bGwpcmV0dXJuIHQ7ZT1lLnNpYmxpbmd9cmV0dXJuIG51bGx9dmFyIE89T2JqZWN0LmFzc2lnbixWPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxIPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksY2U9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksaGU9U3ltYm9sLmZvcigicmVhY3QuZnJhZ21lbnQiKSxrZT1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLE5lPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIiksdHQ9U3ltYm9sLmZvcigicmVhY3QucHJvdmlkZXIiKSxhdD1TeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLFNlPVN5bWJvbC5mb3IoInJlYWN0LmNvbnRleHQiKSx2ZT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLGVlPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIiksVGU9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2VfbGlzdCIpLE1lPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxXPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSx4ZT1TeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLEY9U3ltYm9sLmZvcigicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbCIpLGFlPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiBuZShlKXtyZXR1cm4gZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Ij9udWxsOihlPWFlJiZlW2FlXXx8ZVsiQEBpdGVyYXRvciJdLHR5cGVvZiBlPT0iZnVuY3Rpb24iP2U6bnVsbCl9dmFyIHFlPVN5bWJvbC5mb3IoInJlYWN0LmNsaWVudC5yZWZlcmVuY2UiKTtmdW5jdGlvbiAkZShlKXtpZihlPT1udWxsKXJldHVybiBudWxsO2lmKHR5cGVvZiBlPT0iZnVuY3Rpb24iKXJldHVybiBlLiQkdHlwZW9mPT09cWU/bnVsbDplLmRpc3BsYXlOYW1lfHxlLm5hbWV8fG51bGw7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO3N3aXRjaChlKXtjYXNlIGhlOnJldHVybiJGcmFnbWVudCI7Y2FzZSBOZTpyZXR1cm4iUHJvZmlsZXIiO2Nhc2Uga2U6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgZWU6cmV0dXJuIlN1c3BlbnNlIjtjYXNlIFRlOnJldHVybiJTdXNwZW5zZUxpc3QiO2Nhc2UgeGU6cmV0dXJuIkFjdGl2aXR5In1pZih0eXBlb2YgZT09Im9iamVjdCIpc3dpdGNoKGUuJCR0eXBlb2Ype2Nhc2UgY2U6cmV0dXJuIlBvcnRhbCI7Y2FzZSBTZTpyZXR1cm4oZS5kaXNwbGF5TmFtZXx8IkNvbnRleHQiKSsiLlByb3ZpZGVyIjtjYXNlIGF0OnJldHVybihlLl9jb250ZXh0LmRpc3BsYXlOYW1lfHwiQ29udGV4dCIpKyIuQ29uc3VtZXIiO2Nhc2UgdmU6dmFyIHQ9ZS5yZW5kZXI7cmV0dXJuIGU9ZS5kaXNwbGF5TmFtZSxlfHwoZT10LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fCIiLGU9ZSE9PSIiPyJGb3J3YXJkUmVmKCIrZSsiKSI6IkZvcndhcmRSZWYiKSxlO2Nhc2UgTWU6cmV0dXJuIHQ9ZS5kaXNwbGF5TmFtZXx8bnVsbCx0IT09bnVsbD90OiRlKGUudHlwZSl8fCJNZW1vIjtjYXNlIFc6dD1lLl9wYXlsb2FkLGU9ZS5faW5pdDt0cnl7cmV0dXJuICRlKGUodCkpfWNhdGNoe319cmV0dXJuIG51bGx9dmFyIGplPUFycmF5LmlzQXJyYXkseD1mLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxDPW0uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFE9e3BlbmRpbmc6ITEsZGF0YTpudWxsLG1ldGhvZDpudWxsLGFjdGlvbjpudWxsfSxtZT1bXSxkPS0xO2Z1bmN0aW9uIE4oZSl7cmV0dXJue2N1cnJlbnQ6ZX19ZnVuY3Rpb24gcShlKXswPmR8fChlLmN1cnJlbnQ9bWVbZF0sbWVbZF09bnVsbCxkLS0pfWZ1bmN0aW9uIFUoZSx0KXtkKyssbWVbZF09ZS5jdXJyZW50LGUuY3VycmVudD10fXZhciBMPU4obnVsbCksbGU9TihudWxsKSxaPU4obnVsbCksbnQ9TihudWxsKTtmdW5jdGlvbiBwZShlLHQpe3N3aXRjaChVKFosdCksVShsZSxlKSxVKEwsbnVsbCksdC5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6ZT0oZT10LmRvY3VtZW50RWxlbWVudCkmJihlPWUubmFtZXNwYWNlVVJJKT9JZihlKTowO2JyZWFrO2RlZmF1bHQ6aWYoZT10LnRhZ05hbWUsdD10Lm5hbWVzcGFjZVVSSSl0PUlmKHQpLGU9ZWQodCxlKTtlbHNlIHN3aXRjaChlKXtjYXNlInN2ZyI6ZT0xO2JyZWFrO2Nhc2UibWF0aCI6ZT0yO2JyZWFrO2RlZmF1bHQ6ZT0wfX1xKEwpLFUoTCxlKX1mdW5jdGlvbiBKdCgpe3EoTCkscShsZSkscShaKX1mdW5jdGlvbiBJaShlKXtlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZVKG50LGUpO3ZhciB0PUwuY3VycmVudCxhPWVkKHQsZS50eXBlKTt0IT09YSYmKFUobGUsZSksVShMLGEpKX1mdW5jdGlvbiBNbChlKXtsZS5jdXJyZW50PT09ZSYmKHEoTCkscShsZSkpLG50LmN1cnJlbnQ9PT1lJiYocShudCkscGwuX2N1cnJlbnRWYWx1ZT1RKX12YXIgZXU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx0dT1vLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssYXU9by51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxmaD1vLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGRoPW8udW5zdGFibGVfcmVxdWVzdFBhaW50LHp0PW8udW5zdGFibGVfbm93LGhoPW8udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsd289by51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxVbz1vLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LE9sPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksbWg9by51bnN0YWJsZV9Mb3dQcmlvcml0eSxDbz1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxfaD1vLmxvZyx2aD1vLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLHpuPW51bGwsbHQ9bnVsbDtmdW5jdGlvbiAkdChlKXtpZih0eXBlb2YgX2g9PSJmdW5jdGlvbiImJnZoKGUpLGx0JiZ0eXBlb2YgbHQuc2V0U3RyaWN0TW9kZT09ImZ1bmN0aW9uIil0cnl7bHQuc2V0U3RyaWN0TW9kZSh6bixlKX1jYXRjaHt9fXZhciBpdD1NYXRoLmNsejMyP01hdGguY2x6MzI6Z2gseWg9TWF0aC5sb2cscGg9TWF0aC5MTjI7ZnVuY3Rpb24gZ2goZSl7cmV0dXJuIGU+Pj49MCxlPT09MD8zMjozMS0oeWgoZSkvcGh8MCl8MH12YXIgd2w9MjU2LFVsPTQxOTQzMDQ7ZnVuY3Rpb24gZ2EoZSl7dmFyIHQ9ZSY0MjtpZih0IT09MClyZXR1cm4gdDtzd2l0Y2goZSYtZSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIGUmNDE5NDA0ODtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpyZXR1cm4gZSY2MjkxNDU2MDtjYXNlIDY3MTA4ODY0OnJldHVybiA2NzEwODg2NDtjYXNlIDEzNDIxNzcyODpyZXR1cm4gMTM0MjE3NzI4O2Nhc2UgMjY4NDM1NDU2OnJldHVybiAyNjg0MzU0NTY7Y2FzZSA1MzY4NzA5MTI6cmV0dXJuIDUzNjg3MDkxMjtjYXNlIDEwNzM3NDE4MjQ6cmV0dXJuIDA7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gQ2woZSx0LGEpe3ZhciBuPWUucGVuZGluZ0xhbmVzO2lmKG49PT0wKXJldHVybiAwO3ZhciBsPTAsaT1lLnN1c3BlbmRlZExhbmVzLHU9ZS5waW5nZWRMYW5lcztlPWUud2FybUxhbmVzO3ZhciBjPW4mMTM0MjE3NzI3O3JldHVybiBjIT09MD8obj1jJn5pLG4hPT0wP2w9Z2Eobik6KHUmPWMsdSE9PTA/bD1nYSh1KTphfHwoYT1jJn5lLGEhPT0wJiYobD1nYShhKSkpKSk6KGM9biZ+aSxjIT09MD9sPWdhKGMpOnUhPT0wP2w9Z2EodSk6YXx8KGE9biZ+ZSxhIT09MCYmKGw9Z2EoYSkpKSksbD09PTA/MDp0IT09MCYmdCE9PWwmJih0JmkpPT09MCYmKGk9bCYtbCxhPXQmLXQsaT49YXx8aT09PTMyJiYoYSY0MTk0MDQ4KSE9PTApP3Q6bH1mdW5jdGlvbiBSbihlLHQpe3JldHVybihlLnBlbmRpbmdMYW5lcyZ+KGUuc3VzcGVuZGVkTGFuZXMmfmUucGluZ2VkTGFuZXMpJnQpPT09MH1mdW5jdGlvbiBiaChlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpyZXR1cm4tMTtjYXNlIDY3MTA4ODY0OmNhc2UgMTM0MjE3NzI4OmNhc2UgMjY4NDM1NDU2OmNhc2UgNTM2ODcwOTEyOmNhc2UgMTA3Mzc0MTgyNDpyZXR1cm4tMTtkZWZhdWx0OnJldHVybi0xfX1mdW5jdGlvbiBxbygpe3ZhciBlPXdsO3JldHVybiB3bDw8PTEsKHdsJjQxOTQwNDgpPT09MCYmKHdsPTI1NiksZX1mdW5jdGlvbiBqbygpe3ZhciBlPVVsO3JldHVybiBVbDw8PTEsKFVsJjYyOTE0NTYwKT09PTAmJihVbD00MTk0MzA0KSxlfWZ1bmN0aW9uIG51KGUpe2Zvcih2YXIgdD1bXSxhPTA7MzE+YTthKyspdC5wdXNoKGUpO3JldHVybiB0fWZ1bmN0aW9uIERuKGUsdCl7ZS5wZW5kaW5nTGFuZXN8PXQsdCE9PTI2ODQzNTQ1NiYmKGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS53YXJtTGFuZXM9MCl9ZnVuY3Rpb24gU2goZSx0LGEsbixsLGkpe3ZhciB1PWUucGVuZGluZ0xhbmVzO2UucGVuZGluZ0xhbmVzPWEsZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wLGUuZXhwaXJlZExhbmVzJj1hLGUuZW50YW5nbGVkTGFuZXMmPWEsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyY9YSxlLnNoZWxsU3VzcGVuZENvdW50ZXI9MDt2YXIgYz1lLmVudGFuZ2xlbWVudHMscj1lLmV4cGlyYXRpb25UaW1lcyxwPWUuaGlkZGVuVXBkYXRlcztmb3IoYT11Jn5hOzA8YTspe3ZhciBBPTMxLWl0KGEpLFI9MTw8QTtjW0FdPTAscltBXT0tMTt2YXIgZz1wW0FdO2lmKGchPT1udWxsKWZvcihwW0FdPW51bGwsQT0wO0E8Zy5sZW5ndGg7QSsrKXt2YXIgYj1nW0FdO2IhPT1udWxsJiYoYi5sYW5lJj0tNTM2ODcwOTEzKX1hJj1+Un1uIT09MCYmSG8oZSxuLDApLGkhPT0wJiZsPT09MCYmZS50YWchPT0wJiYoZS5zdXNwZW5kZWRMYW5lc3w9aSZ+KHUmfnQpKX1mdW5jdGlvbiBIbyhlLHQsYSl7ZS5wZW5kaW5nTGFuZXN8PXQsZS5zdXNwZW5kZWRMYW5lcyY9fnQ7dmFyIG49MzEtaXQodCk7ZS5lbnRhbmdsZWRMYW5lc3w9dCxlLmVudGFuZ2xlbWVudHNbbl09ZS5lbnRhbmdsZW1lbnRzW25dfDEwNzM3NDE4MjR8YSY0MTk0MDkwfWZ1bmN0aW9uIEJvKGUsdCl7dmFyIGE9ZS5lbnRhbmdsZWRMYW5lc3w9dDtmb3IoZT1lLmVudGFuZ2xlbWVudHM7YTspe3ZhciBuPTMxLWl0KGEpLGw9MTw8bjtsJnR8ZVtuXSZ0JiYoZVtuXXw9dCksYSY9fmx9fWZ1bmN0aW9uIGx1KGUpe3N3aXRjaChlKXtjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgODplPTQ7YnJlYWs7Y2FzZSAzMjplPTE2O2JyZWFrO2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAxNjc3NzIxNjpjYXNlIDMzNTU0NDMyOmU9MTI4O2JyZWFrO2Nhc2UgMjY4NDM1NDU2OmU9MTM0MjE3NzI4O2JyZWFrO2RlZmF1bHQ6ZT0wfXJldHVybiBlfWZ1bmN0aW9uIGl1KGUpe3JldHVybiBlJj0tZSwyPGU/ODxlPyhlJjEzNDIxNzcyNykhPT0wPzMyOjI2ODQzNTQ1Njo4OjJ9ZnVuY3Rpb24gWW8oKXt2YXIgZT1DLnA7cmV0dXJuIGUhPT0wP2U6KGU9d2luZG93LmV2ZW50LGU9PT12b2lkIDA/MzI6Z2QoZS50eXBlKSl9ZnVuY3Rpb24gVGgoZSx0KXt2YXIgYT1DLnA7dHJ5e3JldHVybiBDLnA9ZSx0KCl9ZmluYWxseXtDLnA9YX19dmFyIFd0PU1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLFplPSJfX3JlYWN0RmliZXIkIitXdCxXZT0iX19yZWFjdFByb3BzJCIrV3QsQmE9Il9fcmVhY3RDb250YWluZXIkIitXdCx1dT0iX19yZWFjdEV2ZW50cyQiK1d0LEVoPSJfX3JlYWN0TGlzdGVuZXJzJCIrV3QsQWg9Il9fcmVhY3RIYW5kbGVzJCIrV3QsTG89Il9fcmVhY3RSZXNvdXJjZXMkIitXdCxObj0iX19yZWFjdE1hcmtlciQiK1d0O2Z1bmN0aW9uIGN1KGUpe2RlbGV0ZSBlW1plXSxkZWxldGUgZVtXZV0sZGVsZXRlIGVbdXVdLGRlbGV0ZSBlW0VoXSxkZWxldGUgZVtBaF19ZnVuY3Rpb24gWWEoZSl7dmFyIHQ9ZVtaZV07aWYodClyZXR1cm4gdDtmb3IodmFyIGE9ZS5wYXJlbnROb2RlO2E7KXtpZih0PWFbQmFdfHxhW1plXSl7aWYoYT10LmFsdGVybmF0ZSx0LmNoaWxkIT09bnVsbHx8YSE9PW51bGwmJmEuY2hpbGQhPT1udWxsKWZvcihlPWxkKGUpO2UhPT1udWxsOyl7aWYoYT1lW1plXSlyZXR1cm4gYTtlPWxkKGUpfXJldHVybiB0fWU9YSxhPWUucGFyZW50Tm9kZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBMYShlKXtpZihlPWVbWmVdfHxlW0JhXSl7dmFyIHQ9ZS50YWc7aWYodD09PTV8fHQ9PT02fHx0PT09MTN8fHQ9PT0yNnx8dD09PTI3fHx0PT09MylyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBNbihlKXt2YXIgdD1lLnRhZztpZih0PT09NXx8dD09PTI2fHx0PT09Mjd8fHQ9PT02KXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcihzKDMzKSl9ZnVuY3Rpb24gR2EoZSl7dmFyIHQ9ZVtMb107cmV0dXJuIHR8fCh0PWVbTG9dPXtob2lzdGFibGVTdHlsZXM6bmV3IE1hcCxob2lzdGFibGVTY3JpcHRzOm5ldyBNYXB9KSx0fWZ1bmN0aW9uIEhlKGUpe2VbTm5dPSEwfXZhciBHbz1uZXcgU2V0LFhvPXt9O2Z1bmN0aW9uIGJhKGUsdCl7WGEoZSx0KSxYYShlKyJDYXB0dXJlIix0KX1mdW5jdGlvbiBYYShlLHQpe2ZvcihYb1tlXT10LGU9MDtlPHQubGVuZ3RoO2UrKylHby5hZGQodFtlXSl9dmFyIHhoPVJlZ0V4cCgiXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJCIpLFFvPXt9LGtvPXt9O2Z1bmN0aW9uIHpoKGUpe3JldHVybiBldS5jYWxsKGtvLGUpPyEwOmV1LmNhbGwoUW8sZSk/ITE6eGgudGVzdChlKT9rb1tlXT0hMDooUW9bZV09ITAsITEpfWZ1bmN0aW9uIHFsKGUsdCxhKXtpZih6aCh0KSlpZihhPT09bnVsbCllLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle3N3aXRjaCh0eXBlb2YgYSl7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjplLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm47Y2FzZSJib29sZWFuIjp2YXIgbj10LnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZihuIT09ImRhdGEtIiYmbiE9PSJhcmlhLSIpe2UucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn19ZS5zZXRBdHRyaWJ1dGUodCwiIithKX19ZnVuY3Rpb24gamwoZSx0LGEpe2lmKGE9PT1udWxsKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7c3dpdGNoKHR5cGVvZiBhKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJufWUuc2V0QXR0cmlidXRlKHQsIiIrYSl9fWZ1bmN0aW9uIFV0KGUsdCxhLG4pe2lmKG49PT1udWxsKWUucmVtb3ZlQXR0cmlidXRlKGEpO2Vsc2V7c3dpdGNoKHR5cGVvZiBuKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7cmV0dXJufWUuc2V0QXR0cmlidXRlTlModCxhLCIiK24pfX12YXIgb3UsWm87ZnVuY3Rpb24gUWEoZSl7aWYob3U9PT12b2lkIDApdHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goYSl7dmFyIHQ9YS5zdGFjay50cmltKCkubWF0Y2goL1xuKCAqKGF0ICk/KS8pO291PXQmJnRbMV18fCIiLFpvPS0xPGEuc3RhY2suaW5kZXhPZihgCiAgICBhdGApPyIgKDxhbm9ueW1vdXM+KSI6LTE8YS5zdGFjay5pbmRleE9mKCJAIik/IkB1bmtub3duOjA6MCI6IiJ9cmV0dXJuYApgK291K2UrWm99dmFyIHN1PSExO2Z1bmN0aW9uIHJ1KGUsdCl7aWYoIWV8fHN1KXJldHVybiIiO3N1PSEwO3ZhciBhPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIG49e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZih0KXt2YXIgUj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLHR5cGVvZiBSZWZsZWN0PT0ib2JqZWN0IiYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChSLFtdKX1jYXRjaChiKXt2YXIgZz1ifVJlZmxlY3QuY29uc3RydWN0KGUsW10sUil9ZWxzZXt0cnl7Ui5jYWxsKCl9Y2F0Y2goYil7Zz1ifWUuY2FsbChSLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goYil7Zz1ifShSPWUoKSkmJnR5cGVvZiBSLmNhdGNoPT0iZnVuY3Rpb24iJiZSLmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGIpe2lmKGImJmcmJnR5cGVvZiBiLnN0YWNrPT0ic3RyaW5nIilyZXR1cm5bYi5zdGFjayxnLnN0YWNrXX1yZXR1cm5bbnVsbCxudWxsXX19O24uRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lPSJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiO3ZhciBsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobi5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiKTtsJiZsLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIix7dmFsdWU6IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCJ9KTt2YXIgaT1uLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLHU9aVswXSxjPWlbMV07aWYodSYmYyl7dmFyIHI9dS5zcGxpdChgCmApLHA9Yy5zcGxpdChgCmApO2ZvcihsPW49MDtuPHIubGVuZ3RoJiYhcltuXS5pbmNsdWRlcygiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290Iik7KW4rKztmb3IoO2w8cC5sZW5ndGgmJiFwW2xdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspbCsrO2lmKG49PT1yLmxlbmd0aHx8bD09PXAubGVuZ3RoKWZvcihuPXIubGVuZ3RoLTEsbD1wLmxlbmd0aC0xOzE8PW4mJjA8PWwmJnJbbl0hPT1wW2xdOylsLS07Zm9yKDsxPD1uJiYwPD1sO24tLSxsLS0paWYocltuXSE9PXBbbF0pe2lmKG4hPT0xfHxsIT09MSlkbyBpZihuLS0sbC0tLDA+bHx8cltuXSE9PXBbbF0pe3ZhciBBPWAKYCtyW25dLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZBLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoQT1BLnJlcGxhY2UoIjxhbm9ueW1vdXM+IixlLmRpc3BsYXlOYW1lKSksQX13aGlsZSgxPD1uJiYwPD1sKTticmVha319fWZpbmFsbHl7c3U9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9YX1yZXR1cm4oYT1lP2UuZGlzcGxheU5hbWV8fGUubmFtZToiIik/UWEoYSk6IiJ9ZnVuY3Rpb24gUmgoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBRYShlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIFFhKCJMYXp5Iik7Y2FzZSAxMzpyZXR1cm4gUWEoIlN1c3BlbnNlIik7Y2FzZSAxOTpyZXR1cm4gUWEoIlN1c3BlbnNlTGlzdCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBydShlLnR5cGUsITEpO2Nhc2UgMTE6cmV0dXJuIHJ1KGUudHlwZS5yZW5kZXIsITEpO2Nhc2UgMTpyZXR1cm4gcnUoZS50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBRYSgiQWN0aXZpdHkiKTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBWbyhlKXt0cnl7dmFyIHQ9IiI7ZG8gdCs9UmgoZSksZT1lLnJldHVybjt3aGlsZShlKTtyZXR1cm4gdH1jYXRjaChhKXtyZXR1cm5gCkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IGArYS5tZXNzYWdlK2AKYCthLnN0YWNrfX1mdW5jdGlvbiBodChlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UiYmlnaW50IjpjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBlO2Nhc2Uib2JqZWN0IjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBLbyhlKXt2YXIgdD1lLnR5cGU7cmV0dXJuKGU9ZS5ub2RlTmFtZSkmJmUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJih0PT09ImNoZWNrYm94Inx8dD09PSJyYWRpbyIpfWZ1bmN0aW9uIERoKGUpe3ZhciB0PUtvKGUpPyJjaGVja2VkIjoidmFsdWUiLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KSxuPSIiK2VbdF07aWYoIWUuaGFzT3duUHJvcGVydHkodCkmJnR5cGVvZiBhPCJ1IiYmdHlwZW9mIGEuZ2V0PT0iZnVuY3Rpb24iJiZ0eXBlb2YgYS5zZXQ9PSJmdW5jdGlvbiIpe3ZhciBsPWEuZ2V0LGk9YS5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24odSl7bj0iIit1LGkuY2FsbCh0aGlzLHUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6YS5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldFZhbHVlOmZ1bmN0aW9uKHUpe249IiIrdX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19ZnVuY3Rpb24gSGwoZSl7ZS5fdmFsdWVUcmFja2VyfHwoZS5fdmFsdWVUcmFja2VyPURoKGUpKX1mdW5jdGlvbiBKbyhlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLl92YWx1ZVRyYWNrZXI7aWYoIXQpcmV0dXJuITA7dmFyIGE9dC5nZXRWYWx1ZSgpLG49IiI7cmV0dXJuIGUmJihuPUtvKGUpP2UuY2hlY2tlZD8idHJ1ZSI6ImZhbHNlIjplLnZhbHVlKSxlPW4sZSE9PWE/KHQuc2V0VmFsdWUoZSksITApOiExfWZ1bmN0aW9uIEJsKGUpe2lmKGU9ZXx8KHR5cGVvZiBkb2N1bWVudDwidSI/ZG9jdW1lbnQ6dm9pZCAwKSx0eXBlb2YgZT4idSIpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaHtyZXR1cm4gZS5ib2R5fX12YXIgTmg9L1tcbiJcXF0vZztmdW5jdGlvbiBtdChlKXtyZXR1cm4gZS5yZXBsYWNlKE5oLGZ1bmN0aW9uKHQpe3JldHVybiJcXCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiICJ9KX1mdW5jdGlvbiBmdShlLHQsYSxuLGwsaSx1LGMpe2UubmFtZT0iIix1IT1udWxsJiZ0eXBlb2YgdSE9ImZ1bmN0aW9uIiYmdHlwZW9mIHUhPSJzeW1ib2wiJiZ0eXBlb2YgdSE9ImJvb2xlYW4iP2UudHlwZT11OmUucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksdCE9bnVsbD91PT09Im51bWJlciI/KHQ9PT0wJiZlLnZhbHVlPT09IiJ8fGUudmFsdWUhPXQpJiYoZS52YWx1ZT0iIitodCh0KSk6ZS52YWx1ZSE9PSIiK2h0KHQpJiYoZS52YWx1ZT0iIitodCh0KSk6dSE9PSJzdWJtaXQiJiZ1IT09InJlc2V0Inx8ZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksdCE9bnVsbD9kdShlLHUsaHQodCkpOmEhPW51bGw/ZHUoZSx1LGh0KGEpKTpuIT1udWxsJiZlLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSxsPT1udWxsJiZpIT1udWxsJiYoZS5kZWZhdWx0Q2hlY2tlZD0hIWkpLGwhPW51bGwmJihlLmNoZWNrZWQ9bCYmdHlwZW9mIGwhPSJmdW5jdGlvbiImJnR5cGVvZiBsIT0ic3ltYm9sIiksYyE9bnVsbCYmdHlwZW9mIGMhPSJmdW5jdGlvbiImJnR5cGVvZiBjIT0ic3ltYm9sIiYmdHlwZW9mIGMhPSJib29sZWFuIj9lLm5hbWU9IiIraHQoYyk6ZS5yZW1vdmVBdHRyaWJ1dGUoIm5hbWUiKX1mdW5jdGlvbiAkbyhlLHQsYSxuLGwsaSx1LGMpe2lmKGkhPW51bGwmJnR5cGVvZiBpIT0iZnVuY3Rpb24iJiZ0eXBlb2YgaSE9InN5bWJvbCImJnR5cGVvZiBpIT0iYm9vbGVhbiImJihlLnR5cGU9aSksdCE9bnVsbHx8YSE9bnVsbCl7aWYoIShpIT09InN1Ym1pdCImJmkhPT0icmVzZXQifHx0IT1udWxsKSlyZXR1cm47YT1hIT1udWxsPyIiK2h0KGEpOiIiLHQ9dCE9bnVsbD8iIitodCh0KTphLGN8fHQ9PT1lLnZhbHVlfHwoZS52YWx1ZT10KSxlLmRlZmF1bHRWYWx1ZT10fW49bj8/bCxuPXR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCImJiEhbixlLmNoZWNrZWQ9Yz9lLmNoZWNrZWQ6ISFuLGUuZGVmYXVsdENoZWNrZWQ9ISFuLHUhPW51bGwmJnR5cGVvZiB1IT0iZnVuY3Rpb24iJiZ0eXBlb2YgdSE9InN5bWJvbCImJnR5cGVvZiB1IT0iYm9vbGVhbiImJihlLm5hbWU9dSl9ZnVuY3Rpb24gZHUoZSx0LGEpe3Q9PT0ibnVtYmVyIiYmQmwoZS5vd25lckRvY3VtZW50KT09PWV8fGUuZGVmYXVsdFZhbHVlPT09IiIrYXx8KGUuZGVmYXVsdFZhbHVlPSIiK2EpfWZ1bmN0aW9uIGthKGUsdCxhLG4pe2lmKGU9ZS5vcHRpb25zLHQpe3Q9e307Zm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspdFsiJCIrYVtsXV09ITA7Zm9yKGE9MDthPGUubGVuZ3RoO2ErKylsPXQuaGFzT3duUHJvcGVydHkoIiQiK2VbYV0udmFsdWUpLGVbYV0uc2VsZWN0ZWQhPT1sJiYoZVthXS5zZWxlY3RlZD1sKSxsJiZuJiYoZVthXS5kZWZhdWx0U2VsZWN0ZWQ9ITApfWVsc2V7Zm9yKGE9IiIraHQoYSksdD1udWxsLGw9MDtsPGUubGVuZ3RoO2wrKyl7aWYoZVtsXS52YWx1ZT09PWEpe2VbbF0uc2VsZWN0ZWQ9ITAsbiYmKGVbbF0uZGVmYXVsdFNlbGVjdGVkPSEwKTtyZXR1cm59dCE9PW51bGx8fGVbbF0uZGlzYWJsZWR8fCh0PWVbbF0pfXQhPT1udWxsJiYodC5zZWxlY3RlZD0hMCl9fWZ1bmN0aW9uIFdvKGUsdCxhKXtpZih0IT1udWxsJiYodD0iIitodCh0KSx0IT09ZS52YWx1ZSYmKGUudmFsdWU9dCksYT09bnVsbCkpe2UuZGVmYXVsdFZhbHVlIT09dCYmKGUuZGVmYXVsdFZhbHVlPXQpO3JldHVybn1lLmRlZmF1bHRWYWx1ZT1hIT1udWxsPyIiK2h0KGEpOiIifWZ1bmN0aW9uIEZvKGUsdCxhLG4pe2lmKHQ9PW51bGwpe2lmKG4hPW51bGwpe2lmKGEhPW51bGwpdGhyb3cgRXJyb3Iocyg5MikpO2lmKGplKG4pKXtpZigxPG4ubGVuZ3RoKXRocm93IEVycm9yKHMoOTMpKTtuPW5bMF19YT1ufWE9PW51bGwmJihhPSIiKSx0PWF9YT1odCh0KSxlLmRlZmF1bHRWYWx1ZT1hLG49ZS50ZXh0Q29udGVudCxuPT09YSYmbiE9PSIiJiZuIT09bnVsbCYmKGUudmFsdWU9bil9ZnVuY3Rpb24gWmEoZSx0KXtpZih0KXt2YXIgYT1lLmZpcnN0Q2hpbGQ7aWYoYSYmYT09PWUubGFzdENoaWxkJiZhLm5vZGVUeXBlPT09Myl7YS5ub2RlVmFsdWU9dDtyZXR1cm59fWUudGV4dENvbnRlbnQ9dH12YXIgTWg9bmV3IFNldCgiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgYXNwZWN0UmF0aW8gYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVdpZHRoIGJveEZsZXggYm94RmxleEdyb3VwIGJveE9yZGluYWxHcm91cCBjb2x1bW5Db3VudCBjb2x1bW5zIGZsZXggZmxleEdyb3cgZmxleFBvc2l0aXZlIGZsZXhTaHJpbmsgZmxleE5lZ2F0aXZlIGZsZXhPcmRlciBncmlkQXJlYSBncmlkUm93IGdyaWRSb3dFbmQgZ3JpZFJvd1NwYW4gZ3JpZFJvd1N0YXJ0IGdyaWRDb2x1bW4gZ3JpZENvbHVtbkVuZCBncmlkQ29sdW1uU3BhbiBncmlkQ29sdW1uU3RhcnQgZm9udFdlaWdodCBsaW5lQ2xhbXAgbGluZUhlaWdodCBvcGFjaXR5IG9yZGVyIG9ycGhhbnMgc2NhbGUgdGFiU2l6ZSB3aWRvd3MgekluZGV4IHpvb20gZmlsbE9wYWNpdHkgZmxvb2RPcGFjaXR5IHN0b3BPcGFjaXR5IHN0cm9rZURhc2hhcnJheSBzdHJva2VEYXNob2Zmc2V0IHN0cm9rZU1pdGVybGltaXQgc3Ryb2tlT3BhY2l0eSBzdHJva2VXaWR0aCBNb3pBbmltYXRpb25JdGVyYXRpb25Db3VudCBNb3pCb3hGbGV4IE1vekJveEZsZXhHcm91cCBNb3pMaW5lQ2xhbXAgbXNBbmltYXRpb25JdGVyYXRpb25Db3VudCBtc0ZsZXggbXNab29tIG1zRmxleEdyb3cgbXNGbGV4TmVnYXRpdmUgbXNGbGV4T3JkZXIgbXNGbGV4UG9zaXRpdmUgbXNGbGV4U2hyaW5rIG1zR3JpZENvbHVtbiBtc0dyaWRDb2x1bW5TcGFuIG1zR3JpZFJvdyBtc0dyaWRSb3dTcGFuIFdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IFdlYmtpdEJveEZsZXggV2ViS2l0Qm94RmxleEdyb3VwIFdlYmtpdEJveE9yZGluYWxHcm91cCBXZWJraXRDb2x1bW5Db3VudCBXZWJraXRDb2x1bW5zIFdlYmtpdEZsZXggV2Via2l0RmxleEdyb3cgV2Via2l0RmxleFBvc2l0aXZlIFdlYmtpdEZsZXhTaHJpbmsgV2Via2l0TGluZUNsYW1wIi5zcGxpdCgiICIpKTtmdW5jdGlvbiBQbyhlLHQsYSl7dmFyIG49dC5pbmRleE9mKCItLSIpPT09MDthPT1udWxsfHx0eXBlb2YgYT09ImJvb2xlYW4ifHxhPT09IiI/bj9lLnNldFByb3BlcnR5KHQsIiIpOnQ9PT0iZmxvYXQiP2UuY3NzRmxvYXQ9IiI6ZVt0XT0iIjpuP2Uuc2V0UHJvcGVydHkodCxhKTp0eXBlb2YgYSE9Im51bWJlciJ8fGE9PT0wfHxNaC5oYXModCk/dD09PSJmbG9hdCI/ZS5jc3NGbG9hdD1hOmVbdF09KCIiK2EpLnRyaW0oKTplW3RdPWErInB4In1mdW5jdGlvbiBJbyhlLHQsYSl7aWYodCE9bnVsbCYmdHlwZW9mIHQhPSJvYmplY3QiKXRocm93IEVycm9yKHMoNjIpKTtpZihlPWUuc3R5bGUsYSE9bnVsbCl7Zm9yKHZhciBuIGluIGEpIWEuaGFzT3duUHJvcGVydHkobil8fHQhPW51bGwmJnQuaGFzT3duUHJvcGVydHkobil8fChuLmluZGV4T2YoIi0tIik9PT0wP2Uuc2V0UHJvcGVydHkobiwiIik6bj09PSJmbG9hdCI/ZS5jc3NGbG9hdD0iIjplW25dPSIiKTtmb3IodmFyIGwgaW4gdCluPXRbbF0sdC5oYXNPd25Qcm9wZXJ0eShsKSYmYVtsXSE9PW4mJlBvKGUsbCxuKX1lbHNlIGZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJlBvKGUsaSx0W2ldKX1mdW5jdGlvbiBodShlKXtpZihlLmluZGV4T2YoIi0iKT09PS0xKXJldHVybiExO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciBPaD1uZXcgTWFwKFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdLFsiY3Jvc3NPcmlnaW4iLCJjcm9zc29yaWdpbiJdLFsiYWNjZW50SGVpZ2h0IiwiYWNjZW50LWhlaWdodCJdLFsiYWxpZ25tZW50QmFzZWxpbmUiLCJhbGlnbm1lbnQtYmFzZWxpbmUiXSxbImFyYWJpY0Zvcm0iLCJhcmFiaWMtZm9ybSJdLFsiYmFzZWxpbmVTaGlmdCIsImJhc2VsaW5lLXNoaWZ0Il0sWyJjYXBIZWlnaHQiLCJjYXAtaGVpZ2h0Il0sWyJjbGlwUGF0aCIsImNsaXAtcGF0aCJdLFsiY2xpcFJ1bGUiLCJjbGlwLXJ1bGUiXSxbImNvbG9ySW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24iXSxbImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMiLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiXSxbImNvbG9yUHJvZmlsZSIsImNvbG9yLXByb2ZpbGUiXSxbImNvbG9yUmVuZGVyaW5nIiwiY29sb3ItcmVuZGVyaW5nIl0sWyJkb21pbmFudEJhc2VsaW5lIiwiZG9taW5hbnQtYmFzZWxpbmUiXSxbImVuYWJsZUJhY2tncm91bmQiLCJlbmFibGUtYmFja2dyb3VuZCJdLFsiZmlsbE9wYWNpdHkiLCJmaWxsLW9wYWNpdHkiXSxbImZpbGxSdWxlIiwiZmlsbC1ydWxlIl0sWyJmbG9vZENvbG9yIiwiZmxvb2QtY29sb3IiXSxbImZsb29kT3BhY2l0eSIsImZsb29kLW9wYWNpdHkiXSxbImZvbnRGYW1pbHkiLCJmb250LWZhbWlseSJdLFsiZm9udFNpemUiLCJmb250LXNpemUiXSxbImZvbnRTaXplQWRqdXN0IiwiZm9udC1zaXplLWFkanVzdCJdLFsiZm9udFN0cmV0Y2giLCJmb250LXN0cmV0Y2giXSxbImZvbnRTdHlsZSIsImZvbnQtc3R5bGUiXSxbImZvbnRWYXJpYW50IiwiZm9udC12YXJpYW50Il0sWyJmb250V2VpZ2h0IiwiZm9udC13ZWlnaHQiXSxbImdseXBoTmFtZSIsImdseXBoLW5hbWUiXSxbImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCJdLFsiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsIiwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwiXSxbImhvcml6QWR2WCIsImhvcml6LWFkdi14Il0sWyJob3Jpek9yaWdpblgiLCJob3Jpei1vcmlnaW4teCJdLFsiaW1hZ2VSZW5kZXJpbmciLCJpbWFnZS1yZW5kZXJpbmciXSxbImxldHRlclNwYWNpbmciLCJsZXR0ZXItc3BhY2luZyJdLFsibGlnaHRpbmdDb2xvciIsImxpZ2h0aW5nLWNvbG9yIl0sWyJtYXJrZXJFbmQiLCJtYXJrZXItZW5kIl0sWyJtYXJrZXJNaWQiLCJtYXJrZXItbWlkIl0sWyJtYXJrZXJTdGFydCIsIm1hcmtlci1zdGFydCJdLFsib3ZlcmxpbmVQb3NpdGlvbiIsIm92ZXJsaW5lLXBvc2l0aW9uIl0sWyJvdmVybGluZVRoaWNrbmVzcyIsIm92ZXJsaW5lLXRoaWNrbmVzcyJdLFsicGFpbnRPcmRlciIsInBhaW50LW9yZGVyIl0sWyJwYW5vc2UtMSIsInBhbm9zZS0xIl0sWyJwb2ludGVyRXZlbnRzIiwicG9pbnRlci1ldmVudHMiXSxbInJlbmRlcmluZ0ludGVudCIsInJlbmRlcmluZy1pbnRlbnQiXSxbInNoYXBlUmVuZGVyaW5nIiwic2hhcGUtcmVuZGVyaW5nIl0sWyJzdG9wQ29sb3IiLCJzdG9wLWNvbG9yIl0sWyJzdG9wT3BhY2l0eSIsInN0b3Atb3BhY2l0eSJdLFsic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwic3RyaWtldGhyb3VnaC1wb3NpdGlvbiJdLFsic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIl0sWyJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2UtZGFzaGFycmF5Il0sWyJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hvZmZzZXQiXSxbInN0cm9rZUxpbmVjYXAiLCJzdHJva2UtbGluZWNhcCJdLFsic3Ryb2tlTGluZWpvaW4iLCJzdHJva2UtbGluZWpvaW4iXSxbInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2UtbWl0ZXJsaW1pdCJdLFsic3Ryb2tlT3BhY2l0eSIsInN0cm9rZS1vcGFjaXR5Il0sWyJzdHJva2VXaWR0aCIsInN0cm9rZS13aWR0aCJdLFsidGV4dEFuY2hvciIsInRleHQtYW5jaG9yIl0sWyJ0ZXh0RGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbiJdLFsidGV4dFJlbmRlcmluZyIsInRleHQtcmVuZGVyaW5nIl0sWyJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2Zvcm0tb3JpZ2luIl0sWyJ1bmRlcmxpbmVQb3NpdGlvbiIsInVuZGVybGluZS1wb3NpdGlvbiJdLFsidW5kZXJsaW5lVGhpY2tuZXNzIiwidW5kZXJsaW5lLXRoaWNrbmVzcyJdLFsidW5pY29kZUJpZGkiLCJ1bmljb2RlLWJpZGkiXSxbInVuaWNvZGVSYW5nZSIsInVuaWNvZGUtcmFuZ2UiXSxbInVuaXRzUGVyRW0iLCJ1bml0cy1wZXItZW0iXSxbInZBbHBoYWJldGljIiwidi1hbHBoYWJldGljIl0sWyJ2SGFuZ2luZyIsInYtaGFuZ2luZyJdLFsidklkZW9ncmFwaGljIiwidi1pZGVvZ3JhcGhpYyJdLFsidk1hdGhlbWF0aWNhbCIsInYtbWF0aGVtYXRpY2FsIl0sWyJ2ZWN0b3JFZmZlY3QiLCJ2ZWN0b3ItZWZmZWN0Il0sWyJ2ZXJ0QWR2WSIsInZlcnQtYWR2LXkiXSxbInZlcnRPcmlnaW5YIiwidmVydC1vcmlnaW4teCJdLFsidmVydE9yaWdpblkiLCJ2ZXJ0LW9yaWdpbi15Il0sWyJ3b3JkU3BhY2luZyIsIndvcmQtc3BhY2luZyJdLFsid3JpdGluZ01vZGUiLCJ3cml0aW5nLW1vZGUiXSxbInhtbG5zWGxpbmsiLCJ4bWxuczp4bGluayJdLFsieEhlaWdodCIsIngtaGVpZ2h0Il1dKSx3aD0vXltcdTAwMDAtXHUwMDFGIF0qaltcclxuXHRdKmFbXHJcblx0XSp2W1xyXG5cdF0qYVtcclxuXHRdKnNbXHJcblx0XSpjW1xyXG5cdF0qcltcclxuXHRdKmlbXHJcblx0XSpwW1xyXG5cdF0qdFtcclxuXHRdKjovaTtmdW5jdGlvbiBZbChlKXtyZXR1cm4gd2gudGVzdCgiIitlKT8iamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKSI6ZX12YXIgbXU9bnVsbDtmdW5jdGlvbiBfdShlKXtyZXR1cm4gZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3csZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksZS5ub2RlVHlwZT09PTM/ZS5wYXJlbnROb2RlOmV9dmFyIFZhPW51bGwsS2E9bnVsbDtmdW5jdGlvbiBlcyhlKXt2YXIgdD1MYShlKTtpZih0JiYoZT10LnN0YXRlTm9kZSkpe3ZhciBhPWVbV2VdfHxudWxsO2U6c3dpdGNoKGU9dC5zdGF0ZU5vZGUsdC50eXBlKXtjYXNlImlucHV0IjppZihmdShlLGEudmFsdWUsYS5kZWZhdWx0VmFsdWUsYS5kZWZhdWx0VmFsdWUsYS5jaGVja2VkLGEuZGVmYXVsdENoZWNrZWQsYS50eXBlLGEubmFtZSksdD1hLm5hbWUsYS50eXBlPT09InJhZGlvIiYmdCE9bnVsbCl7Zm9yKGE9ZTthLnBhcmVudE5vZGU7KWE9YS5wYXJlbnROb2RlO2ZvcihhPWEucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJyttdCgiIit0KSsnIl1bdHlwZT0icmFkaW8iXScpLHQ9MDt0PGEubGVuZ3RoO3QrKyl7dmFyIG49YVt0XTtpZihuIT09ZSYmbi5mb3JtPT09ZS5mb3JtKXt2YXIgbD1uW1dlXXx8bnVsbDtpZighbCl0aHJvdyBFcnJvcihzKDkwKSk7ZnUobixsLnZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuY2hlY2tlZCxsLmRlZmF1bHRDaGVja2VkLGwudHlwZSxsLm5hbWUpfX1mb3IodD0wO3Q8YS5sZW5ndGg7dCsrKW49YVt0XSxuLmZvcm09PT1lLmZvcm0mJkpvKG4pfWJyZWFrIGU7Y2FzZSJ0ZXh0YXJlYSI6V28oZSxhLnZhbHVlLGEuZGVmYXVsdFZhbHVlKTticmVhayBlO2Nhc2Uic2VsZWN0Ijp0PWEudmFsdWUsdCE9bnVsbCYma2EoZSwhIWEubXVsdGlwbGUsdCwhMSl9fX12YXIgdnU9ITE7ZnVuY3Rpb24gdHMoZSx0LGEpe2lmKHZ1KXJldHVybiBlKHQsYSk7dnU9ITA7dHJ5e3ZhciBuPWUodCk7cmV0dXJuIG59ZmluYWxseXtpZih2dT0hMSwoVmEhPT1udWxsfHxLYSE9PW51bGwpJiYoQWkoKSxWYSYmKHQ9VmEsZT1LYSxLYT1WYT1udWxsLGVzKHQpLGUpKSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKWVzKGVbdF0pfX1mdW5jdGlvbiBPbihlLHQpe3ZhciBhPWUuc3RhdGVOb2RlO2lmKGE9PT1udWxsKXJldHVybiBudWxsO3ZhciBuPWFbV2VdfHxudWxsO2lmKG49PT1udWxsKXJldHVybiBudWxsO2E9blt0XTtlOnN3aXRjaCh0KXtjYXNlIm9uQ2xpY2siOmNhc2Uib25DbGlja0NhcHR1cmUiOmNhc2Uib25Eb3VibGVDbGljayI6Y2FzZSJvbkRvdWJsZUNsaWNrQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRG93biI6Y2FzZSJvbk1vdXNlRG93bkNhcHR1cmUiOmNhc2Uib25Nb3VzZU1vdmUiOmNhc2Uib25Nb3VzZU1vdmVDYXB0dXJlIjpjYXNlIm9uTW91c2VVcCI6Y2FzZSJvbk1vdXNlVXBDYXB0dXJlIjpjYXNlIm9uTW91c2VFbnRlciI6KG49IW4uZGlzYWJsZWQpfHwoZT1lLnR5cGUsbj0hKGU9PT0iYnV0dG9uInx8ZT09PSJpbnB1dCJ8fGU9PT0ic2VsZWN0Inx8ZT09PSJ0ZXh0YXJlYSIpKSxlPSFuO2JyZWFrIGU7ZGVmYXVsdDplPSExfWlmKGUpcmV0dXJuIG51bGw7aWYoYSYmdHlwZW9mIGEhPSJmdW5jdGlvbiIpdGhyb3cgRXJyb3IocygyMzEsdCx0eXBlb2YgYSkpO3JldHVybiBhfXZhciBDdD0hKHR5cGVvZiB3aW5kb3c+InUifHx0eXBlb2Ygd2luZG93LmRvY3VtZW50PiJ1Inx8dHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50PiJ1IikseXU9ITE7aWYoQ3QpdHJ5e3ZhciB3bj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkod24sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt5dT0hMH19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsd24sd24pLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0Iix3bix3bil9Y2F0Y2h7eXU9ITF9dmFyIEZ0PW51bGwscHU9bnVsbCxMbD1udWxsO2Z1bmN0aW9uIGFzKCl7aWYoTGwpcmV0dXJuIExsO3ZhciBlLHQ9cHUsYT10Lmxlbmd0aCxuLGw9InZhbHVlImluIEZ0P0Z0LnZhbHVlOkZ0LnRleHRDb250ZW50LGk9bC5sZW5ndGg7Zm9yKGU9MDtlPGEmJnRbZV09PT1sW2VdO2UrKyk7dmFyIHU9YS1lO2ZvcihuPTE7bjw9dSYmdFthLW5dPT09bFtpLW5dO24rKyk7cmV0dXJuIExsPWwuc2xpY2UoZSwxPG4/MS1uOnZvaWQgMCl9ZnVuY3Rpb24gR2woZSl7dmFyIHQ9ZS5rZXlDb2RlO3JldHVybiJjaGFyQ29kZSJpbiBlPyhlPWUuY2hhckNvZGUsZT09PTAmJnQ9PT0xMyYmKGU9MTMpKTplPXQsZT09PTEwJiYoZT0xMyksMzI8PWV8fGU9PT0xMz9lOjB9ZnVuY3Rpb24gWGwoKXtyZXR1cm4hMH1mdW5jdGlvbiBucygpe3JldHVybiExfWZ1bmN0aW9uIEZlKGUpe2Z1bmN0aW9uIHQoYSxuLGwsaSx1KXt0aGlzLl9yZWFjdE5hbWU9YSx0aGlzLl90YXJnZXRJbnN0PWwsdGhpcy50eXBlPW4sdGhpcy5uYXRpdmVFdmVudD1pLHRoaXMudGFyZ2V0PXUsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGw7Zm9yKHZhciBjIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShjKSYmKGE9ZVtjXSx0aGlzW2NdPWE/YShpKTppW2NdKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9KGkuZGVmYXVsdFByZXZlbnRlZCE9bnVsbD9pLmRlZmF1bHRQcmV2ZW50ZWQ6aS5yZXR1cm5WYWx1ZT09PSExKT9YbDpucyx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPW5zLHRoaXN9cmV0dXJuIE8odC5wcm90b3R5cGUse3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5kZWZhdWx0UHJldmVudGVkPSEwO3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOnR5cGVvZiBhLnJldHVyblZhbHVlIT0idW5rbm93biImJihhLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1YbCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMubmF0aXZlRXZlbnQ7YSYmKGEuc3RvcFByb3BhZ2F0aW9uP2Euc3RvcFByb3BhZ2F0aW9uKCk6dHlwZW9mIGEuY2FuY2VsQnViYmxlIT0idW5rbm93biImJihhLmNhbmNlbEJ1YmJsZT0hMCksdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1YbCl9LHBlcnNpc3Q6ZnVuY3Rpb24oKXt9LGlzUGVyc2lzdGVudDpYbH0pLHR9dmFyIFNhPXtldmVudFBoYXNlOjAsYnViYmxlczowLGNhbmNlbGFibGU6MCx0aW1lU3RhbXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudGltZVN0YW1wfHxEYXRlLm5vdygpfSxkZWZhdWx0UHJldmVudGVkOjAsaXNUcnVzdGVkOjB9LFFsPUZlKFNhKSxVbj1PKHt9LFNhLHt2aWV3OjAsZGV0YWlsOjB9KSxVaD1GZShVbiksZ3UsYnUsQ24sa2w9Tyh7fSxVbix7c2NyZWVuWDowLHNjcmVlblk6MCxjbGllbnRYOjAsY2xpZW50WTowLHBhZ2VYOjAscGFnZVk6MCxjdHJsS2V5OjAsc2hpZnRLZXk6MCxhbHRLZXk6MCxtZXRhS2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpUdSxidXR0b246MCxidXR0b25zOjAscmVsYXRlZFRhcmdldDpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWxhdGVkVGFyZ2V0PT09dm9pZCAwP2UuZnJvbUVsZW1lbnQ9PT1lLnNyY0VsZW1lbnQ/ZS50b0VsZW1lbnQ6ZS5mcm9tRWxlbWVudDplLnJlbGF0ZWRUYXJnZXR9LG1vdmVtZW50WDpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRYImluIGU/ZS5tb3ZlbWVudFg6KGUhPT1DbiYmKENuJiZlLnR5cGU9PT0ibW91c2Vtb3ZlIj8oZ3U9ZS5zY3JlZW5YLUNuLnNjcmVlblgsYnU9ZS5zY3JlZW5ZLUNuLnNjcmVlblkpOmJ1PWd1PTAsQ249ZSksZ3UpfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuIm1vdmVtZW50WSJpbiBlP2UubW92ZW1lbnRZOmJ1fX0pLGxzPUZlKGtsKSxDaD1PKHt9LGtsLHtkYXRhVHJhbnNmZXI6MH0pLHFoPUZlKENoKSxqaD1PKHt9LFVuLHtyZWxhdGVkVGFyZ2V0OjB9KSxTdT1GZShqaCksSGg9Tyh7fSxTYSx7YW5pbWF0aW9uTmFtZTowLGVsYXBzZWRUaW1lOjAscHNldWRvRWxlbWVudDowfSksQmg9RmUoSGgpLFloPU8oe30sU2Ese2NsaXBib2FyZERhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6d2luZG93LmNsaXBib2FyZERhdGF9fSksTGg9RmUoWWgpLEdoPU8oe30sU2Ese2RhdGE6MH0pLGlzPUZlKEdoKSxYaD17RXNjOiJFc2NhcGUiLFNwYWNlYmFyOiIgIixMZWZ0OiJBcnJvd0xlZnQiLFVwOiJBcnJvd1VwIixSaWdodDoiQXJyb3dSaWdodCIsRG93bjoiQXJyb3dEb3duIixEZWw6IkRlbGV0ZSIsV2luOiJPUyIsTWVudToiQ29udGV4dE1lbnUiLEFwcHM6IkNvbnRleHRNZW51IixTY3JvbGw6IlNjcm9sbExvY2siLE1velByaW50YWJsZUtleToiVW5pZGVudGlmaWVkIn0sUWg9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEzOiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoiUGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoiQXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJBcnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDExMzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDExODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIsMTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6Ik1ldGEifSxraD17QWx0OiJhbHRLZXkiLENvbnRyb2w6ImN0cmxLZXkiLE1ldGE6Im1ldGFLZXkiLFNoaWZ0OiJzaGlmdEtleSJ9O2Z1bmN0aW9uIFpoKGUpe3ZhciB0PXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIHQuZ2V0TW9kaWZpZXJTdGF0ZT90LmdldE1vZGlmaWVyU3RhdGUoZSk6KGU9a2hbZV0pPyEhdFtlXTohMX1mdW5jdGlvbiBUdSgpe3JldHVybiBaaH12YXIgVmg9Tyh7fSxVbix7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgdD1YaFtlLmtleV18fGUua2V5O2lmKHQhPT0iVW5pZGVudGlmaWVkIilyZXR1cm4gdH1yZXR1cm4gZS50eXBlPT09ImtleXByZXNzIj8oZT1HbChlKSxlPT09MTM/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTplLnR5cGU9PT0ia2V5ZG93biJ8fGUudHlwZT09PSJrZXl1cCI/UWhbZS5rZXlDb2RlXXx8IlVuaWRlbnRpZmllZCI6IiJ9LGNvZGU6MCxsb2NhdGlvbjowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxyZXBlYXQ6MCxsb2NhbGU6MCxnZXRNb2RpZmllclN0YXRlOlR1LGNoYXJDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnR5cGU9PT0ia2V5cHJlc3MiP0dsKGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJrZXlkb3duInx8ZS50eXBlPT09ImtleXVwIj9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIGUudHlwZT09PSJrZXlwcmVzcyI/R2woZSk6ZS50eXBlPT09ImtleWRvd24ifHxlLnR5cGU9PT0ia2V5dXAiP2Uua2V5Q29kZTowfX0pLEtoPUZlKFZoKSxKaD1PKHt9LGtsLHtwb2ludGVySWQ6MCx3aWR0aDowLGhlaWdodDowLHByZXNzdXJlOjAsdGFuZ2VudGlhbFByZXNzdXJlOjAsdGlsdFg6MCx0aWx0WTowLHR3aXN0OjAscG9pbnRlclR5cGU6MCxpc1ByaW1hcnk6MH0pLHVzPUZlKEpoKSwkaD1PKHt9LFVuLHt0b3VjaGVzOjAsdGFyZ2V0VG91Y2hlczowLGNoYW5nZWRUb3VjaGVzOjAsYWx0S2V5OjAsbWV0YUtleTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGdldE1vZGlmaWVyU3RhdGU6VHV9KSxXaD1GZSgkaCksRmg9Tyh7fSxTYSx7cHJvcGVydHlOYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSxQaD1GZShGaCksSWg9Tyh7fSxrbCx7ZGVsdGFYOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0YVgiaW4gZT9lLmRlbHRhWDoid2hlZWxEZWx0YVgiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWSJpbiBlP2UuZGVsdGFZOiJ3aGVlbERlbHRhWSJpbiBlPy1lLndoZWVsRGVsdGFZOiJ3aGVlbERlbHRhImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pLGVtPUZlKEloKSx0bT1PKHt9LFNhLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSxhbT1GZSh0bSksbm09WzksMTMsMjcsMzJdLEV1PUN0JiYiQ29tcG9zaXRpb25FdmVudCJpbiB3aW5kb3cscW49bnVsbDtDdCYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmKHFuPWRvY3VtZW50LmRvY3VtZW50TW9kZSk7dmFyIGxtPUN0JiYiVGV4dEV2ZW50ImluIHdpbmRvdyYmIXFuLGNzPUN0JiYoIUV1fHxxbiYmODxxbiYmMTE+PXFuKSxvcz0iICIsc3M9ITE7ZnVuY3Rpb24gcnMoZSx0KXtzd2l0Y2goZSl7Y2FzZSJrZXl1cCI6cmV0dXJuIG5tLmluZGV4T2YodC5rZXlDb2RlKSE9PS0xO2Nhc2Uia2V5ZG93biI6cmV0dXJuIHQua2V5Q29kZSE9PTIyOTtjYXNlImtleXByZXNzIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJmb2N1c291dCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gZnMoZSl7cmV0dXJuIGU9ZS5kZXRhaWwsdHlwZW9mIGU9PSJvYmplY3QiJiYiZGF0YSJpbiBlP2UuZGF0YTpudWxsfXZhciBKYT0hMTtmdW5jdGlvbiBpbShlLHQpe3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gZnModCk7Y2FzZSJrZXlwcmVzcyI6cmV0dXJuIHQud2hpY2ghPT0zMj9udWxsOihzcz0hMCxvcyk7Y2FzZSJ0ZXh0SW5wdXQiOnJldHVybiBlPXQuZGF0YSxlPT09b3MmJnNzP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiB1bShlLHQpe2lmKEphKXJldHVybiBlPT09ImNvbXBvc2l0aW9uZW5kInx8IUV1JiZycyhlLHQpPyhlPWFzKCksTGw9cHU9RnQ9bnVsbCxKYT0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpyZXR1cm4gbnVsbDtjYXNlImtleXByZXNzIjppZighKHQuY3RybEtleXx8dC5hbHRLZXl8fHQubWV0YUtleSl8fHQuY3RybEtleSYmdC5hbHRLZXkpe2lmKHQuY2hhciYmMTx0LmNoYXIubGVuZ3RoKXJldHVybiB0LmNoYXI7aWYodC53aGljaClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh0LndoaWNoKX1yZXR1cm4gbnVsbDtjYXNlImNvbXBvc2l0aW9uZW5kIjpyZXR1cm4gY3MmJnQubG9jYWxlIT09ImtvIj9udWxsOnQuZGF0YTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgY209e2NvbG9yOiEwLGRhdGU6ITAsZGF0ZXRpbWU6ITAsImRhdGV0aW1lLWxvY2FsIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIGRzKGUpe3ZhciB0PWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PSJpbnB1dCI/ISFjbVtlLnR5cGVdOnQ9PT0idGV4dGFyZWEifWZ1bmN0aW9uIGhzKGUsdCxhLG4pe1ZhP0thP0thLnB1c2gobik6S2E9W25dOlZhPW4sdD1NaSh0LCJvbkNoYW5nZSIpLDA8dC5sZW5ndGgmJihhPW5ldyBRbCgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsYSxuKSxlLnB1c2goe2V2ZW50OmEsbGlzdGVuZXJzOnR9KSl9dmFyIGpuPW51bGwsSG49bnVsbDtmdW5jdGlvbiBvbShlKXtKZihlLDApfWZ1bmN0aW9uIFpsKGUpe3ZhciB0PU1uKGUpO2lmKEpvKHQpKXJldHVybiBlfWZ1bmN0aW9uIG1zKGUsdCl7aWYoZT09PSJjaGFuZ2UiKXJldHVybiB0fXZhciBfcz0hMTtpZihDdCl7dmFyIEF1O2lmKEN0KXt2YXIgeHU9Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIXh1KXt2YXIgdnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dnMuc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLHh1PXR5cGVvZiB2cy5vbmlucHV0PT0iZnVuY3Rpb24ifUF1PXh1fWVsc2UgQXU9ITE7X3M9QXUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24geXMoKXtqbiYmKGpuLmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixwcyksSG49am49bnVsbCl9ZnVuY3Rpb24gcHMoZSl7aWYoZS5wcm9wZXJ0eU5hbWU9PT0idmFsdWUiJiZabChIbikpe3ZhciB0PVtdO2hzKHQsSG4sZSxfdShlKSksdHMob20sdCl9fWZ1bmN0aW9uIHNtKGUsdCxhKXtlPT09ImZvY3VzaW4iPyh5cygpLGpuPXQsSG49YSxqbi5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIscHMpKTplPT09ImZvY3Vzb3V0IiYmeXMoKX1mdW5jdGlvbiBybShlKXtpZihlPT09InNlbGVjdGlvbmNoYW5nZSJ8fGU9PT0ia2V5dXAifHxlPT09ImtleWRvd24iKXJldHVybiBabChIbil9ZnVuY3Rpb24gZm0oZSx0KXtpZihlPT09ImNsaWNrIilyZXR1cm4gWmwodCl9ZnVuY3Rpb24gZG0oZSx0KXtpZihlPT09ImlucHV0Inx8ZT09PSJjaGFuZ2UiKXJldHVybiBabCh0KX1mdW5jdGlvbiBobShlLHQpe3JldHVybiBlPT09dCYmKGUhPT0wfHwxL2U9PT0xL3QpfHxlIT09ZSYmdCE9PXR9dmFyIHV0PXR5cGVvZiBPYmplY3QuaXM9PSJmdW5jdGlvbiI/T2JqZWN0LmlzOmhtO2Z1bmN0aW9uIEJuKGUsdCl7aWYodXQoZSx0KSlyZXR1cm4hMDtpZih0eXBlb2YgZSE9Im9iamVjdCJ8fGU9PT1udWxsfHx0eXBlb2YgdCE9Im9iamVjdCJ8fHQ9PT1udWxsKXJldHVybiExO3ZhciBhPU9iamVjdC5rZXlzKGUpLG49T2JqZWN0LmtleXModCk7aWYoYS5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3Iobj0wO248YS5sZW5ndGg7bisrKXt2YXIgbD1hW25dO2lmKCFldS5jYWxsKHQsbCl8fCF1dChlW2xdLHRbbF0pKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGdzKGUpe2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4gZX1mdW5jdGlvbiBicyhlLHQpe3ZhciBhPWdzKGUpO2U9MDtmb3IodmFyIG47YTspe2lmKGEubm9kZVR5cGU9PT0zKXtpZihuPWUrYS50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmbj49dClyZXR1cm57bm9kZTphLG9mZnNldDp0LWV9O2U9bn1lOntmb3IoO2E7KXtpZihhLm5leHRTaWJsaW5nKXthPWEubmV4dFNpYmxpbmc7YnJlYWsgZX1hPWEucGFyZW50Tm9kZX1hPXZvaWQgMH1hPWdzKGEpfX1mdW5jdGlvbiBTcyhlLHQpe3JldHVybiBlJiZ0P2U9PT10PyEwOmUmJmUubm9kZVR5cGU9PT0zPyExOnQmJnQubm9kZVR5cGU9PT0zP1NzKGUsdC5wYXJlbnROb2RlKToiY29udGFpbnMiaW4gZT9lLmNvbnRhaW5zKHQpOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ISEoZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSYxNik6ITE6ITF9ZnVuY3Rpb24gVHMoZSl7ZT1lIT1udWxsJiZlLm93bmVyRG9jdW1lbnQhPW51bGwmJmUub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldyE9bnVsbD9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc6d2luZG93O2Zvcih2YXIgdD1CbChlLmRvY3VtZW50KTt0IGluc3RhbmNlb2YgZS5IVE1MSUZyYW1lRWxlbWVudDspe3RyeXt2YXIgYT10eXBlb2YgdC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWY9PSJzdHJpbmcifWNhdGNoe2E9ITF9aWYoYSllPXQuY29udGVudFdpbmRvdztlbHNlIGJyZWFrO3Q9QmwoZS5kb2N1bWVudCl9cmV0dXJuIHR9ZnVuY3Rpb24genUoZSl7dmFyIHQ9ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0JiYodD09PSJpbnB1dCImJihlLnR5cGU9PT0idGV4dCJ8fGUudHlwZT09PSJzZWFyY2gifHxlLnR5cGU9PT0idGVsInx8ZS50eXBlPT09InVybCJ8fGUudHlwZT09PSJwYXNzd29yZCIpfHx0PT09InRleHRhcmVhInx8ZS5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpfXZhciBtbT1DdCYmImRvY3VtZW50TW9kZSJpbiBkb2N1bWVudCYmMTE+PWRvY3VtZW50LmRvY3VtZW50TW9kZSwkYT1udWxsLFJ1PW51bGwsWW49bnVsbCxEdT0hMTtmdW5jdGlvbiBFcyhlLHQsYSl7dmFyIG49YS53aW5kb3c9PT1hP2EuZG9jdW1lbnQ6YS5ub2RlVHlwZT09PTk/YTphLm93bmVyRG9jdW1lbnQ7RHV8fCRhPT1udWxsfHwkYSE9PUJsKG4pfHwobj0kYSwic2VsZWN0aW9uU3RhcnQiaW4gbiYmenUobik/bj17c3RhcnQ6bi5zZWxlY3Rpb25TdGFydCxlbmQ6bi5zZWxlY3Rpb25FbmR9OihuPShuLm93bmVyRG9jdW1lbnQmJm4ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld3x8d2luZG93KS5nZXRTZWxlY3Rpb24oKSxuPXthbmNob3JOb2RlOm4uYW5jaG9yTm9kZSxhbmNob3JPZmZzZXQ6bi5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOm4uZm9jdXNOb2RlLGZvY3VzT2Zmc2V0Om4uZm9jdXNPZmZzZXR9KSxZbiYmQm4oWW4sbil8fChZbj1uLG49TWkoUnUsIm9uU2VsZWN0IiksMDxuLmxlbmd0aCYmKHQ9bmV3IFFsKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCx0LGEpLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6bn0pLHQudGFyZ2V0PSRhKSkpfWZ1bmN0aW9uIFRhKGUsdCl7dmFyIGE9e307cmV0dXJuIGFbZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksYVsiV2Via2l0IitlXT0id2Via2l0Iit0LGFbIk1veiIrZV09Im1veiIrdCxhfXZhciBXYT17YW5pbWF0aW9uZW5kOlRhKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246VGEoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0OlRhKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25ydW46VGEoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uUnVuIiksdHJhbnNpdGlvbnN0YXJ0OlRhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblN0YXJ0IiksdHJhbnNpdGlvbmNhbmNlbDpUYSgiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25DYW5jZWwiKSx0cmFuc2l0aW9uZW5kOlRhKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxOdT17fSxBcz17fTtDdCYmKEFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLCJBbmltYXRpb25FdmVudCJpbiB3aW5kb3d8fChkZWxldGUgV2EuYW5pbWF0aW9uZW5kLmFuaW1hdGlvbixkZWxldGUgV2EuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgV2EuYW5pbWF0aW9uc3RhcnQuYW5pbWF0aW9uKSwiVHJhbnNpdGlvbkV2ZW50ImluIHdpbmRvd3x8ZGVsZXRlIFdhLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7ZnVuY3Rpb24gRWEoZSl7aWYoTnVbZV0pcmV0dXJuIE51W2VdO2lmKCFXYVtlXSlyZXR1cm4gZTt2YXIgdD1XYVtlXSxhO2ZvcihhIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShhKSYmYSBpbiBBcylyZXR1cm4gTnVbZV09dFthXTtyZXR1cm4gZX12YXIgeHM9RWEoImFuaW1hdGlvbmVuZCIpLHpzPUVhKCJhbmltYXRpb25pdGVyYXRpb24iKSxScz1FYSgiYW5pbWF0aW9uc3RhcnQiKSxfbT1FYSgidHJhbnNpdGlvbnJ1biIpLHZtPUVhKCJ0cmFuc2l0aW9uc3RhcnQiKSx5bT1FYSgidHJhbnNpdGlvbmNhbmNlbCIpLERzPUVhKCJ0cmFuc2l0aW9uZW5kIiksTnM9bmV3IE1hcCxNdT0iYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO011LnB1c2goInNjcm9sbEVuZCIpO2Z1bmN0aW9uIEV0KGUsdCl7TnMuc2V0KGUsdCksYmEodCxbZV0pfXZhciBNcz1uZXcgV2Vha01hcDtmdW5jdGlvbiBfdChlLHQpe2lmKHR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwpe3ZhciBhPU1zLmdldChlKTtyZXR1cm4gYSE9PXZvaWQgMD9hOih0PXt2YWx1ZTplLHNvdXJjZTp0LHN0YWNrOlZvKHQpfSxNcy5zZXQoZSx0KSx0KX1yZXR1cm57dmFsdWU6ZSxzb3VyY2U6dCxzdGFjazpWbyh0KX19dmFyIHZ0PVtdLEZhPTAsT3U9MDtmdW5jdGlvbiBWbCgpe2Zvcih2YXIgZT1GYSx0PU91PUZhPTA7dDxlOyl7dmFyIGE9dnRbdF07dnRbdCsrXT1udWxsO3ZhciBuPXZ0W3RdO3Z0W3QrK109bnVsbDt2YXIgbD12dFt0XTt2dFt0KytdPW51bGw7dmFyIGk9dnRbdF07aWYodnRbdCsrXT1udWxsLG4hPT1udWxsJiZsIT09bnVsbCl7dmFyIHU9bi5wZW5kaW5nO3U9PT1udWxsP2wubmV4dD1sOihsLm5leHQ9dS5uZXh0LHUubmV4dD1sKSxuLnBlbmRpbmc9bH1pIT09MCYmT3MoYSxsLGkpfX1mdW5jdGlvbiBLbChlLHQsYSxuKXt2dFtGYSsrXT1lLHZ0W0ZhKytdPXQsdnRbRmErK109YSx2dFtGYSsrXT1uLE91fD1uLGUubGFuZXN8PW4sZT1lLmFsdGVybmF0ZSxlIT09bnVsbCYmKGUubGFuZXN8PW4pfWZ1bmN0aW9uIHd1KGUsdCxhLG4pe3JldHVybiBLbChlLHQsYSxuKSxKbChlKX1mdW5jdGlvbiBQYShlLHQpe3JldHVybiBLbChlLG51bGwsbnVsbCx0KSxKbChlKX1mdW5jdGlvbiBPcyhlLHQsYSl7ZS5sYW5lc3w9YTt2YXIgbj1lLmFsdGVybmF0ZTtuIT09bnVsbCYmKG4ubGFuZXN8PWEpO2Zvcih2YXIgbD0hMSxpPWUucmV0dXJuO2khPT1udWxsOylpLmNoaWxkTGFuZXN8PWEsbj1pLmFsdGVybmF0ZSxuIT09bnVsbCYmKG4uY2hpbGRMYW5lc3w9YSksaS50YWc9PT0yMiYmKGU9aS5zdGF0ZU5vZGUsZT09PW51bGx8fGUuX3Zpc2liaWxpdHkmMXx8KGw9ITApKSxlPWksaT1pLnJldHVybjtyZXR1cm4gZS50YWc9PT0zPyhpPWUuc3RhdGVOb2RlLGwmJnQhPT1udWxsJiYobD0zMS1pdChhKSxlPWkuaGlkZGVuVXBkYXRlcyxuPWVbbF0sbj09PW51bGw/ZVtsXT1bdF06bi5wdXNoKHQpLHQubGFuZT1hfDUzNjg3MDkxMiksaSk6bnVsbH1mdW5jdGlvbiBKbChlKXtpZig1MDxybCl0aHJvdyBybD0wLEJjPW51bGwsRXJyb3IocygxODUpKTtmb3IodmFyIHQ9ZS5yZXR1cm47dCE9PW51bGw7KWU9dCx0PWUucmV0dXJuO3JldHVybiBlLnRhZz09PTM/ZS5zdGF0ZU5vZGU6bnVsbH12YXIgSWE9e307ZnVuY3Rpb24gcG0oZSx0LGEsbil7dGhpcy50YWc9ZSx0aGlzLmtleT1hLHRoaXMuc2libGluZz10aGlzLmNoaWxkPXRoaXMucmV0dXJuPXRoaXMuc3RhdGVOb2RlPXRoaXMudHlwZT10aGlzLmVsZW1lbnRUeXBlPW51bGwsdGhpcy5pbmRleD0wLHRoaXMucmVmQ2xlYW51cD10aGlzLnJlZj1udWxsLHRoaXMucGVuZGluZ1Byb3BzPXQsdGhpcy5kZXBlbmRlbmNpZXM9dGhpcy5tZW1vaXplZFN0YXRlPXRoaXMudXBkYXRlUXVldWU9dGhpcy5tZW1vaXplZFByb3BzPW51bGwsdGhpcy5tb2RlPW4sdGhpcy5zdWJ0cmVlRmxhZ3M9dGhpcy5mbGFncz0wLHRoaXMuZGVsZXRpb25zPW51bGwsdGhpcy5jaGlsZExhbmVzPXRoaXMubGFuZXM9MCx0aGlzLmFsdGVybmF0ZT1udWxsfWZ1bmN0aW9uIGN0KGUsdCxhLG4pe3JldHVybiBuZXcgcG0oZSx0LGEsbil9ZnVuY3Rpb24gVXUoZSl7cmV0dXJuIGU9ZS5wcm90b3R5cGUsISghZXx8IWUuaXNSZWFjdENvbXBvbmVudCl9ZnVuY3Rpb24gcXQoZSx0KXt2YXIgYT1lLmFsdGVybmF0ZTtyZXR1cm4gYT09PW51bGw/KGE9Y3QoZS50YWcsdCxlLmtleSxlLm1vZGUpLGEuZWxlbWVudFR5cGU9ZS5lbGVtZW50VHlwZSxhLnR5cGU9ZS50eXBlLGEuc3RhdGVOb2RlPWUuc3RhdGVOb2RlLGEuYWx0ZXJuYXRlPWUsZS5hbHRlcm5hdGU9YSk6KGEucGVuZGluZ1Byb3BzPXQsYS50eXBlPWUudHlwZSxhLmZsYWdzPTAsYS5zdWJ0cmVlRmxhZ3M9MCxhLmRlbGV0aW9ucz1udWxsKSxhLmZsYWdzPWUuZmxhZ3MmNjUwMTE3MTIsYS5jaGlsZExhbmVzPWUuY2hpbGRMYW5lcyxhLmxhbmVzPWUubGFuZXMsYS5jaGlsZD1lLmNoaWxkLGEubWVtb2l6ZWRQcm9wcz1lLm1lbW9pemVkUHJvcHMsYS5tZW1vaXplZFN0YXRlPWUubWVtb2l6ZWRTdGF0ZSxhLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdD1lLmRlcGVuZGVuY2llcyxhLmRlcGVuZGVuY2llcz10PT09bnVsbD9udWxsOntsYW5lczp0LmxhbmVzLGZpcnN0Q29udGV4dDp0LmZpcnN0Q29udGV4dH0sYS5zaWJsaW5nPWUuc2libGluZyxhLmluZGV4PWUuaW5kZXgsYS5yZWY9ZS5yZWYsYS5yZWZDbGVhbnVwPWUucmVmQ2xlYW51cCxhfWZ1bmN0aW9uIHdzKGUsdCl7ZS5mbGFncyY9NjUwMTE3MTQ7dmFyIGE9ZS5hbHRlcm5hdGU7cmV0dXJuIGE9PT1udWxsPyhlLmNoaWxkTGFuZXM9MCxlLmxhbmVzPXQsZS5jaGlsZD1udWxsLGUuc3VidHJlZUZsYWdzPTAsZS5tZW1vaXplZFByb3BzPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCk6KGUuY2hpbGRMYW5lcz1hLmNoaWxkTGFuZXMsZS5sYW5lcz1hLmxhbmVzLGUuY2hpbGQ9YS5jaGlsZCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGwsZS5tZW1vaXplZFByb3BzPWEubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9YS5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9YS51cGRhdGVRdWV1ZSxlLnR5cGU9YS50eXBlLHQ9YS5kZXBlbmRlbmNpZXMsZS5kZXBlbmRlbmNpZXM9dD09PW51bGw/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9KSxlfWZ1bmN0aW9uICRsKGUsdCxhLG4sbCxpKXt2YXIgdT0wO2lmKG49ZSx0eXBlb2YgZT09ImZ1bmN0aW9uIilVdShlKSYmKHU9MSk7ZWxzZSBpZih0eXBlb2YgZT09InN0cmluZyIpdT1iXyhlLGEsTC5jdXJyZW50KT8yNjplPT09Imh0bWwifHxlPT09ImhlYWQifHxlPT09ImJvZHkiPzI3OjU7ZWxzZSBlOnN3aXRjaChlKXtjYXNlIHhlOnJldHVybiBlPWN0KDMxLGEsdCxsKSxlLmVsZW1lbnRUeXBlPXhlLGUubGFuZXM9aSxlO2Nhc2UgaGU6cmV0dXJuIEFhKGEuY2hpbGRyZW4sbCxpLHQpO2Nhc2Uga2U6dT04LGx8PTI0O2JyZWFrO2Nhc2UgTmU6cmV0dXJuIGU9Y3QoMTIsYSx0LGx8MiksZS5lbGVtZW50VHlwZT1OZSxlLmxhbmVzPWksZTtjYXNlIGVlOnJldHVybiBlPWN0KDEzLGEsdCxsKSxlLmVsZW1lbnRUeXBlPWVlLGUubGFuZXM9aSxlO2Nhc2UgVGU6cmV0dXJuIGU9Y3QoMTksYSx0LGwpLGUuZWxlbWVudFR5cGU9VGUsZS5sYW5lcz1pLGU7ZGVmYXVsdDppZih0eXBlb2YgZT09Im9iamVjdCImJmUhPT1udWxsKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIHR0OmNhc2UgU2U6dT0xMDticmVhayBlO2Nhc2UgYXQ6dT05O2JyZWFrIGU7Y2FzZSB2ZTp1PTExO2JyZWFrIGU7Y2FzZSBNZTp1PTE0O2JyZWFrIGU7Y2FzZSBXOnU9MTYsbj1udWxsO2JyZWFrIGV9dT0yOSxhPUVycm9yKHMoMTMwLGU9PT1udWxsPyJudWxsIjp0eXBlb2YgZSwiIikpLG49bnVsbH1yZXR1cm4gdD1jdCh1LGEsdCxsKSx0LmVsZW1lbnRUeXBlPWUsdC50eXBlPW4sdC5sYW5lcz1pLHR9ZnVuY3Rpb24gQWEoZSx0LGEsbil7cmV0dXJuIGU9Y3QoNyxlLG4sdCksZS5sYW5lcz1hLGV9ZnVuY3Rpb24gQ3UoZSx0LGEpe3JldHVybiBlPWN0KDYsZSxudWxsLHQpLGUubGFuZXM9YSxlfWZ1bmN0aW9uIHF1KGUsdCxhKXtyZXR1cm4gdD1jdCg0LGUuY2hpbGRyZW4hPT1udWxsP2UuY2hpbGRyZW46W10sZS5rZXksdCksdC5sYW5lcz1hLHQuc3RhdGVOb2RlPXtjb250YWluZXJJbmZvOmUuY29udGFpbmVySW5mbyxwZW5kaW5nQ2hpbGRyZW46bnVsbCxpbXBsZW1lbnRhdGlvbjplLmltcGxlbWVudGF0aW9ufSx0fXZhciBlbj1bXSx0bj0wLFdsPW51bGwsRmw9MCx5dD1bXSxwdD0wLHhhPW51bGwsanQ9MSxIdD0iIjtmdW5jdGlvbiB6YShlLHQpe2VuW3RuKytdPUZsLGVuW3RuKytdPVdsLFdsPWUsRmw9dH1mdW5jdGlvbiBVcyhlLHQsYSl7eXRbcHQrK109anQseXRbcHQrK109SHQseXRbcHQrK109eGEseGE9ZTt2YXIgbj1qdDtlPUh0O3ZhciBsPTMyLWl0KG4pLTE7biY9figxPDxsKSxhKz0xO3ZhciBpPTMyLWl0KHQpK2w7aWYoMzA8aSl7dmFyIHU9bC1sJTU7aT0obiYoMTw8dSktMSkudG9TdHJpbmcoMzIpLG4+Pj11LGwtPXUsanQ9MTw8MzItaXQodCkrbHxhPDxsfG4sSHQ9aStlfWVsc2UganQ9MTw8aXxhPDxsfG4sSHQ9ZX1mdW5jdGlvbiBqdShlKXtlLnJldHVybiE9PW51bGwmJih6YShlLDEpLFVzKGUsMSwwKSl9ZnVuY3Rpb24gSHUoZSl7Zm9yKDtlPT09V2w7KVdsPWVuWy0tdG5dLGVuW3RuXT1udWxsLEZsPWVuWy0tdG5dLGVuW3RuXT1udWxsO2Zvcig7ZT09PXhhOyl4YT15dFstLXB0XSx5dFtwdF09bnVsbCxIdD15dFstLXB0XSx5dFtwdF09bnVsbCxqdD15dFstLXB0XSx5dFtwdF09bnVsbH12YXIgSmU9bnVsbCxFZT1udWxsLHVlPSExLFJhPW51bGwsUnQ9ITEsQnU9RXJyb3Iocyg1MTkpKTtmdW5jdGlvbiBEYShlKXt2YXIgdD1FcnJvcihzKDQxOCwiIikpO3Rocm93IFhuKF90KHQsZSkpLEJ1fWZ1bmN0aW9uIENzKGUpe3ZhciB0PWUuc3RhdGVOb2RlLGE9ZS50eXBlLG49ZS5tZW1vaXplZFByb3BzO3N3aXRjaCh0W1plXT1lLHRbV2VdPW4sYSl7Y2FzZSJkaWFsb2ciOkkoImNhbmNlbCIsdCksSSgiY2xvc2UiLHQpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6SSgibG9hZCIsdCk7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKGE9MDthPGRsLmxlbmd0aDthKyspSShkbFthXSx0KTticmVhaztjYXNlInNvdXJjZSI6SSgiZXJyb3IiLHQpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOkkoImVycm9yIix0KSxJKCJsb2FkIix0KTticmVhaztjYXNlImRldGFpbHMiOkkoInRvZ2dsZSIsdCk7YnJlYWs7Y2FzZSJpbnB1dCI6SSgiaW52YWxpZCIsdCksJG8odCxuLnZhbHVlLG4uZGVmYXVsdFZhbHVlLG4uY2hlY2tlZCxuLmRlZmF1bHRDaGVja2VkLG4udHlwZSxuLm5hbWUsITApLEhsKHQpO2JyZWFrO2Nhc2Uic2VsZWN0IjpJKCJpbnZhbGlkIix0KTticmVhaztjYXNlInRleHRhcmVhIjpJKCJpbnZhbGlkIix0KSxGbyh0LG4udmFsdWUsbi5kZWZhdWx0VmFsdWUsbi5jaGlsZHJlbiksSGwodCl9YT1uLmNoaWxkcmVuLHR5cGVvZiBhIT0ic3RyaW5nIiYmdHlwZW9mIGEhPSJudW1iZXIiJiZ0eXBlb2YgYSE9ImJpZ2ludCJ8fHQudGV4dENvbnRlbnQ9PT0iIithfHxuLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZz09PSEwfHxQZih0LnRleHRDb250ZW50LGEpPyhuLnBvcG92ZXIhPW51bGwmJihJKCJiZWZvcmV0b2dnbGUiLHQpLEkoInRvZ2dsZSIsdCkpLG4ub25TY3JvbGwhPW51bGwmJkkoInNjcm9sbCIsdCksbi5vblNjcm9sbEVuZCE9bnVsbCYmSSgic2Nyb2xsZW5kIix0KSxuLm9uQ2xpY2shPW51bGwmJih0Lm9uY2xpY2s9T2kpLHQ9ITApOnQ9ITEsdHx8RGEoZSl9ZnVuY3Rpb24gcXMoZSl7Zm9yKEplPWUucmV0dXJuO0plOylzd2l0Y2goSmUudGFnKXtjYXNlIDU6Y2FzZSAxMzpSdD0hMTtyZXR1cm47Y2FzZSAyNzpjYXNlIDM6UnQ9ITA7cmV0dXJuO2RlZmF1bHQ6SmU9SmUucmV0dXJufX1mdW5jdGlvbiBMbihlKXtpZihlIT09SmUpcmV0dXJuITE7aWYoIXVlKXJldHVybiBxcyhlKSx1ZT0hMCwhMTt2YXIgdD1lLnRhZyxhO2lmKChhPXQhPT0zJiZ0IT09MjcpJiYoKGE9dD09PTUpJiYoYT1lLnR5cGUsYT0hKGEhPT0iZm9ybSImJmEhPT0iYnV0dG9uIil8fGVvKGUudHlwZSxlLm1lbW9pemVkUHJvcHMpKSxhPSFhKSxhJiZFZSYmRGEoZSkscXMoZSksdD09PTEzKXtpZihlPWUubWVtb2l6ZWRTdGF0ZSxlPWUhPT1udWxsP2UuZGVoeWRyYXRlZDpudWxsLCFlKXRocm93IEVycm9yKHMoMzE3KSk7ZTp7Zm9yKGU9ZS5uZXh0U2libGluZyx0PTA7ZTspe2lmKGUubm9kZVR5cGU9PT04KWlmKGE9ZS5kYXRhLGE9PT0iLyQiKXtpZih0PT09MCl7RWU9eHQoZS5uZXh0U2libGluZyk7YnJlYWsgZX10LS19ZWxzZSBhIT09IiQiJiZhIT09IiQhIiYmYSE9PSIkPyJ8fHQrKztlPWUubmV4dFNpYmxpbmd9RWU9bnVsbH19ZWxzZSB0PT09Mjc/KHQ9RWUsaGEoZS50eXBlKT8oZT1sbyxsbz1udWxsLEVlPWUpOkVlPXQpOkVlPUplP3h0KGUuc3RhdGVOb2RlLm5leHRTaWJsaW5nKTpudWxsO3JldHVybiEwfWZ1bmN0aW9uIEduKCl7RWU9SmU9bnVsbCx1ZT0hMX1mdW5jdGlvbiBqcygpe3ZhciBlPVJhO3JldHVybiBlIT09bnVsbCYmKGV0PT09bnVsbD9ldD1lOmV0LnB1c2guYXBwbHkoZXQsZSksUmE9bnVsbCksZX1mdW5jdGlvbiBYbihlKXtSYT09PW51bGw/UmE9W2VdOlJhLnB1c2goZSl9dmFyIFl1PU4obnVsbCksTmE9bnVsbCxCdD1udWxsO2Z1bmN0aW9uIFB0KGUsdCxhKXtVKFl1LHQuX2N1cnJlbnRWYWx1ZSksdC5fY3VycmVudFZhbHVlPWF9ZnVuY3Rpb24gWXQoZSl7ZS5fY3VycmVudFZhbHVlPVl1LmN1cnJlbnQscShZdSl9ZnVuY3Rpb24gTHUoZSx0LGEpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lLmFsdGVybmF0ZTtpZigoZS5jaGlsZExhbmVzJnQpIT09dD8oZS5jaGlsZExhbmVzfD10LG4hPT1udWxsJiYobi5jaGlsZExhbmVzfD10KSk6biE9PW51bGwmJihuLmNoaWxkTGFuZXMmdCkhPT10JiYobi5jaGlsZExhbmVzfD10KSxlPT09YSlicmVhaztlPWUucmV0dXJufX1mdW5jdGlvbiBHdShlLHQsYSxuKXt2YXIgbD1lLmNoaWxkO2ZvcihsIT09bnVsbCYmKGwucmV0dXJuPWUpO2whPT1udWxsOyl7dmFyIGk9bC5kZXBlbmRlbmNpZXM7aWYoaSE9PW51bGwpe3ZhciB1PWwuY2hpbGQ7aT1pLmZpcnN0Q29udGV4dDtlOmZvcig7aSE9PW51bGw7KXt2YXIgYz1pO2k9bDtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylpZihjLmNvbnRleHQ9PT10W3JdKXtpLmxhbmVzfD1hLGM9aS5hbHRlcm5hdGUsYyE9PW51bGwmJihjLmxhbmVzfD1hKSxMdShpLnJldHVybixhLGUpLG58fCh1PW51bGwpO2JyZWFrIGV9aT1jLm5leHR9fWVsc2UgaWYobC50YWc9PT0xOCl7aWYodT1sLnJldHVybix1PT09bnVsbCl0aHJvdyBFcnJvcihzKDM0MSkpO3UubGFuZXN8PWEsaT11LmFsdGVybmF0ZSxpIT09bnVsbCYmKGkubGFuZXN8PWEpLEx1KHUsYSxlKSx1PW51bGx9ZWxzZSB1PWwuY2hpbGQ7aWYodSE9PW51bGwpdS5yZXR1cm49bDtlbHNlIGZvcih1PWw7dSE9PW51bGw7KXtpZih1PT09ZSl7dT1udWxsO2JyZWFrfWlmKGw9dS5zaWJsaW5nLGwhPT1udWxsKXtsLnJldHVybj11LnJldHVybix1PWw7YnJlYWt9dT11LnJldHVybn1sPXV9fWZ1bmN0aW9uIFFuKGUsdCxhLG4pe2U9bnVsbDtmb3IodmFyIGw9dCxpPSExO2whPT1udWxsOyl7aWYoIWkpe2lmKChsLmZsYWdzJjUyNDI4OCkhPT0wKWk9ITA7ZWxzZSBpZigobC5mbGFncyYyNjIxNDQpIT09MClicmVha31pZihsLnRhZz09PTEwKXt2YXIgdT1sLmFsdGVybmF0ZTtpZih1PT09bnVsbCl0aHJvdyBFcnJvcihzKDM4NykpO2lmKHU9dS5tZW1vaXplZFByb3BzLHUhPT1udWxsKXt2YXIgYz1sLnR5cGU7dXQobC5wZW5kaW5nUHJvcHMudmFsdWUsdS52YWx1ZSl8fChlIT09bnVsbD9lLnB1c2goYyk6ZT1bY10pfX1lbHNlIGlmKGw9PT1udC5jdXJyZW50KXtpZih1PWwuYWx0ZXJuYXRlLHU9PT1udWxsKXRocm93IEVycm9yKHMoMzg3KSk7dS5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUhPT1sLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSYmKGUhPT1udWxsP2UucHVzaChwbCk6ZT1bcGxdKX1sPWwucmV0dXJufWUhPT1udWxsJiZHdSh0LGUsYSxuKSx0LmZsYWdzfD0yNjIxNDR9ZnVuY3Rpb24gUGwoZSl7Zm9yKGU9ZS5maXJzdENvbnRleHQ7ZSE9PW51bGw7KXtpZighdXQoZS5jb250ZXh0Ll9jdXJyZW50VmFsdWUsZS5tZW1vaXplZFZhbHVlKSlyZXR1cm4hMDtlPWUubmV4dH1yZXR1cm4hMX1mdW5jdGlvbiBNYShlKXtOYT1lLEJ0PW51bGwsZT1lLmRlcGVuZGVuY2llcyxlIT09bnVsbCYmKGUuZmlyc3RDb250ZXh0PW51bGwpfWZ1bmN0aW9uIFZlKGUpe3JldHVybiBIcyhOYSxlKX1mdW5jdGlvbiBJbChlLHQpe3JldHVybiBOYT09PW51bGwmJk1hKGUpLEhzKGUsdCl9ZnVuY3Rpb24gSHMoZSx0KXt2YXIgYT10Ll9jdXJyZW50VmFsdWU7aWYodD17Y29udGV4dDp0LG1lbW9pemVkVmFsdWU6YSxuZXh0Om51bGx9LEJ0PT09bnVsbCl7aWYoZT09PW51bGwpdGhyb3cgRXJyb3IocygzMDgpKTtCdD10LGUuZGVwZW5kZW5jaWVzPXtsYW5lczowLGZpcnN0Q29udGV4dDp0fSxlLmZsYWdzfD01MjQyODh9ZWxzZSBCdD1CdC5uZXh0PXQ7cmV0dXJuIGF9dmFyIGdtPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI8InUiP0Fib3J0Q29udHJvbGxlcjpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihhLG4pe2UucHVzaChuKX19O3RoaXMuYWJvcnQ9ZnVuY3Rpb24oKXt0LmFib3J0ZWQ9ITAsZS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBhKCl9KX19LGJtPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxTbT1vLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LFVlPXskJHR5cGVvZjpTZSxDb25zdW1lcjpudWxsLFByb3ZpZGVyOm51bGwsX2N1cnJlbnRWYWx1ZTpudWxsLF9jdXJyZW50VmFsdWUyOm51bGwsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIFh1KCl7cmV0dXJue2NvbnRyb2xsZXI6bmV3IGdtLGRhdGE6bmV3IE1hcCxyZWZDb3VudDowfX1mdW5jdGlvbiBrbihlKXtlLnJlZkNvdW50LS0sZS5yZWZDb3VudD09PTAmJmJtKFNtLGZ1bmN0aW9uKCl7ZS5jb250cm9sbGVyLmFib3J0KCl9KX12YXIgWm49bnVsbCxRdT0wLGFuPTAsbm49bnVsbDtmdW5jdGlvbiBUbShlLHQpe2lmKFpuPT09bnVsbCl7dmFyIGE9Wm49W107UXU9MCxhbj1aYygpLG5uPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKG4pe2EucHVzaChuKX19fXJldHVybiBRdSsrLHQudGhlbihCcyxCcyksdH1mdW5jdGlvbiBCcygpe2lmKC0tUXU9PT0wJiZabiE9PW51bGwpe25uIT09bnVsbCYmKG5uLnN0YXR1cz0iZnVsZmlsbGVkIik7dmFyIGU9Wm47Wm49bnVsbCxhbj0wLG5uPW51bGw7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspKDAsZVt0XSkoKX19ZnVuY3Rpb24gRW0oZSx0KXt2YXIgYT1bXSxuPXtzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsdGhlbjpmdW5jdGlvbihsKXthLnB1c2gobCl9fTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKCl7bi5zdGF0dXM9ImZ1bGZpbGxlZCIsbi52YWx1ZT10O2Zvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKSgwLGFbbF0pKHQpfSxmdW5jdGlvbihsKXtmb3Iobi5zdGF0dXM9InJlamVjdGVkIixuLnJlYXNvbj1sLGw9MDtsPGEubGVuZ3RoO2wrKykoMCxhW2xdKSh2b2lkIDApfSksbn12YXIgWXM9eC5TO3guUz1mdW5jdGlvbihlLHQpe3R5cGVvZiB0PT0ib2JqZWN0IiYmdCE9PW51bGwmJnR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiImJlRtKGUsdCksWXMhPT1udWxsJiZZcyhlLHQpfTt2YXIgT2E9TihudWxsKTtmdW5jdGlvbiBrdSgpe3ZhciBlPU9hLmN1cnJlbnQ7cmV0dXJuIGUhPT1udWxsP2U6eWUucG9vbGVkQ2FjaGV9ZnVuY3Rpb24gZWkoZSx0KXt0PT09bnVsbD9VKE9hLE9hLmN1cnJlbnQpOlUoT2EsdC5wb29sKX1mdW5jdGlvbiBMcygpe3ZhciBlPWt1KCk7cmV0dXJuIGU9PT1udWxsP251bGw6e3BhcmVudDpVZS5fY3VycmVudFZhbHVlLHBvb2w6ZX19dmFyIFZuPUVycm9yKHMoNDYwKSksR3M9RXJyb3Iocyg0NzQpKSx0aT1FcnJvcihzKDU0MikpLFp1PXt0aGVuOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gWHMoZSl7cmV0dXJuIGU9ZS5zdGF0dXMsZT09PSJmdWxmaWxsZWQifHxlPT09InJlamVjdGVkIn1mdW5jdGlvbiBhaSgpe31mdW5jdGlvbiBRcyhlLHQsYSl7c3dpdGNoKGE9ZVthXSxhPT09dm9pZCAwP2UucHVzaCh0KTphIT09dCYmKHQudGhlbihhaSxhaSksdD1hKSx0LnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiB0LnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IGU9dC5yZWFzb24sWnMoZSksZTtkZWZhdWx0OmlmKHR5cGVvZiB0LnN0YXR1cz09InN0cmluZyIpdC50aGVuKGFpLGFpKTtlbHNle2lmKGU9eWUsZSE9PW51bGwmJjEwMDxlLnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3Iocyg0ODIpKTtlPXQsZS5zdGF0dXM9InBlbmRpbmciLGUudGhlbihmdW5jdGlvbihuKXtpZih0LnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIGw9dDtsLnN0YXR1cz0iZnVsZmlsbGVkIixsLnZhbHVlPW59fSxmdW5jdGlvbihuKXtpZih0LnN0YXR1cz09PSJwZW5kaW5nIil7dmFyIGw9dDtsLnN0YXR1cz0icmVqZWN0ZWQiLGwucmVhc29uPW59fSl9c3dpdGNoKHQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIHQudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZT10LnJlYXNvbixacyhlKSxlfXRocm93IEtuPXQsVm59fXZhciBLbj1udWxsO2Z1bmN0aW9uIGtzKCl7aWYoS249PT1udWxsKXRocm93IEVycm9yKHMoNDU5KSk7dmFyIGU9S247cmV0dXJuIEtuPW51bGwsZX1mdW5jdGlvbiBacyhlKXtpZihlPT09Vm58fGU9PT10aSl0aHJvdyBFcnJvcihzKDQ4MykpfXZhciBJdD0hMTtmdW5jdGlvbiBWdShlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsbGFuZXM6MCxoaWRkZW5DYWxsYmFja3M6bnVsbH0sY2FsbGJhY2tzOm51bGx9fWZ1bmN0aW9uIEt1KGUsdCl7ZT1lLnVwZGF0ZVF1ZXVlLHQudXBkYXRlUXVldWU9PT1lJiYodC51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTplLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTplLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDplLnNoYXJlZCxjYWxsYmFja3M6bnVsbH0pfWZ1bmN0aW9uIGVhKGUpe3JldHVybntsYW5lOmUsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiB0YShlLHQsYSl7dmFyIG49ZS51cGRhdGVRdWV1ZTtpZihuPT09bnVsbClyZXR1cm4gbnVsbDtpZihuPW4uc2hhcmVkLChvZSYyKSE9PTApe3ZhciBsPW4ucGVuZGluZztyZXR1cm4gbD09PW51bGw/dC5uZXh0PXQ6KHQubmV4dD1sLm5leHQsbC5uZXh0PXQpLG4ucGVuZGluZz10LHQ9SmwoZSksT3MoZSxudWxsLGEpLHR9cmV0dXJuIEtsKGUsbix0LGEpLEpsKGUpfWZ1bmN0aW9uIEpuKGUsdCxhKXtpZih0PXQudXBkYXRlUXVldWUsdCE9PW51bGwmJih0PXQuc2hhcmVkLChhJjQxOTQwNDgpIT09MCkpe3ZhciBuPXQubGFuZXM7biY9ZS5wZW5kaW5nTGFuZXMsYXw9bix0LmxhbmVzPWEsQm8oZSxhKX19ZnVuY3Rpb24gSnUoZSx0KXt2YXIgYT1lLnVwZGF0ZVF1ZXVlLG49ZS5hbHRlcm5hdGU7aWYobiE9PW51bGwmJihuPW4udXBkYXRlUXVldWUsYT09PW4pKXt2YXIgbD1udWxsLGk9bnVsbDtpZihhPWEuZmlyc3RCYXNlVXBkYXRlLGEhPT1udWxsKXtkb3t2YXIgdT17bGFuZTphLmxhbmUsdGFnOmEudGFnLHBheWxvYWQ6YS5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfTtpPT09bnVsbD9sPWk9dTppPWkubmV4dD11LGE9YS5uZXh0fXdoaWxlKGEhPT1udWxsKTtpPT09bnVsbD9sPWk9dDppPWkubmV4dD10fWVsc2UgbD1pPXQ7YT17YmFzZVN0YXRlOm4uYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpsLGxhc3RCYXNlVXBkYXRlOmksc2hhcmVkOm4uc2hhcmVkLGNhbGxiYWNrczpuLmNhbGxiYWNrc30sZS51cGRhdGVRdWV1ZT1hO3JldHVybn1lPWEubGFzdEJhc2VVcGRhdGUsZT09PW51bGw/YS5maXJzdEJhc2VVcGRhdGU9dDplLm5leHQ9dCxhLmxhc3RCYXNlVXBkYXRlPXR9dmFyICR1PSExO2Z1bmN0aW9uICRuKCl7aWYoJHUpe3ZhciBlPW5uO2lmKGUhPT1udWxsKXRocm93IGV9fWZ1bmN0aW9uIFduKGUsdCxhLG4peyR1PSExO3ZhciBsPWUudXBkYXRlUXVldWU7SXQ9ITE7dmFyIGk9bC5maXJzdEJhc2VVcGRhdGUsdT1sLmxhc3RCYXNlVXBkYXRlLGM9bC5zaGFyZWQucGVuZGluZztpZihjIT09bnVsbCl7bC5zaGFyZWQucGVuZGluZz1udWxsO3ZhciByPWMscD1yLm5leHQ7ci5uZXh0PW51bGwsdT09PW51bGw/aT1wOnUubmV4dD1wLHU9cjt2YXIgQT1lLmFsdGVybmF0ZTtBIT09bnVsbCYmKEE9QS51cGRhdGVRdWV1ZSxjPUEubGFzdEJhc2VVcGRhdGUsYyE9PXUmJihjPT09bnVsbD9BLmZpcnN0QmFzZVVwZGF0ZT1wOmMubmV4dD1wLEEubGFzdEJhc2VVcGRhdGU9cikpfWlmKGkhPT1udWxsKXt2YXIgUj1sLmJhc2VTdGF0ZTt1PTAsQT1wPXI9bnVsbCxjPWk7ZG97dmFyIGc9Yy5sYW5lJi01MzY4NzA5MTMsYj1nIT09Yy5sYW5lO2lmKGI/KHRlJmcpPT09ZzoobiZnKT09PWcpe2chPT0wJiZnPT09YW4mJigkdT0hMCksQSE9PW51bGwmJihBPUEubmV4dD17bGFuZTowLHRhZzpjLnRhZyxwYXlsb2FkOmMucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH0pO2U6e3ZhciBrPWUsRz1jO2c9dDt2YXIgZGU9YTtzd2l0Y2goRy50YWcpe2Nhc2UgMTppZihrPUcucGF5bG9hZCx0eXBlb2Ygaz09ImZ1bmN0aW9uIil7Uj1rLmNhbGwoZGUsUixnKTticmVhayBlfVI9azticmVhayBlO2Nhc2UgMzprLmZsYWdzPWsuZmxhZ3MmLTY1NTM3fDEyODtjYXNlIDA6aWYoaz1HLnBheWxvYWQsZz10eXBlb2Ygaz09ImZ1bmN0aW9uIj9rLmNhbGwoZGUsUixnKTprLGc9PW51bGwpYnJlYWsgZTtSPU8oe30sUixnKTticmVhayBlO2Nhc2UgMjpJdD0hMH19Zz1jLmNhbGxiYWNrLGchPT1udWxsJiYoZS5mbGFnc3w9NjQsYiYmKGUuZmxhZ3N8PTgxOTIpLGI9bC5jYWxsYmFja3MsYj09PW51bGw/bC5jYWxsYmFja3M9W2ddOmIucHVzaChnKSl9ZWxzZSBiPXtsYW5lOmcsdGFnOmMudGFnLHBheWxvYWQ6Yy5wYXlsb2FkLGNhbGxiYWNrOmMuY2FsbGJhY2ssbmV4dDpudWxsfSxBPT09bnVsbD8ocD1BPWIscj1SKTpBPUEubmV4dD1iLHV8PWc7aWYoYz1jLm5leHQsYz09PW51bGwpe2lmKGM9bC5zaGFyZWQucGVuZGluZyxjPT09bnVsbClicmVhaztiPWMsYz1iLm5leHQsYi5uZXh0PW51bGwsbC5sYXN0QmFzZVVwZGF0ZT1iLGwuc2hhcmVkLnBlbmRpbmc9bnVsbH19d2hpbGUoITApO0E9PT1udWxsJiYocj1SKSxsLmJhc2VTdGF0ZT1yLGwuZmlyc3RCYXNlVXBkYXRlPXAsbC5sYXN0QmFzZVVwZGF0ZT1BLGk9PT1udWxsJiYobC5zaGFyZWQubGFuZXM9MCksc2F8PXUsZS5sYW5lcz11LGUubWVtb2l6ZWRTdGF0ZT1SfX1mdW5jdGlvbiBWcyhlLHQpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IEVycm9yKHMoMTkxLGUpKTtlLmNhbGwodCl9ZnVuY3Rpb24gS3MoZSx0KXt2YXIgYT1lLmNhbGxiYWNrcztpZihhIT09bnVsbClmb3IoZS5jYWxsYmFja3M9bnVsbCxlPTA7ZTxhLmxlbmd0aDtlKyspVnMoYVtlXSx0KX12YXIgbG49TihudWxsKSxuaT1OKDApO2Z1bmN0aW9uIEpzKGUsdCl7ZT1WdCxVKG5pLGUpLFUobG4sdCksVnQ9ZXx0LmJhc2VMYW5lc31mdW5jdGlvbiBXdSgpe1UobmksVnQpLFUobG4sbG4uY3VycmVudCl9ZnVuY3Rpb24gRnUoKXtWdD1uaS5jdXJyZW50LHEobG4pLHEobmkpfXZhciBhYT0wLEo9bnVsbCxyZT1udWxsLE9lPW51bGwsbGk9ITEsdW49ITEsd2E9ITEsaWk9MCxGbj0wLGNuPW51bGwsQW09MDtmdW5jdGlvbiB6ZSgpe3Rocm93IEVycm9yKHMoMzIxKSl9ZnVuY3Rpb24gUHUoZSx0KXtpZih0PT09bnVsbClyZXR1cm4hMTtmb3IodmFyIGE9MDthPHQubGVuZ3RoJiZhPGUubGVuZ3RoO2ErKylpZighdXQoZVthXSx0W2FdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBJdShlLHQsYSxuLGwsaSl7cmV0dXJuIGFhPWksSj10LHQubWVtb2l6ZWRTdGF0ZT1udWxsLHQudXBkYXRlUXVldWU9bnVsbCx0LmxhbmVzPTAseC5IPWU9PT1udWxsfHxlLm1lbW9pemVkU3RhdGU9PT1udWxsP09yOndyLHdhPSExLGk9YShuLGwpLHdhPSExLHVuJiYoaT1Xcyh0LGEsbixsKSksJHMoZSksaX1mdW5jdGlvbiAkcyhlKXt4Lkg9Zmk7dmFyIHQ9cmUhPT1udWxsJiZyZS5uZXh0IT09bnVsbDtpZihhYT0wLE9lPXJlPUo9bnVsbCxsaT0hMSxGbj0wLGNuPW51bGwsdCl0aHJvdyBFcnJvcihzKDMwMCkpO2U9PT1udWxsfHxCZXx8KGU9ZS5kZXBlbmRlbmNpZXMsZSE9PW51bGwmJlBsKGUpJiYoQmU9ITApKX1mdW5jdGlvbiBXcyhlLHQsYSxuKXtKPWU7dmFyIGw9MDtkb3tpZih1biYmKGNuPW51bGwpLEZuPTAsdW49ITEsMjU8PWwpdGhyb3cgRXJyb3IocygzMDEpKTtpZihsKz0xLE9lPXJlPW51bGwsZS51cGRhdGVRdWV1ZSE9bnVsbCl7dmFyIGk9ZS51cGRhdGVRdWV1ZTtpLmxhc3RFZmZlY3Q9bnVsbCxpLmV2ZW50cz1udWxsLGkuc3RvcmVzPW51bGwsaS5tZW1vQ2FjaGUhPW51bGwmJihpLm1lbW9DYWNoZS5pbmRleD0wKX14Lkg9T20saT10KGEsbil9d2hpbGUodW4pO3JldHVybiBpfWZ1bmN0aW9uIHhtKCl7dmFyIGU9eC5ILHQ9ZS51c2VTdGF0ZSgpWzBdO3JldHVybiB0PXR5cGVvZiB0LnRoZW49PSJmdW5jdGlvbiI/UG4odCk6dCxlPWUudXNlU3RhdGUoKVswXSwocmUhPT1udWxsP3JlLm1lbW9pemVkU3RhdGU6bnVsbCkhPT1lJiYoSi5mbGFnc3w9MTAyNCksdH1mdW5jdGlvbiBlYygpe3ZhciBlPWlpIT09MDtyZXR1cm4gaWk9MCxlfWZ1bmN0aW9uIHRjKGUsdCxhKXt0LnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsdC5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fmF9ZnVuY3Rpb24gYWMoZSl7aWYobGkpe2ZvcihlPWUubWVtb2l6ZWRTdGF0ZTtlIT09bnVsbDspe3ZhciB0PWUucXVldWU7dCE9PW51bGwmJih0LnBlbmRpbmc9bnVsbCksZT1lLm5leHR9bGk9ITF9YWE9MCxPZT1yZT1KPW51bGwsdW49ITEsRm49aWk9MCxjbj1udWxsfWZ1bmN0aW9uIFBlKCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIE9lPT09bnVsbD9KLm1lbW9pemVkU3RhdGU9T2U9ZTpPZT1PZS5uZXh0PWUsT2V9ZnVuY3Rpb24gd2UoKXtpZihyZT09PW51bGwpe3ZhciBlPUouYWx0ZXJuYXRlO2U9ZSE9PW51bGw/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPXJlLm5leHQ7dmFyIHQ9T2U9PT1udWxsP0oubWVtb2l6ZWRTdGF0ZTpPZS5uZXh0O2lmKHQhPT1udWxsKU9lPXQscmU9ZTtlbHNle2lmKGU9PT1udWxsKXRocm93IEouYWx0ZXJuYXRlPT09bnVsbD9FcnJvcihzKDQ2NykpOkVycm9yKHMoMzEwKSk7cmU9ZSxlPXttZW1vaXplZFN0YXRlOnJlLm1lbW9pemVkU3RhdGUsYmFzZVN0YXRlOnJlLmJhc2VTdGF0ZSxiYXNlUXVldWU6cmUuYmFzZVF1ZXVlLHF1ZXVlOnJlLnF1ZXVlLG5leHQ6bnVsbH0sT2U9PT1udWxsP0oubWVtb2l6ZWRTdGF0ZT1PZT1lOk9lPU9lLm5leHQ9ZX1yZXR1cm4gT2V9ZnVuY3Rpb24gbmMoKXtyZXR1cm57bGFzdEVmZmVjdDpudWxsLGV2ZW50czpudWxsLHN0b3JlczpudWxsLG1lbW9DYWNoZTpudWxsfX1mdW5jdGlvbiBQbihlKXt2YXIgdD1GbjtyZXR1cm4gRm4rPTEsY249PT1udWxsJiYoY249W10pLGU9UXMoY24sZSx0KSx0PUosKE9lPT09bnVsbD90Lm1lbW9pemVkU3RhdGU6T2UubmV4dCk9PT1udWxsJiYodD10LmFsdGVybmF0ZSx4Lkg9dD09PW51bGx8fHQubWVtb2l6ZWRTdGF0ZT09PW51bGw/T3I6d3IpLGV9ZnVuY3Rpb24gdWkoZSl7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYodHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gUG4oZSk7aWYoZS4kJHR5cGVvZj09PVNlKXJldHVybiBWZShlKX10aHJvdyBFcnJvcihzKDQzOCxTdHJpbmcoZSkpKX1mdW5jdGlvbiBsYyhlKXt2YXIgdD1udWxsLGE9Si51cGRhdGVRdWV1ZTtpZihhIT09bnVsbCYmKHQ9YS5tZW1vQ2FjaGUpLHQ9PW51bGwpe3ZhciBuPUouYWx0ZXJuYXRlO24hPT1udWxsJiYobj1uLnVwZGF0ZVF1ZXVlLG4hPT1udWxsJiYobj1uLm1lbW9DYWNoZSxuIT1udWxsJiYodD17ZGF0YTpuLmRhdGEubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLnNsaWNlKCl9KSxpbmRleDowfSkpKX1pZih0PT1udWxsJiYodD17ZGF0YTpbXSxpbmRleDowfSksYT09PW51bGwmJihhPW5jKCksSi51cGRhdGVRdWV1ZT1hKSxhLm1lbW9DYWNoZT10LGE9dC5kYXRhW3QuaW5kZXhdLGE9PT12b2lkIDApZm9yKGE9dC5kYXRhW3QuaW5kZXhdPUFycmF5KGUpLG49MDtuPGU7bisrKWFbbl09RjtyZXR1cm4gdC5pbmRleCsrLGF9ZnVuY3Rpb24gTHQoZSx0KXtyZXR1cm4gdHlwZW9mIHQ9PSJmdW5jdGlvbiI/dChlKTp0fWZ1bmN0aW9uIGNpKGUpe3ZhciB0PXdlKCk7cmV0dXJuIGljKHQscmUsZSl9ZnVuY3Rpb24gaWMoZSx0LGEpe3ZhciBuPWUucXVldWU7aWYobj09PW51bGwpdGhyb3cgRXJyb3IocygzMTEpKTtuLmxhc3RSZW5kZXJlZFJlZHVjZXI9YTt2YXIgbD1lLmJhc2VRdWV1ZSxpPW4ucGVuZGluZztpZihpIT09bnVsbCl7aWYobCE9PW51bGwpe3ZhciB1PWwubmV4dDtsLm5leHQ9aS5uZXh0LGkubmV4dD11fXQuYmFzZVF1ZXVlPWw9aSxuLnBlbmRpbmc9bnVsbH1pZihpPWUuYmFzZVN0YXRlLGw9PT1udWxsKWUubWVtb2l6ZWRTdGF0ZT1pO2Vsc2V7dD1sLm5leHQ7dmFyIGM9dT1udWxsLHI9bnVsbCxwPXQsQT0hMTtkb3t2YXIgUj1wLmxhbmUmLTUzNjg3MDkxMztpZihSIT09cC5sYW5lPyh0ZSZSKT09PVI6KGFhJlIpPT09Uil7dmFyIGc9cC5yZXZlcnRMYW5lO2lmKGc9PT0wKXIhPT1udWxsJiYocj1yLm5leHQ9e2xhbmU6MCxyZXZlcnRMYW5lOjAsYWN0aW9uOnAuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6cC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6cC5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLFI9PT1hbiYmKEE9ITApO2Vsc2UgaWYoKGFhJmcpPT09Zyl7cD1wLm5leHQsZz09PWFuJiYoQT0hMCk7Y29udGludWV9ZWxzZSBSPXtsYW5lOjAscmV2ZXJ0TGFuZTpwLnJldmVydExhbmUsYWN0aW9uOnAuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6cC5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6cC5lYWdlclN0YXRlLG5leHQ6bnVsbH0scj09PW51bGw/KGM9cj1SLHU9aSk6cj1yLm5leHQ9UixKLmxhbmVzfD1nLHNhfD1nO1I9cC5hY3Rpb24sd2EmJmEoaSxSKSxpPXAuaGFzRWFnZXJTdGF0ZT9wLmVhZ2VyU3RhdGU6YShpLFIpfWVsc2UgZz17bGFuZTpSLHJldmVydExhbmU6cC5yZXZlcnRMYW5lLGFjdGlvbjpwLmFjdGlvbixoYXNFYWdlclN0YXRlOnAuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnAuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LHI9PT1udWxsPyhjPXI9Zyx1PWkpOnI9ci5uZXh0PWcsSi5sYW5lc3w9UixzYXw9UjtwPXAubmV4dH13aGlsZShwIT09bnVsbCYmcCE9PXQpO2lmKHI9PT1udWxsP3U9aTpyLm5leHQ9YywhdXQoaSxlLm1lbW9pemVkU3RhdGUpJiYoQmU9ITAsQSYmKGE9bm4sYSE9PW51bGwpKSl0aHJvdyBhO2UubWVtb2l6ZWRTdGF0ZT1pLGUuYmFzZVN0YXRlPXUsZS5iYXNlUXVldWU9cixuLmxhc3RSZW5kZXJlZFN0YXRlPWl9cmV0dXJuIGw9PT1udWxsJiYobi5sYW5lcz0wKSxbZS5tZW1vaXplZFN0YXRlLG4uZGlzcGF0Y2hdfWZ1bmN0aW9uIHVjKGUpe3ZhciB0PXdlKCksYT10LnF1ZXVlO2lmKGE9PT1udWxsKXRocm93IEVycm9yKHMoMzExKSk7YS5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIG49YS5kaXNwYXRjaCxsPWEucGVuZGluZyxpPXQubWVtb2l6ZWRTdGF0ZTtpZihsIT09bnVsbCl7YS5wZW5kaW5nPW51bGw7dmFyIHU9bD1sLm5leHQ7ZG8gaT1lKGksdS5hY3Rpb24pLHU9dS5uZXh0O3doaWxlKHUhPT1sKTt1dChpLHQubWVtb2l6ZWRTdGF0ZSl8fChCZT0hMCksdC5tZW1vaXplZFN0YXRlPWksdC5iYXNlUXVldWU9PT1udWxsJiYodC5iYXNlU3RhdGU9aSksYS5sYXN0UmVuZGVyZWRTdGF0ZT1pfXJldHVybltpLG5dfWZ1bmN0aW9uIEZzKGUsdCxhKXt2YXIgbj1KLGw9d2UoKSxpPXVlO2lmKGkpe2lmKGE9PT12b2lkIDApdGhyb3cgRXJyb3Iocyg0MDcpKTthPWEoKX1lbHNlIGE9dCgpO3ZhciB1PSF1dCgocmV8fGwpLm1lbW9pemVkU3RhdGUsYSk7dSYmKGwubWVtb2l6ZWRTdGF0ZT1hLEJlPSEwKSxsPWwucXVldWU7dmFyIGM9ZXIuYmluZChudWxsLG4sbCxlKTtpZihJbigyMDQ4LDgsYyxbZV0pLGwuZ2V0U25hcHNob3QhPT10fHx1fHxPZSE9PW51bGwmJk9lLm1lbW9pemVkU3RhdGUudGFnJjEpe2lmKG4uZmxhZ3N8PTIwNDgsb24oOSxvaSgpLElzLmJpbmQobnVsbCxuLGwsYSx0KSxudWxsKSx5ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDkpKTtpfHwoYWEmMTI0KSE9PTB8fFBzKG4sdCxhKX1yZXR1cm4gYX1mdW5jdGlvbiBQcyhlLHQsYSl7ZS5mbGFnc3w9MTYzODQsZT17Z2V0U25hcHNob3Q6dCx2YWx1ZTphfSx0PUoudXBkYXRlUXVldWUsdD09PW51bGw/KHQ9bmMoKSxKLnVwZGF0ZVF1ZXVlPXQsdC5zdG9yZXM9W2VdKTooYT10LnN0b3JlcyxhPT09bnVsbD90LnN0b3Jlcz1bZV06YS5wdXNoKGUpKX1mdW5jdGlvbiBJcyhlLHQsYSxuKXt0LnZhbHVlPWEsdC5nZXRTbmFwc2hvdD1uLHRyKHQpJiZhcihlKX1mdW5jdGlvbiBlcihlLHQsYSl7cmV0dXJuIGEoZnVuY3Rpb24oKXt0cih0KSYmYXIoZSl9KX1mdW5jdGlvbiB0cihlKXt2YXIgdD1lLmdldFNuYXBzaG90O2U9ZS52YWx1ZTt0cnl7dmFyIGE9dCgpO3JldHVybiF1dChlLGEpfWNhdGNoe3JldHVybiEwfX1mdW5jdGlvbiBhcihlKXt2YXIgdD1QYShlLDIpO3QhPT1udWxsJiZkdCh0LGUsMil9ZnVuY3Rpb24gY2MoZSl7dmFyIHQ9UGUoKTtpZih0eXBlb2YgZT09ImZ1bmN0aW9uIil7dmFyIGE9ZTtpZihlPWEoKSx3YSl7JHQoITApO3RyeXthKCl9ZmluYWxseXskdCghMSl9fX1yZXR1cm4gdC5tZW1vaXplZFN0YXRlPXQuYmFzZVN0YXRlPWUsdC5xdWV1ZT17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkx0LGxhc3RSZW5kZXJlZFN0YXRlOmV9LHR9ZnVuY3Rpb24gbnIoZSx0LGEsbil7cmV0dXJuIGUuYmFzZVN0YXRlPWEsaWMoZSxyZSx0eXBlb2Ygbj09ImZ1bmN0aW9uIj9uOkx0KX1mdW5jdGlvbiB6bShlLHQsYSxuLGwpe2lmKHJpKGUpKXRocm93IEVycm9yKHMoNDg1KSk7aWYoZT10LmFjdGlvbixlIT09bnVsbCl7dmFyIGk9e3BheWxvYWQ6bCxhY3Rpb246ZSxuZXh0Om51bGwsaXNUcmFuc2l0aW9uOiEwLHN0YXR1czoicGVuZGluZyIsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxsaXN0ZW5lcnM6W10sdGhlbjpmdW5jdGlvbih1KXtpLmxpc3RlbmVycy5wdXNoKHUpfX07eC5UIT09bnVsbD9hKCEwKTppLmlzVHJhbnNpdGlvbj0hMSxuKGkpLGE9dC5wZW5kaW5nLGE9PT1udWxsPyhpLm5leHQ9dC5wZW5kaW5nPWksbHIodCxpKSk6KGkubmV4dD1hLm5leHQsdC5wZW5kaW5nPWEubmV4dD1pKX19ZnVuY3Rpb24gbHIoZSx0KXt2YXIgYT10LmFjdGlvbixuPXQucGF5bG9hZCxsPWUuc3RhdGU7aWYodC5pc1RyYW5zaXRpb24pe3ZhciBpPXguVCx1PXt9O3guVD11O3RyeXt2YXIgYz1hKGwsbikscj14LlM7ciE9PW51bGwmJnIodSxjKSxpcihlLHQsYyl9Y2F0Y2gocCl7b2MoZSx0LHApfWZpbmFsbHl7eC5UPWl9fWVsc2UgdHJ5e2k9YShsLG4pLGlyKGUsdCxpKX1jYXRjaChwKXtvYyhlLHQscCl9fWZ1bmN0aW9uIGlyKGUsdCxhKXthIT09bnVsbCYmdHlwZW9mIGE9PSJvYmplY3QiJiZ0eXBlb2YgYS50aGVuPT0iZnVuY3Rpb24iP2EudGhlbihmdW5jdGlvbihuKXt1cihlLHQsbil9LGZ1bmN0aW9uKG4pe3JldHVybiBvYyhlLHQsbil9KTp1cihlLHQsYSl9ZnVuY3Rpb24gdXIoZSx0LGEpe3Quc3RhdHVzPSJmdWxmaWxsZWQiLHQudmFsdWU9YSxjcih0KSxlLnN0YXRlPWEsdD1lLnBlbmRpbmcsdCE9PW51bGwmJihhPXQubmV4dCxhPT09dD9lLnBlbmRpbmc9bnVsbDooYT1hLm5leHQsdC5uZXh0PWEsbHIoZSxhKSkpfWZ1bmN0aW9uIG9jKGUsdCxhKXt2YXIgbj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbiE9PW51bGwpe249bi5uZXh0O2RvIHQuc3RhdHVzPSJyZWplY3RlZCIsdC5yZWFzb249YSxjcih0KSx0PXQubmV4dDt3aGlsZSh0IT09bil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBjcihlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKSgwLGVbdF0pKCl9ZnVuY3Rpb24gb3IoZSx0KXtyZXR1cm4gdH1mdW5jdGlvbiBzcihlLHQpe2lmKHVlKXt2YXIgYT15ZS5mb3JtU3RhdGU7aWYoYSE9PW51bGwpe2U6e3ZhciBuPUo7aWYodWUpe2lmKEVlKXt0Ontmb3IodmFyIGw9RWUsaT1SdDtsLm5vZGVUeXBlIT09ODspe2lmKCFpKXtsPW51bGw7YnJlYWsgdH1pZihsPXh0KGwubmV4dFNpYmxpbmcpLGw9PT1udWxsKXtsPW51bGw7YnJlYWsgdH19aT1sLmRhdGEsbD1pPT09IkYhInx8aT09PSJGIj9sOm51bGx9aWYobCl7RWU9eHQobC5uZXh0U2libGluZyksbj1sLmRhdGE9PT0iRiEiO2JyZWFrIGV9fURhKG4pfW49ITF9biYmKHQ9YVswXSl9fXJldHVybiBhPVBlKCksYS5tZW1vaXplZFN0YXRlPWEuYmFzZVN0YXRlPXQsbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm9yLGxhc3RSZW5kZXJlZFN0YXRlOnR9LGEucXVldWU9bixhPURyLmJpbmQobnVsbCxKLG4pLG4uZGlzcGF0Y2g9YSxuPWNjKCExKSxpPWhjLmJpbmQobnVsbCxKLCExLG4ucXVldWUpLG49UGUoKSxsPXtzdGF0ZTp0LGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxuLnF1ZXVlPWwsYT16bS5iaW5kKG51bGwsSixsLGksYSksbC5kaXNwYXRjaD1hLG4ubWVtb2l6ZWRTdGF0ZT1lLFt0LGEsITFdfWZ1bmN0aW9uIHJyKGUpe3ZhciB0PXdlKCk7cmV0dXJuIGZyKHQscmUsZSl9ZnVuY3Rpb24gZnIoZSx0LGEpe2lmKHQ9aWMoZSx0LG9yKVswXSxlPWNpKEx0KVswXSx0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsJiZ0eXBlb2YgdC50aGVuPT0iZnVuY3Rpb24iKXRyeXt2YXIgbj1Qbih0KX1jYXRjaCh1KXt0aHJvdyB1PT09Vm4/dGk6dX1lbHNlIG49dDt0PXdlKCk7dmFyIGw9dC5xdWV1ZSxpPWwuZGlzcGF0Y2g7cmV0dXJuIGEhPT10Lm1lbW9pemVkU3RhdGUmJihKLmZsYWdzfD0yMDQ4LG9uKDksb2koKSxSbS5iaW5kKG51bGwsbCxhKSxudWxsKSksW24saSxlXX1mdW5jdGlvbiBSbShlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gZHIoZSl7dmFyIHQ9d2UoKSxhPXJlO2lmKGEhPT1udWxsKXJldHVybiBmcih0LGEsZSk7d2UoKSx0PXQubWVtb2l6ZWRTdGF0ZSxhPXdlKCk7dmFyIG49YS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gYS5tZW1vaXplZFN0YXRlPWUsW3QsbiwhMV19ZnVuY3Rpb24gb24oZSx0LGEsbil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTphLGRlcHM6bixpbnN0OnQsbmV4dDpudWxsfSx0PUoudXBkYXRlUXVldWUsdD09PW51bGwmJih0PW5jKCksSi51cGRhdGVRdWV1ZT10KSxhPXQubGFzdEVmZmVjdCxhPT09bnVsbD90Lmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KG49YS5uZXh0LGEubmV4dD1lLGUubmV4dD1uLHQubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIG9pKCl7cmV0dXJue2Rlc3Ryb3k6dm9pZCAwLHJlc291cmNlOnZvaWQgMH19ZnVuY3Rpb24gaHIoKXtyZXR1cm4gd2UoKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIHNpKGUsdCxhLG4pe3ZhciBsPVBlKCk7bj1uPT09dm9pZCAwP251bGw6bixKLmZsYWdzfD1lLGwubWVtb2l6ZWRTdGF0ZT1vbigxfHQsb2koKSxhLG4pfWZ1bmN0aW9uIEluKGUsdCxhLG4pe3ZhciBsPXdlKCk7bj1uPT09dm9pZCAwP251bGw6bjt2YXIgaT1sLm1lbW9pemVkU3RhdGUuaW5zdDtyZSE9PW51bGwmJm4hPT1udWxsJiZQdShuLHJlLm1lbW9pemVkU3RhdGUuZGVwcyk/bC5tZW1vaXplZFN0YXRlPW9uKHQsaSxhLG4pOihKLmZsYWdzfD1lLGwubWVtb2l6ZWRTdGF0ZT1vbigxfHQsaSxhLG4pKX1mdW5jdGlvbiBtcihlLHQpe3NpKDgzOTA2NTYsOCxlLHQpfWZ1bmN0aW9uIF9yKGUsdCl7SW4oMjA0OCw4LGUsdCl9ZnVuY3Rpb24gdnIoZSx0KXtyZXR1cm4gSW4oNCwyLGUsdCl9ZnVuY3Rpb24geXIoZSx0KXtyZXR1cm4gSW4oNCw0LGUsdCl9ZnVuY3Rpb24gcHIoZSx0KXtpZih0eXBlb2YgdD09ImZ1bmN0aW9uIil7ZT1lKCk7dmFyIGE9dChlKTtyZXR1cm4gZnVuY3Rpb24oKXt0eXBlb2YgYT09ImZ1bmN0aW9uIj9hKCk6dChudWxsKX19aWYodCE9bnVsbClyZXR1cm4gZT1lKCksdC5jdXJyZW50PWUsZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gZ3IoZSx0LGEpe2E9YSE9bnVsbD9hLmNvbmNhdChbZV0pOm51bGwsSW4oNCw0LHByLmJpbmQobnVsbCx0LGUpLGEpfWZ1bmN0aW9uIHNjKCl7fWZ1bmN0aW9uIGJyKGUsdCl7dmFyIGE9d2UoKTt0PXQ9PT12b2lkIDA/bnVsbDp0O3ZhciBuPWEubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gdCE9PW51bGwmJlB1KHQsblsxXSk/blswXTooYS5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIFNyKGUsdCl7dmFyIGE9d2UoKTt0PXQ9PT12b2lkIDA/bnVsbDp0O3ZhciBuPWEubWVtb2l6ZWRTdGF0ZTtpZih0IT09bnVsbCYmUHUodCxuWzFdKSlyZXR1cm4gblswXTtpZihuPWUoKSx3YSl7JHQoITApO3RyeXtlKCl9ZmluYWxseXskdCghMSl9fXJldHVybiBhLm1lbW9pemVkU3RhdGU9W24sdF0sbn1mdW5jdGlvbiByYyhlLHQsYSl7cmV0dXJuIGE9PT12b2lkIDB8fChhYSYxMDczNzQxODI0KSE9PTA/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1hLGU9eGYoKSxKLmxhbmVzfD1lLHNhfD1lLGEpfWZ1bmN0aW9uIFRyKGUsdCxhLG4pe3JldHVybiB1dChhLHQpP2E6bG4uY3VycmVudCE9PW51bGw/KGU9cmMoZSxhLG4pLHV0KGUsdCl8fChCZT0hMCksZSk6KGFhJjQyKT09PTA/KEJlPSEwLGUubWVtb2l6ZWRTdGF0ZT1hKTooZT14ZigpLEoubGFuZXN8PWUsc2F8PWUsdCl9ZnVuY3Rpb24gRXIoZSx0LGEsbixsKXt2YXIgaT1DLnA7Qy5wPWkhPT0wJiY4Pmk/aTo4O3ZhciB1PXguVCxjPXt9O3guVD1jLGhjKGUsITEsdCxhKTt0cnl7dmFyIHI9bCgpLHA9eC5TO2lmKHAhPT1udWxsJiZwKGMsciksciE9PW51bGwmJnR5cGVvZiByPT0ib2JqZWN0IiYmdHlwZW9mIHIudGhlbj09ImZ1bmN0aW9uIil7dmFyIEE9RW0ocixuKTtlbChlLHQsQSxmdChlKSl9ZWxzZSBlbChlLHQsbixmdChlKSl9Y2F0Y2goUil7ZWwoZSx0LHt0aGVuOmZ1bmN0aW9uKCl7fSxzdGF0dXM6InJlamVjdGVkIixyZWFzb246Un0sZnQoKSl9ZmluYWxseXtDLnA9aSx4LlQ9dX19ZnVuY3Rpb24gRG0oKXt9ZnVuY3Rpb24gZmMoZSx0LGEsbil7aWYoZS50YWchPT01KXRocm93IEVycm9yKHMoNDc2KSk7dmFyIGw9QXIoZSkucXVldWU7RXIoZSxsLHQsUSxhPT09bnVsbD9EbTpmdW5jdGlvbigpe3JldHVybiB4cihlKSxhKG4pfSl9ZnVuY3Rpb24gQXIoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKHQhPT1udWxsKXJldHVybiB0O3Q9e21lbW9pemVkU3RhdGU6USxiYXNlU3RhdGU6USxiYXNlUXVldWU6bnVsbCxxdWV1ZTp7cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOkx0LGxhc3RSZW5kZXJlZFN0YXRlOlF9LG5leHQ6bnVsbH07dmFyIGE9e307cmV0dXJuIHQubmV4dD17bWVtb2l6ZWRTdGF0ZTphLGJhc2VTdGF0ZTphLGJhc2VRdWV1ZTpudWxsLHF1ZXVlOntwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6THQsbGFzdFJlbmRlcmVkU3RhdGU6YX0sbmV4dDpudWxsfSxlLm1lbW9pemVkU3RhdGU9dCxlPWUuYWx0ZXJuYXRlLGUhPT1udWxsJiYoZS5tZW1vaXplZFN0YXRlPXQpLHR9ZnVuY3Rpb24geHIoZSl7dmFyIHQ9QXIoZSkubmV4dC5xdWV1ZTtlbChlLHQse30sZnQoKSl9ZnVuY3Rpb24gZGMoKXtyZXR1cm4gVmUocGwpfWZ1bmN0aW9uIHpyKCl7cmV0dXJuIHdlKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBScigpe3JldHVybiB3ZSgpLm1lbW9pemVkU3RhdGV9ZnVuY3Rpb24gTm0oZSl7Zm9yKHZhciB0PWUucmV0dXJuO3QhPT1udWxsOyl7c3dpdGNoKHQudGFnKXtjYXNlIDI0OmNhc2UgMzp2YXIgYT1mdCgpO2U9ZWEoYSk7dmFyIG49dGEodCxlLGEpO24hPT1udWxsJiYoZHQobix0LGEpLEpuKG4sdCxhKSksdD17Y2FjaGU6WHUoKX0sZS5wYXlsb2FkPXQ7cmV0dXJufXQ9dC5yZXR1cm59fWZ1bmN0aW9uIE1tKGUsdCxhKXt2YXIgbj1mdCgpO2E9e2xhbmU6bixyZXZlcnRMYW5lOjAsYWN0aW9uOmEsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxyaShlKT9Ocih0LGEpOihhPXd1KGUsdCxhLG4pLGEhPT1udWxsJiYoZHQoYSxlLG4pLE1yKGEsdCxuKSkpfWZ1bmN0aW9uIERyKGUsdCxhKXt2YXIgbj1mdCgpO2VsKGUsdCxhLG4pfWZ1bmN0aW9uIGVsKGUsdCxhLG4pe3ZhciBsPXtsYW5lOm4scmV2ZXJ0TGFuZTowLGFjdGlvbjphLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYocmkoZSkpTnIodCxsKTtlbHNle3ZhciBpPWUuYWx0ZXJuYXRlO2lmKGUubGFuZXM9PT0wJiYoaT09PW51bGx8fGkubGFuZXM9PT0wKSYmKGk9dC5sYXN0UmVuZGVyZWRSZWR1Y2VyLGkhPT1udWxsKSl0cnl7dmFyIHU9dC5sYXN0UmVuZGVyZWRTdGF0ZSxjPWkodSxhKTtpZihsLmhhc0VhZ2VyU3RhdGU9ITAsbC5lYWdlclN0YXRlPWMsdXQoYyx1KSlyZXR1cm4gS2woZSx0LGwsMCkseWU9PT1udWxsJiZWbCgpLCExfWNhdGNoe31pZihhPXd1KGUsdCxsLG4pLGEhPT1udWxsKXJldHVybiBkdChhLGUsbiksTXIoYSx0LG4pLCEwfXJldHVybiExfWZ1bmN0aW9uIGhjKGUsdCxhLG4pe2lmKG49e2xhbmU6MixyZXZlcnRMYW5lOlpjKCksYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxyaShlKSl7aWYodCl0aHJvdyBFcnJvcihzKDQ3OSkpfWVsc2UgdD13dShlLGEsbiwyKSx0IT09bnVsbCYmZHQodCxlLDIpfWZ1bmN0aW9uIHJpKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO3JldHVybiBlPT09Snx8dCE9PW51bGwmJnQ9PT1KfWZ1bmN0aW9uIE5yKGUsdCl7dW49bGk9ITA7dmFyIGE9ZS5wZW5kaW5nO2E9PT1udWxsP3QubmV4dD10Oih0Lm5leHQ9YS5uZXh0LGEubmV4dD10KSxlLnBlbmRpbmc9dH1mdW5jdGlvbiBNcihlLHQsYSl7aWYoKGEmNDE5NDA0OCkhPT0wKXt2YXIgbj10LmxhbmVzO24mPWUucGVuZGluZ0xhbmVzLGF8PW4sdC5sYW5lcz1hLEJvKGUsYSl9fXZhciBmaT17cmVhZENvbnRleHQ6VmUsdXNlOnVpLHVzZUNhbGxiYWNrOnplLHVzZUNvbnRleHQ6emUsdXNlRWZmZWN0OnplLHVzZUltcGVyYXRpdmVIYW5kbGU6emUsdXNlTGF5b3V0RWZmZWN0OnplLHVzZUluc2VydGlvbkVmZmVjdDp6ZSx1c2VNZW1vOnplLHVzZVJlZHVjZXI6emUsdXNlUmVmOnplLHVzZVN0YXRlOnplLHVzZURlYnVnVmFsdWU6emUsdXNlRGVmZXJyZWRWYWx1ZTp6ZSx1c2VUcmFuc2l0aW9uOnplLHVzZVN5bmNFeHRlcm5hbFN0b3JlOnplLHVzZUlkOnplLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOnplLHVzZUZvcm1TdGF0ZTp6ZSx1c2VBY3Rpb25TdGF0ZTp6ZSx1c2VPcHRpbWlzdGljOnplLHVzZU1lbW9DYWNoZTp6ZSx1c2VDYWNoZVJlZnJlc2g6emV9LE9yPXtyZWFkQ29udGV4dDpWZSx1c2U6dWksdXNlQ2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gUGUoKS5tZW1vaXplZFN0YXRlPVtlLHQ9PT12b2lkIDA/bnVsbDp0XSxlfSx1c2VDb250ZXh0OlZlLHVzZUVmZmVjdDptcix1c2VJbXBlcmF0aXZlSGFuZGxlOmZ1bmN0aW9uKGUsdCxhKXthPWEhPW51bGw/YS5jb25jYXQoW2VdKTpudWxsLHNpKDQxOTQzMDgsNCxwci5iaW5kKG51bGwsdCxlKSxhKX0sdXNlTGF5b3V0RWZmZWN0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHNpKDQxOTQzMDgsNCxlLHQpfSx1c2VJbnNlcnRpb25FZmZlY3Q6ZnVuY3Rpb24oZSx0KXtzaSg0LDIsZSx0KX0sdXNlTWVtbzpmdW5jdGlvbihlLHQpe3ZhciBhPVBlKCk7dD10PT09dm9pZCAwP251bGw6dDt2YXIgbj1lKCk7aWYod2EpeyR0KCEwKTt0cnl7ZSgpfWZpbmFsbHl7JHQoITEpfX1yZXR1cm4gYS5tZW1vaXplZFN0YXRlPVtuLHRdLG59LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPVBlKCk7aWYoYSE9PXZvaWQgMCl7dmFyIGw9YSh0KTtpZih3YSl7JHQoITApO3RyeXthKHQpfWZpbmFsbHl7JHQoITEpfX19ZWxzZSBsPXQ7cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT1sLGU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOmx9LG4ucXVldWU9ZSxlPWUuZGlzcGF0Y2g9TW0uYmluZChudWxsLEosZSksW24ubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3ZhciB0PVBlKCk7cmV0dXJuIGU9e2N1cnJlbnQ6ZX0sdC5tZW1vaXplZFN0YXRlPWV9LHVzZVN0YXRlOmZ1bmN0aW9uKGUpe2U9Y2MoZSk7dmFyIHQ9ZS5xdWV1ZSxhPURyLmJpbmQobnVsbCxKLHQpO3JldHVybiB0LmRpc3BhdGNoPWEsW2UubWVtb2l6ZWRTdGF0ZSxhXX0sdXNlRGVidWdWYWx1ZTpzYyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9UGUoKTtyZXR1cm4gcmMoYSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9Y2MoITEpO3JldHVybiBlPUVyLmJpbmQobnVsbCxKLGUucXVldWUsITAsITEpLFBlKCkubWVtb2l6ZWRTdGF0ZT1lLFshMSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSx0LGEpe3ZhciBuPUosbD1QZSgpO2lmKHVlKXtpZihhPT09dm9pZCAwKXRocm93IEVycm9yKHMoNDA3KSk7YT1hKCl9ZWxzZXtpZihhPXQoKSx5ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDkpKTsodGUmMTI0KSE9PTB8fFBzKG4sdCxhKX1sLm1lbW9pemVkU3RhdGU9YTt2YXIgaT17dmFsdWU6YSxnZXRTbmFwc2hvdDp0fTtyZXR1cm4gbC5xdWV1ZT1pLG1yKGVyLmJpbmQobnVsbCxuLGksZSksW2VdKSxuLmZsYWdzfD0yMDQ4LG9uKDksb2koKSxJcy5iaW5kKG51bGwsbixpLGEsdCksbnVsbCksYX0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgZT1QZSgpLHQ9eWUuaWRlbnRpZmllclByZWZpeDtpZih1ZSl7dmFyIGE9SHQsbj1qdDthPShuJn4oMTw8MzItaXQobiktMSkpLnRvU3RyaW5nKDMyKSthLHQ9IsKrIit0KyJSIithLGE9aWkrKywwPGEmJih0Kz0iSCIrYS50b1N0cmluZygzMikpLHQrPSLCuyJ9ZWxzZSBhPUFtKyssdD0iwqsiK3QrInIiK2EudG9TdHJpbmcoMzIpKyLCuyI7cmV0dXJuIGUubWVtb2l6ZWRTdGF0ZT10fSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpkYyx1c2VGb3JtU3RhdGU6c3IsdXNlQWN0aW9uU3RhdGU6c3IsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbihlKXt2YXIgdD1QZSgpO3QubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lO3ZhciBhPXtwZW5kaW5nOm51bGwsbGFuZXM6MCxkaXNwYXRjaDpudWxsLGxhc3RSZW5kZXJlZFJlZHVjZXI6bnVsbCxsYXN0UmVuZGVyZWRTdGF0ZTpudWxsfTtyZXR1cm4gdC5xdWV1ZT1hLHQ9aGMuYmluZChudWxsLEosITAsYSksYS5kaXNwYXRjaD10LFtlLHRdfSx1c2VNZW1vQ2FjaGU6bGMsdXNlQ2FjaGVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIFBlKCkubWVtb2l6ZWRTdGF0ZT1ObS5iaW5kKG51bGwsSil9fSx3cj17cmVhZENvbnRleHQ6VmUsdXNlOnVpLHVzZUNhbGxiYWNrOmJyLHVzZUNvbnRleHQ6VmUsdXNlRWZmZWN0Ol9yLHVzZUltcGVyYXRpdmVIYW5kbGU6Z3IsdXNlSW5zZXJ0aW9uRWZmZWN0OnZyLHVzZUxheW91dEVmZmVjdDp5cix1c2VNZW1vOlNyLHVzZVJlZHVjZXI6Y2ksdXNlUmVmOmhyLHVzZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGNpKEx0KX0sdXNlRGVidWdWYWx1ZTpzYyx1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIGE9d2UoKTtyZXR1cm4gVHIoYSxyZS5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1jaShMdClbMF0sdD13ZSgpLm1lbW9pemVkU3RhdGU7cmV0dXJuW3R5cGVvZiBlPT0iYm9vbGVhbiI/ZTpQbihlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6RnMsdXNlSWQ6enIsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6ZGMsdXNlRm9ybVN0YXRlOnJyLHVzZUFjdGlvblN0YXRlOnJyLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXt2YXIgYT13ZSgpO3JldHVybiBucihhLHJlLGUsdCl9LHVzZU1lbW9DYWNoZTpsYyx1c2VDYWNoZVJlZnJlc2g6UnJ9LE9tPXtyZWFkQ29udGV4dDpWZSx1c2U6dWksdXNlQ2FsbGJhY2s6YnIsdXNlQ29udGV4dDpWZSx1c2VFZmZlY3Q6X3IsdXNlSW1wZXJhdGl2ZUhhbmRsZTpncix1c2VJbnNlcnRpb25FZmZlY3Q6dnIsdXNlTGF5b3V0RWZmZWN0OnlyLHVzZU1lbW86U3IsdXNlUmVkdWNlcjp1Yyx1c2VSZWY6aHIsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdWMoTHQpfSx1c2VEZWJ1Z1ZhbHVlOnNjLHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgYT13ZSgpO3JldHVybiByZT09PW51bGw/cmMoYSxlLHQpOlRyKGEscmUubWVtb2l6ZWRTdGF0ZSxlLHQpfSx1c2VUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dWMoTHQpWzBdLHQ9d2UoKS5tZW1vaXplZFN0YXRlO3JldHVyblt0eXBlb2YgZT09ImJvb2xlYW4iP2U6UG4oZSksdF19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOkZzLHVzZUlkOnpyLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmRjLHVzZUZvcm1TdGF0ZTpkcix1c2VBY3Rpb25TdGF0ZTpkcix1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsdCl7dmFyIGE9d2UoKTtyZXR1cm4gcmUhPT1udWxsP25yKGEscmUsZSx0KTooYS5iYXNlU3RhdGU9ZSxbZSxhLnF1ZXVlLmRpc3BhdGNoXSl9LHVzZU1lbW9DYWNoZTpsYyx1c2VDYWNoZVJlZnJlc2g6UnJ9LHNuPW51bGwsdGw9MDtmdW5jdGlvbiBkaShlKXt2YXIgdD10bDtyZXR1cm4gdGwrPTEsc249PT1udWxsJiYoc249W10pLFFzKHNuLGUsdCl9ZnVuY3Rpb24gYWwoZSx0KXt0PXQucHJvcHMucmVmLGUucmVmPXQhPT12b2lkIDA/dDpudWxsfWZ1bmN0aW9uIGhpKGUsdCl7dGhyb3cgdC4kJHR5cGVvZj09PVY/RXJyb3Iocyg1MjUpKTooZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCksRXJyb3IocygzMSxlPT09IltvYmplY3QgT2JqZWN0XSI/Im9iamVjdCB3aXRoIGtleXMgeyIrT2JqZWN0LmtleXModCkuam9pbigiLCAiKSsifSI6ZSkpKX1mdW5jdGlvbiBVcihlKXt2YXIgdD1lLl9pbml0O3JldHVybiB0KGUuX3BheWxvYWQpfWZ1bmN0aW9uIENyKGUpe2Z1bmN0aW9uIHQoXyxoKXtpZihlKXt2YXIgdj1fLmRlbGV0aW9uczt2PT09bnVsbD8oXy5kZWxldGlvbnM9W2hdLF8uZmxhZ3N8PTE2KTp2LnB1c2goaCl9fWZ1bmN0aW9uIGEoXyxoKXtpZighZSlyZXR1cm4gbnVsbDtmb3IoO2ghPT1udWxsOyl0KF8saCksaD1oLnNpYmxpbmc7cmV0dXJuIG51bGx9ZnVuY3Rpb24gbihfKXtmb3IodmFyIGg9bmV3IE1hcDtfIT09bnVsbDspXy5rZXkhPT1udWxsP2guc2V0KF8ua2V5LF8pOmguc2V0KF8uaW5kZXgsXyksXz1fLnNpYmxpbmc7cmV0dXJuIGh9ZnVuY3Rpb24gbChfLGgpe3JldHVybiBfPXF0KF8saCksXy5pbmRleD0wLF8uc2libGluZz1udWxsLF99ZnVuY3Rpb24gaShfLGgsdil7cmV0dXJuIF8uaW5kZXg9dixlPyh2PV8uYWx0ZXJuYXRlLHYhPT1udWxsPyh2PXYuaW5kZXgsdjxoPyhfLmZsYWdzfD02NzEwODg2NixoKTp2KTooXy5mbGFnc3w9NjcxMDg4NjYsaCkpOihfLmZsYWdzfD0xMDQ4NTc2LGgpfWZ1bmN0aW9uIHUoXyl7cmV0dXJuIGUmJl8uYWx0ZXJuYXRlPT09bnVsbCYmKF8uZmxhZ3N8PTY3MTA4ODY2KSxffWZ1bmN0aW9uIGMoXyxoLHYseil7cmV0dXJuIGg9PT1udWxsfHxoLnRhZyE9PTY/KGg9Q3UodixfLm1vZGUseiksaC5yZXR1cm49XyxoKTooaD1sKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiByKF8saCx2LHope3ZhciBqPXYudHlwZTtyZXR1cm4gaj09PWhlP0EoXyxoLHYucHJvcHMuY2hpbGRyZW4seix2LmtleSk6aCE9PW51bGwmJihoLmVsZW1lbnRUeXBlPT09anx8dHlwZW9mIGo9PSJvYmplY3QiJiZqIT09bnVsbCYmai4kJHR5cGVvZj09PVcmJlVyKGopPT09aC50eXBlKT8oaD1sKGgsdi5wcm9wcyksYWwoaCx2KSxoLnJldHVybj1fLGgpOihoPSRsKHYudHlwZSx2LmtleSx2LnByb3BzLG51bGwsXy5tb2RlLHopLGFsKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiBwKF8saCx2LHope3JldHVybiBoPT09bnVsbHx8aC50YWchPT00fHxoLnN0YXRlTm9kZS5jb250YWluZXJJbmZvIT09di5jb250YWluZXJJbmZvfHxoLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiE9PXYuaW1wbGVtZW50YXRpb24/KGg9cXUodixfLm1vZGUseiksaC5yZXR1cm49XyxoKTooaD1sKGgsdi5jaGlsZHJlbnx8W10pLGgucmV0dXJuPV8saCl9ZnVuY3Rpb24gQShfLGgsdix6LGope3JldHVybiBoPT09bnVsbHx8aC50YWchPT03PyhoPUFhKHYsXy5tb2RlLHosaiksaC5yZXR1cm49XyxoKTooaD1sKGgsdiksaC5yZXR1cm49XyxoKX1mdW5jdGlvbiBSKF8saCx2KXtpZih0eXBlb2YgaD09InN0cmluZyImJmghPT0iInx8dHlwZW9mIGg9PSJudW1iZXIifHx0eXBlb2YgaD09ImJpZ2ludCIpcmV0dXJuIGg9Q3UoIiIraCxfLm1vZGUsdiksaC5yZXR1cm49XyxoO2lmKHR5cGVvZiBoPT0ib2JqZWN0IiYmaCE9PW51bGwpe3N3aXRjaChoLiQkdHlwZW9mKXtjYXNlIEg6cmV0dXJuIHY9JGwoaC50eXBlLGgua2V5LGgucHJvcHMsbnVsbCxfLm1vZGUsdiksYWwodixoKSx2LnJldHVybj1fLHY7Y2FzZSBjZTpyZXR1cm4gaD1xdShoLF8ubW9kZSx2KSxoLnJldHVybj1fLGg7Y2FzZSBXOnZhciB6PWguX2luaXQ7cmV0dXJuIGg9eihoLl9wYXlsb2FkKSxSKF8saCx2KX1pZihqZShoKXx8bmUoaCkpcmV0dXJuIGg9QWEoaCxfLm1vZGUsdixudWxsKSxoLnJldHVybj1fLGg7aWYodHlwZW9mIGgudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gUihfLGRpKGgpLHYpO2lmKGguJCR0eXBlb2Y9PT1TZSlyZXR1cm4gUihfLElsKF8saCksdik7aGkoXyxoKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBnKF8saCx2LHope3ZhciBqPWghPT1udWxsP2gua2V5Om51bGw7aWYodHlwZW9mIHY9PSJzdHJpbmciJiZ2IT09IiJ8fHR5cGVvZiB2PT0ibnVtYmVyInx8dHlwZW9mIHY9PSJiaWdpbnQiKXJldHVybiBqIT09bnVsbD9udWxsOmMoXyxoLCIiK3Yseik7aWYodHlwZW9mIHY9PSJvYmplY3QiJiZ2IT09bnVsbCl7c3dpdGNoKHYuJCR0eXBlb2Ype2Nhc2UgSDpyZXR1cm4gdi5rZXk9PT1qP3IoXyxoLHYseik6bnVsbDtjYXNlIGNlOnJldHVybiB2LmtleT09PWo/cChfLGgsdix6KTpudWxsO2Nhc2UgVzpyZXR1cm4gaj12Ll9pbml0LHY9aih2Ll9wYXlsb2FkKSxnKF8saCx2LHopfWlmKGplKHYpfHxuZSh2KSlyZXR1cm4gaiE9PW51bGw/bnVsbDpBKF8saCx2LHosbnVsbCk7aWYodHlwZW9mIHYudGhlbj09ImZ1bmN0aW9uIilyZXR1cm4gZyhfLGgsZGkodikseik7aWYodi4kJHR5cGVvZj09PVNlKXJldHVybiBnKF8saCxJbChfLHYpLHopO2hpKF8sdil9cmV0dXJuIG51bGx9ZnVuY3Rpb24gYihfLGgsdix6LGope2lmKHR5cGVvZiB6PT0ic3RyaW5nIiYmeiE9PSIifHx0eXBlb2Ygej09Im51bWJlciJ8fHR5cGVvZiB6PT0iYmlnaW50IilyZXR1cm4gXz1fLmdldCh2KXx8bnVsbCxjKGgsXywiIit6LGopO2lmKHR5cGVvZiB6PT0ib2JqZWN0IiYmeiE9PW51bGwpe3N3aXRjaCh6LiQkdHlwZW9mKXtjYXNlIEg6cmV0dXJuIF89Xy5nZXQoei5rZXk9PT1udWxsP3Y6ei5rZXkpfHxudWxsLHIoaCxfLHosaik7Y2FzZSBjZTpyZXR1cm4gXz1fLmdldCh6LmtleT09PW51bGw/djp6LmtleSl8fG51bGwscChoLF8seixqKTtjYXNlIFc6dmFyICQ9ei5faW5pdDtyZXR1cm4gej0kKHouX3BheWxvYWQpLGIoXyxoLHYseixqKX1pZihqZSh6KXx8bmUoeikpcmV0dXJuIF89Xy5nZXQodil8fG51bGwsQShoLF8seixqLG51bGwpO2lmKHR5cGVvZiB6LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGIoXyxoLHYsZGkoeiksaik7aWYoei4kJHR5cGVvZj09PVNlKXJldHVybiBiKF8saCx2LElsKGgseiksaik7aGkoaCx6KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBrKF8saCx2LHope2Zvcih2YXIgaj1udWxsLCQ9bnVsbCxCPWgsWD1oPTAsTGU9bnVsbDtCIT09bnVsbCYmWDx2Lmxlbmd0aDtYKyspe0IuaW5kZXg+WD8oTGU9QixCPW51bGwpOkxlPUIuc2libGluZzt2YXIgaWU9ZyhfLEIsdltYXSx6KTtpZihpZT09PW51bGwpe0I9PT1udWxsJiYoQj1MZSk7YnJlYWt9ZSYmQiYmaWUuYWx0ZXJuYXRlPT09bnVsbCYmdChfLEIpLGg9aShpZSxoLFgpLCQ9PT1udWxsP2o9aWU6JC5zaWJsaW5nPWllLCQ9aWUsQj1MZX1pZihYPT09di5sZW5ndGgpcmV0dXJuIGEoXyxCKSx1ZSYmemEoXyxYKSxqO2lmKEI9PT1udWxsKXtmb3IoO1g8di5sZW5ndGg7WCsrKUI9UihfLHZbWF0seiksQiE9PW51bGwmJihoPWkoQixoLFgpLCQ9PT1udWxsP2o9QjokLnNpYmxpbmc9QiwkPUIpO3JldHVybiB1ZSYmemEoXyxYKSxqfWZvcihCPW4oQik7WDx2Lmxlbmd0aDtYKyspTGU9YihCLF8sWCx2W1hdLHopLExlIT09bnVsbCYmKGUmJkxlLmFsdGVybmF0ZSE9PW51bGwmJkIuZGVsZXRlKExlLmtleT09PW51bGw/WDpMZS5rZXkpLGg9aShMZSxoLFgpLCQ9PT1udWxsP2o9TGU6JC5zaWJsaW5nPUxlLCQ9TGUpO3JldHVybiBlJiZCLmZvckVhY2goZnVuY3Rpb24ocGEpe3JldHVybiB0KF8scGEpfSksdWUmJnphKF8sWCksan1mdW5jdGlvbiBHKF8saCx2LHope2lmKHY9PW51bGwpdGhyb3cgRXJyb3IocygxNTEpKTtmb3IodmFyIGo9bnVsbCwkPW51bGwsQj1oLFg9aD0wLExlPW51bGwsaWU9di5uZXh0KCk7QiE9PW51bGwmJiFpZS5kb25lO1grKyxpZT12Lm5leHQoKSl7Qi5pbmRleD5YPyhMZT1CLEI9bnVsbCk6TGU9Qi5zaWJsaW5nO3ZhciBwYT1nKF8sQixpZS52YWx1ZSx6KTtpZihwYT09PW51bGwpe0I9PT1udWxsJiYoQj1MZSk7YnJlYWt9ZSYmQiYmcGEuYWx0ZXJuYXRlPT09bnVsbCYmdChfLEIpLGg9aShwYSxoLFgpLCQ9PT1udWxsP2o9cGE6JC5zaWJsaW5nPXBhLCQ9cGEsQj1MZX1pZihpZS5kb25lKXJldHVybiBhKF8sQiksdWUmJnphKF8sWCksajtpZihCPT09bnVsbCl7Zm9yKDshaWUuZG9uZTtYKyssaWU9di5uZXh0KCkpaWU9UihfLGllLnZhbHVlLHopLGllIT09bnVsbCYmKGg9aShpZSxoLFgpLCQ9PT1udWxsP2o9aWU6JC5zaWJsaW5nPWllLCQ9aWUpO3JldHVybiB1ZSYmemEoXyxYKSxqfWZvcihCPW4oQik7IWllLmRvbmU7WCsrLGllPXYubmV4dCgpKWllPWIoQixfLFgsaWUudmFsdWUseiksaWUhPT1udWxsJiYoZSYmaWUuYWx0ZXJuYXRlIT09bnVsbCYmQi5kZWxldGUoaWUua2V5PT09bnVsbD9YOmllLmtleSksaD1pKGllLGgsWCksJD09PW51bGw/aj1pZTokLnNpYmxpbmc9aWUsJD1pZSk7cmV0dXJuIGUmJkIuZm9yRWFjaChmdW5jdGlvbih3Xyl7cmV0dXJuIHQoXyx3Xyl9KSx1ZSYmemEoXyxYKSxqfWZ1bmN0aW9uIGRlKF8saCx2LHope2lmKHR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwmJnYudHlwZT09PWhlJiZ2LmtleT09PW51bGwmJih2PXYucHJvcHMuY2hpbGRyZW4pLHR5cGVvZiB2PT0ib2JqZWN0IiYmdiE9PW51bGwpe3N3aXRjaCh2LiQkdHlwZW9mKXtjYXNlIEg6ZTp7Zm9yKHZhciBqPXYua2V5O2ghPT1udWxsOyl7aWYoaC5rZXk9PT1qKXtpZihqPXYudHlwZSxqPT09aGUpe2lmKGgudGFnPT09Nyl7YShfLGguc2libGluZyksej1sKGgsdi5wcm9wcy5jaGlsZHJlbiksei5yZXR1cm49XyxfPXo7YnJlYWsgZX19ZWxzZSBpZihoLmVsZW1lbnRUeXBlPT09anx8dHlwZW9mIGo9PSJvYmplY3QiJiZqIT09bnVsbCYmai4kJHR5cGVvZj09PVcmJlVyKGopPT09aC50eXBlKXthKF8saC5zaWJsaW5nKSx6PWwoaCx2LnByb3BzKSxhbCh6LHYpLHoucmV0dXJuPV8sXz16O2JyZWFrIGV9YShfLGgpO2JyZWFrfWVsc2UgdChfLGgpO2g9aC5zaWJsaW5nfXYudHlwZT09PWhlPyh6PUFhKHYucHJvcHMuY2hpbGRyZW4sXy5tb2RlLHosdi5rZXkpLHoucmV0dXJuPV8sXz16KTooej0kbCh2LnR5cGUsdi5rZXksdi5wcm9wcyxudWxsLF8ubW9kZSx6KSxhbCh6LHYpLHoucmV0dXJuPV8sXz16KX1yZXR1cm4gdShfKTtjYXNlIGNlOmU6e2ZvcihqPXYua2V5O2ghPT1udWxsOyl7aWYoaC5rZXk9PT1qKWlmKGgudGFnPT09NCYmaC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PXYuY29udGFpbmVySW5mbyYmaC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb249PT12LmltcGxlbWVudGF0aW9uKXthKF8saC5zaWJsaW5nKSx6PWwoaCx2LmNoaWxkcmVufHxbXSksei5yZXR1cm49XyxfPXo7YnJlYWsgZX1lbHNle2EoXyxoKTticmVha31lbHNlIHQoXyxoKTtoPWguc2libGluZ316PXF1KHYsXy5tb2RlLHopLHoucmV0dXJuPV8sXz16fXJldHVybiB1KF8pO2Nhc2UgVzpyZXR1cm4gaj12Ll9pbml0LHY9aih2Ll9wYXlsb2FkKSxkZShfLGgsdix6KX1pZihqZSh2KSlyZXR1cm4gayhfLGgsdix6KTtpZihuZSh2KSl7aWYoaj1uZSh2KSx0eXBlb2YgaiE9ImZ1bmN0aW9uIil0aHJvdyBFcnJvcihzKDE1MCkpO3JldHVybiB2PWouY2FsbCh2KSxHKF8saCx2LHopfWlmKHR5cGVvZiB2LnRoZW49PSJmdW5jdGlvbiIpcmV0dXJuIGRlKF8saCxkaSh2KSx6KTtpZih2LiQkdHlwZW9mPT09U2UpcmV0dXJuIGRlKF8saCxJbChfLHYpLHopO2hpKF8sdil9cmV0dXJuIHR5cGVvZiB2PT0ic3RyaW5nIiYmdiE9PSIifHx0eXBlb2Ygdj09Im51bWJlciJ8fHR5cGVvZiB2PT0iYmlnaW50Ij8odj0iIit2LGghPT1udWxsJiZoLnRhZz09PTY/KGEoXyxoLnNpYmxpbmcpLHo9bChoLHYpLHoucmV0dXJuPV8sXz16KTooYShfLGgpLHo9Q3UodixfLm1vZGUseiksei5yZXR1cm49XyxfPXopLHUoXykpOmEoXyxoKX1yZXR1cm4gZnVuY3Rpb24oXyxoLHYseil7dHJ5e3RsPTA7dmFyIGo9ZGUoXyxoLHYseik7cmV0dXJuIHNuPW51bGwsan1jYXRjaChCKXtpZihCPT09Vm58fEI9PT10aSl0aHJvdyBCO3ZhciAkPWN0KDI5LEIsbnVsbCxfLm1vZGUpO3JldHVybiAkLmxhbmVzPXosJC5yZXR1cm49XywkfX19dmFyIHJuPUNyKCEwKSxxcj1DcighMSksZ3Q9TihudWxsKSxEdD1udWxsO2Z1bmN0aW9uIG5hKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO1UoQ2UsQ2UuY3VycmVudCYxKSxVKGd0LGUpLER0PT09bnVsbCYmKHQ9PT1udWxsfHxsbi5jdXJyZW50IT09bnVsbHx8dC5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihEdD1lKX1mdW5jdGlvbiBqcihlKXtpZihlLnRhZz09PTIyKXtpZihVKENlLENlLmN1cnJlbnQpLFUoZ3QsZSksRHQ9PT1udWxsKXt2YXIgdD1lLmFsdGVybmF0ZTt0IT09bnVsbCYmdC5tZW1vaXplZFN0YXRlIT09bnVsbCYmKER0PWUpfX1lbHNlIGxhKCl9ZnVuY3Rpb24gbGEoKXtVKENlLENlLmN1cnJlbnQpLFUoZ3QsZ3QuY3VycmVudCl9ZnVuY3Rpb24gR3QoZSl7cShndCksRHQ9PT1lJiYoRHQ9bnVsbCkscShDZSl9dmFyIENlPU4oMCk7ZnVuY3Rpb24gbWkoZSl7Zm9yKHZhciB0PWU7dCE9PW51bGw7KXtpZih0LnRhZz09PTEzKXt2YXIgYT10Lm1lbW9pemVkU3RhdGU7aWYoYSE9PW51bGwmJihhPWEuZGVoeWRyYXRlZCxhPT09bnVsbHx8YS5kYXRhPT09IiQ/Inx8bm8oYSkpKXJldHVybiB0fWVsc2UgaWYodC50YWc9PT0xOSYmdC5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyIT09dm9pZCAwKXtpZigodC5mbGFncyYxMjgpIT09MClyZXR1cm4gdH1lbHNlIGlmKHQuY2hpbGQhPT1udWxsKXt0LmNoaWxkLnJldHVybj10LHQ9dC5jaGlsZDtjb250aW51ZX1pZih0PT09ZSlicmVhaztmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fHQucmV0dXJuPT09ZSlyZXR1cm4gbnVsbDt0PXQucmV0dXJufXQuc2libGluZy5yZXR1cm49dC5yZXR1cm4sdD10LnNpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gbWMoZSx0LGEsbil7dD1lLm1lbW9pemVkU3RhdGUsYT1hKG4sdCksYT1hPT1udWxsP3Q6Tyh7fSx0LGEpLGUubWVtb2l6ZWRTdGF0ZT1hLGUubGFuZXM9PT0wJiYoZS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9YSl9dmFyIF9jPXtlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSx0LGEpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49ZnQoKSxsPWVhKG4pO2wucGF5bG9hZD10LGEhPW51bGwmJihsLmNhbGxiYWNrPWEpLHQ9dGEoZSxsLG4pLHQhPT1udWxsJiYoZHQodCxlLG4pLEpuKHQsZSxuKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSx0LGEpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49ZnQoKSxsPWVhKG4pO2wudGFnPTEsbC5wYXlsb2FkPXQsYSE9bnVsbCYmKGwuY2FsbGJhY2s9YSksdD10YShlLGwsbiksdCE9PW51bGwmJihkdCh0LGUsbiksSm4odCxlLG4pKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgYT1mdCgpLG49ZWEoYSk7bi50YWc9Mix0IT1udWxsJiYobi5jYWxsYmFjaz10KSx0PXRhKGUsbixhKSx0IT09bnVsbCYmKGR0KHQsZSxhKSxKbih0LGUsYSkpfX07ZnVuY3Rpb24gSHIoZSx0LGEsbixsLGksdSl7cmV0dXJuIGU9ZS5zdGF0ZU5vZGUsdHlwZW9mIGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPT0iZnVuY3Rpb24iP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKG4saSx1KTp0LnByb3RvdHlwZSYmdC5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25lbnQ/IUJuKGEsbil8fCFCbihsLGkpOiEwfWZ1bmN0aW9uIEJyKGUsdCxhLG4pe2U9dC5zdGF0ZSx0eXBlb2YgdC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzPT0iZnVuY3Rpb24iJiZ0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoYSxuKSx0eXBlb2YgdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcz09ImZ1bmN0aW9uIiYmdC5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhhLG4pLHQuc3RhdGUhPT1lJiZfYy5lbnF1ZXVlUmVwbGFjZVN0YXRlKHQsdC5zdGF0ZSxudWxsKX1mdW5jdGlvbiBVYShlLHQpe3ZhciBhPXQ7aWYoInJlZiJpbiB0KXthPXt9O2Zvcih2YXIgbiBpbiB0KW4hPT0icmVmIiYmKGFbbl09dFtuXSl9aWYoZT1lLmRlZmF1bHRQcm9wcyl7YT09PXQmJihhPU8oe30sYSkpO2Zvcih2YXIgbCBpbiBlKWFbbF09PT12b2lkIDAmJihhW2xdPWVbbF0pfXJldHVybiBhfXZhciBfaT10eXBlb2YgcmVwb3J0RXJyb3I9PSJmdW5jdGlvbiI/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSl7aWYodHlwZW9mIHdpbmRvdz09Im9iamVjdCImJnR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudD09ImZ1bmN0aW9uIil7dmFyIHQ9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOnR5cGVvZiBlPT0ib2JqZWN0IiYmZSE9PW51bGwmJnR5cGVvZiBlLm1lc3NhZ2U9PSJzdHJpbmciP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpKXJldHVybn1lbHNlIGlmKHR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MuZW1pdD09ImZ1bmN0aW9uIil7cHJvY2Vzcy5lbWl0KCJ1bmNhdWdodEV4Y2VwdGlvbiIsZSk7cmV0dXJufWNvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uIFlyKGUpe19pKGUpfWZ1bmN0aW9uIExyKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gR3IoZSl7X2koZSl9ZnVuY3Rpb24gdmkoZSx0KXt0cnl7dmFyIGE9ZS5vblVuY2F1Z2h0RXJyb3I7YSh0LnZhbHVlLHtjb21wb25lbnRTdGFjazp0LnN0YWNrfSl9Y2F0Y2gobil7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IG59KX19ZnVuY3Rpb24gWHIoZSx0LGEpe3RyeXt2YXIgbj1lLm9uQ2F1Z2h0RXJyb3I7bihhLnZhbHVlLHtjb21wb25lbnRTdGFjazphLnN0YWNrLGVycm9yQm91bmRhcnk6dC50YWc9PT0xP3Quc3RhdGVOb2RlOm51bGx9KX1jYXRjaChsKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgbH0pfX1mdW5jdGlvbiB2YyhlLHQsYSl7cmV0dXJuIGE9ZWEoYSksYS50YWc9MyxhLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sYS5jYWxsYmFjaz1mdW5jdGlvbigpe3ZpKGUsdCl9LGF9ZnVuY3Rpb24gUXIoZSl7cmV0dXJuIGU9ZWEoZSksZS50YWc9MyxlfWZ1bmN0aW9uIGtyKGUsdCxhLG4pe3ZhciBsPWEudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7aWYodHlwZW9mIGw9PSJmdW5jdGlvbiIpe3ZhciBpPW4udmFsdWU7ZS5wYXlsb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIGwoaSl9LGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtYcih0LGEsbil9fXZhciB1PWEuc3RhdGVOb2RlO3UhPT1udWxsJiZ0eXBlb2YgdS5jb21wb25lbnREaWRDYXRjaD09ImZ1bmN0aW9uIiYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtYcih0LGEsbiksdHlwZW9mIGwhPSJmdW5jdGlvbiImJihyYT09PW51bGw/cmE9bmV3IFNldChbdGhpc10pOnJhLmFkZCh0aGlzKSk7dmFyIGM9bi5zdGFjazt0aGlzLmNvbXBvbmVudERpZENhdGNoKG4udmFsdWUse2NvbXBvbmVudFN0YWNrOmMhPT1udWxsP2M6IiJ9KX0pfWZ1bmN0aW9uIHdtKGUsdCxhLG4sbCl7aWYoYS5mbGFnc3w9MzI3NjgsbiE9PW51bGwmJnR5cGVvZiBuPT0ib2JqZWN0IiYmdHlwZW9mIG4udGhlbj09ImZ1bmN0aW9uIil7aWYodD1hLmFsdGVybmF0ZSx0IT09bnVsbCYmUW4odCxhLGwsITApLGE9Z3QuY3VycmVudCxhIT09bnVsbCl7c3dpdGNoKGEudGFnKXtjYXNlIDEzOnJldHVybiBEdD09PW51bGw/TGMoKTphLmFsdGVybmF0ZT09PW51bGwmJkFlPT09MCYmKEFlPTMpLGEuZmxhZ3MmPS0yNTcsYS5mbGFnc3w9NjU1MzYsYS5sYW5lcz1sLG49PT1adT9hLmZsYWdzfD0xNjM4NDoodD1hLnVwZGF0ZVF1ZXVlLHQ9PT1udWxsP2EudXBkYXRlUXVldWU9bmV3IFNldChbbl0pOnQuYWRkKG4pLFhjKGUsbixsKSksITE7Y2FzZSAyMjpyZXR1cm4gYS5mbGFnc3w9NjU1MzYsbj09PVp1P2EuZmxhZ3N8PTE2Mzg0Oih0PWEudXBkYXRlUXVldWUsdD09PW51bGw/KHQ9e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtuXSl9LGEudXBkYXRlUXVldWU9dCk6KGE9dC5yZXRyeVF1ZXVlLGE9PT1udWxsP3QucmV0cnlRdWV1ZT1uZXcgU2V0KFtuXSk6YS5hZGQobikpLFhjKGUsbixsKSksITF9dGhyb3cgRXJyb3Iocyg0MzUsYS50YWcpKX1yZXR1cm4gWGMoZSxuLGwpLExjKCksITF9aWYodWUpcmV0dXJuIHQ9Z3QuY3VycmVudCx0IT09bnVsbD8oKHQuZmxhZ3MmNjU1MzYpPT09MCYmKHQuZmxhZ3N8PTI1NiksdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1sLG4hPT1CdSYmKGU9RXJyb3Iocyg0MjIpLHtjYXVzZTpufSksWG4oX3QoZSxhKSkpKToobiE9PUJ1JiYodD1FcnJvcihzKDQyMykse2NhdXNlOm59KSxYbihfdCh0LGEpKSksZT1lLmN1cnJlbnQuYWx0ZXJuYXRlLGUuZmxhZ3N8PTY1NTM2LGwmPS1sLGUubGFuZXN8PWwsbj1fdChuLGEpLGw9dmMoZS5zdGF0ZU5vZGUsbixsKSxKdShlLGwpLEFlIT09NCYmKEFlPTIpKSwhMTt2YXIgaT1FcnJvcihzKDUyMCkse2NhdXNlOm59KTtpZihpPV90KGksYSksc2w9PT1udWxsP3NsPVtpXTpzbC5wdXNoKGkpLEFlIT09NCYmKEFlPTIpLHQ9PT1udWxsKXJldHVybiEwO249X3QobixhKSxhPXQ7ZG97c3dpdGNoKGEudGFnKXtjYXNlIDM6cmV0dXJuIGEuZmxhZ3N8PTY1NTM2LGU9bCYtbCxhLmxhbmVzfD1lLGU9dmMoYS5zdGF0ZU5vZGUsbixlKSxKdShhLGUpLCExO2Nhc2UgMTppZih0PWEudHlwZSxpPWEuc3RhdGVOb2RlLChhLmZsYWdzJjEyOCk9PT0wJiYodHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yPT0iZnVuY3Rpb24ifHxpIT09bnVsbCYmdHlwZW9mIGkuY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihyYT09PW51bGx8fCFyYS5oYXMoaSkpKSlyZXR1cm4gYS5mbGFnc3w9NjU1MzYsbCY9LWwsYS5sYW5lc3w9bCxsPVFyKGwpLGtyKGwsZSxhLG4pLEp1KGEsbCksITF9YT1hLnJldHVybn13aGlsZShhIT09bnVsbCk7cmV0dXJuITF9dmFyIFpyPUVycm9yKHMoNDYxKSksQmU9ITE7ZnVuY3Rpb24gR2UoZSx0LGEsbil7dC5jaGlsZD1lPT09bnVsbD9xcih0LG51bGwsYSxuKTpybih0LGUuY2hpbGQsYSxuKX1mdW5jdGlvbiBWcihlLHQsYSxuLGwpe2E9YS5yZW5kZXI7dmFyIGk9dC5yZWY7aWYoInJlZiJpbiBuKXt2YXIgdT17fTtmb3IodmFyIGMgaW4gbiljIT09InJlZiImJih1W2NdPW5bY10pfWVsc2UgdT1uO3JldHVybiBNYSh0KSxuPUl1KGUsdCxhLHUsaSxsKSxjPWVjKCksZSE9PW51bGwmJiFCZT8odGMoZSx0LGwpLFh0KGUsdCxsKSk6KHVlJiZjJiZqdSh0KSx0LmZsYWdzfD0xLEdlKGUsdCxuLGwpLHQuY2hpbGQpfWZ1bmN0aW9uIEtyKGUsdCxhLG4sbCl7aWYoZT09PW51bGwpe3ZhciBpPWEudHlwZTtyZXR1cm4gdHlwZW9mIGk9PSJmdW5jdGlvbiImJiFVdShpKSYmaS5kZWZhdWx0UHJvcHM9PT12b2lkIDAmJmEuY29tcGFyZT09PW51bGw/KHQudGFnPTE1LHQudHlwZT1pLEpyKGUsdCxpLG4sbCkpOihlPSRsKGEudHlwZSxudWxsLG4sdCx0Lm1vZGUsbCksZS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWUpfWlmKGk9ZS5jaGlsZCwhQWMoZSxsKSl7dmFyIHU9aS5tZW1vaXplZFByb3BzO2lmKGE9YS5jb21wYXJlLGE9YSE9PW51bGw/YTpCbixhKHUsbikmJmUucmVmPT09dC5yZWYpcmV0dXJuIFh0KGUsdCxsKX1yZXR1cm4gdC5mbGFnc3w9MSxlPXF0KGksbiksZS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWV9ZnVuY3Rpb24gSnIoZSx0LGEsbixsKXtpZihlIT09bnVsbCl7dmFyIGk9ZS5tZW1vaXplZFByb3BzO2lmKEJuKGksbikmJmUucmVmPT09dC5yZWYpaWYoQmU9ITEsdC5wZW5kaW5nUHJvcHM9bj1pLEFjKGUsbCkpKGUuZmxhZ3MmMTMxMDcyKSE9PTAmJihCZT0hMCk7ZWxzZSByZXR1cm4gdC5sYW5lcz1lLmxhbmVzLFh0KGUsdCxsKX1yZXR1cm4geWMoZSx0LGEsbixsKX1mdW5jdGlvbiAkcihlLHQsYSl7dmFyIG49dC5wZW5kaW5nUHJvcHMsbD1uLmNoaWxkcmVuLGk9ZSE9PW51bGw/ZS5tZW1vaXplZFN0YXRlOm51bGw7aWYobi5tb2RlPT09ImhpZGRlbiIpe2lmKCh0LmZsYWdzJjEyOCkhPT0wKXtpZihuPWkhPT1udWxsP2kuYmFzZUxhbmVzfGE6YSxlIT09bnVsbCl7Zm9yKGw9dC5jaGlsZD1lLmNoaWxkLGk9MDtsIT09bnVsbDspaT1pfGwubGFuZXN8bC5jaGlsZExhbmVzLGw9bC5zaWJsaW5nO3QuY2hpbGRMYW5lcz1pJn5ufWVsc2UgdC5jaGlsZExhbmVzPTAsdC5jaGlsZD1udWxsO3JldHVybiBXcihlLHQsbixhKX1pZigoYSY1MzY4NzA5MTIpIT09MCl0Lm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsfSxlIT09bnVsbCYmZWkodCxpIT09bnVsbD9pLmNhY2hlUG9vbDpudWxsKSxpIT09bnVsbD9Kcyh0LGkpOld1KCksanIodCk7ZWxzZSByZXR1cm4gdC5sYW5lcz10LmNoaWxkTGFuZXM9NTM2ODcwOTEyLFdyKGUsdCxpIT09bnVsbD9pLmJhc2VMYW5lc3xhOmEsYSl9ZWxzZSBpIT09bnVsbD8oZWkodCxpLmNhY2hlUG9vbCksSnModCxpKSxsYSgpLHQubWVtb2l6ZWRTdGF0ZT1udWxsKTooZSE9PW51bGwmJmVpKHQsbnVsbCksV3UoKSxsYSgpKTtyZXR1cm4gR2UoZSx0LGwsYSksdC5jaGlsZH1mdW5jdGlvbiBXcihlLHQsYSxuKXt2YXIgbD1rdSgpO3JldHVybiBsPWw9PT1udWxsP251bGw6e3BhcmVudDpVZS5fY3VycmVudFZhbHVlLHBvb2w6bH0sdC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6YSxjYWNoZVBvb2w6bH0sZSE9PW51bGwmJmVpKHQsbnVsbCksV3UoKSxqcih0KSxlIT09bnVsbCYmUW4oZSx0LG4sITApLG51bGx9ZnVuY3Rpb24geWkoZSx0KXt2YXIgYT10LnJlZjtpZihhPT09bnVsbCllIT09bnVsbCYmZS5yZWYhPT1udWxsJiYodC5mbGFnc3w9NDE5NDgxNik7ZWxzZXtpZih0eXBlb2YgYSE9ImZ1bmN0aW9uIiYmdHlwZW9mIGEhPSJvYmplY3QiKXRocm93IEVycm9yKHMoMjg0KSk7KGU9PT1udWxsfHxlLnJlZiE9PWEpJiYodC5mbGFnc3w9NDE5NDgxNil9fWZ1bmN0aW9uIHljKGUsdCxhLG4sbCl7cmV0dXJuIE1hKHQpLGE9SXUoZSx0LGEsbix2b2lkIDAsbCksbj1lYygpLGUhPT1udWxsJiYhQmU/KHRjKGUsdCxsKSxYdChlLHQsbCkpOih1ZSYmbiYmanUodCksdC5mbGFnc3w9MSxHZShlLHQsYSxsKSx0LmNoaWxkKX1mdW5jdGlvbiBGcihlLHQsYSxuLGwsaSl7cmV0dXJuIE1hKHQpLHQudXBkYXRlUXVldWU9bnVsbCxhPVdzKHQsbixhLGwpLCRzKGUpLG49ZWMoKSxlIT09bnVsbCYmIUJlPyh0YyhlLHQsaSksWHQoZSx0LGkpKToodWUmJm4mJmp1KHQpLHQuZmxhZ3N8PTEsR2UoZSx0LGEsaSksdC5jaGlsZCl9ZnVuY3Rpb24gUHIoZSx0LGEsbixsKXtpZihNYSh0KSx0LnN0YXRlTm9kZT09PW51bGwpe3ZhciBpPUlhLHU9YS5jb250ZXh0VHlwZTt0eXBlb2YgdT09Im9iamVjdCImJnUhPT1udWxsJiYoaT1WZSh1KSksaT1uZXcgYShuLGkpLHQubWVtb2l6ZWRTdGF0ZT1pLnN0YXRlIT09bnVsbCYmaS5zdGF0ZSE9PXZvaWQgMD9pLnN0YXRlOm51bGwsaS51cGRhdGVyPV9jLHQuc3RhdGVOb2RlPWksaS5fcmVhY3RJbnRlcm5hbHM9dCxpPXQuc3RhdGVOb2RlLGkucHJvcHM9bixpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSxpLnJlZnM9e30sVnUodCksdT1hLmNvbnRleHRUeXBlLGkuY29udGV4dD10eXBlb2YgdT09Im9iamVjdCImJnUhPT1udWxsP1ZlKHUpOklhLGkuc3RhdGU9dC5tZW1vaXplZFN0YXRlLHU9YS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsdHlwZW9mIHU9PSJmdW5jdGlvbiImJihtYyh0LGEsdSxuKSxpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGEuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPT0iZnVuY3Rpb24ifHx0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uInx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodT1pLnN0YXRlLHR5cGVvZiBpLmNvbXBvbmVudFdpbGxNb3VudD09ImZ1bmN0aW9uIiYmaS5jb21wb25lbnRXaWxsTW91bnQoKSx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSx1IT09aS5zdGF0ZSYmX2MuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpLGkuc3RhdGUsbnVsbCksV24odCxuLGksbCksJG4oKSxpLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksdHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJih0LmZsYWdzfD00MTk0MzA4KSxuPSEwfWVsc2UgaWYoZT09PW51bGwpe2k9dC5zdGF0ZU5vZGU7dmFyIGM9dC5tZW1vaXplZFByb3BzLHI9VWEoYSxjKTtpLnByb3BzPXI7dmFyIHA9aS5jb250ZXh0LEE9YS5jb250ZXh0VHlwZTt1PUlhLHR5cGVvZiBBPT0ib2JqZWN0IiYmQSE9PW51bGwmJih1PVZlKEEpKTt2YXIgUj1hLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztBPXR5cGVvZiBSPT0iZnVuY3Rpb24ifHx0eXBlb2YgaS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZT09ImZ1bmN0aW9uIixjPXQucGVuZGluZ1Byb3BzIT09YyxBfHx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KGN8fHAhPT11KSYmQnIodCxpLG4sdSksSXQ9ITE7dmFyIGc9dC5tZW1vaXplZFN0YXRlO2kuc3RhdGU9ZyxXbih0LG4saSxsKSwkbigpLHA9dC5tZW1vaXplZFN0YXRlLGN8fGchPT1wfHxJdD8odHlwZW9mIFI9PSJmdW5jdGlvbiImJihtYyh0LGEsUixuKSxwPXQubWVtb2l6ZWRTdGF0ZSksKHI9SXR8fEhyKHQsYSxyLG4sZyxwLHUpKT8oQXx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50IT0iZnVuY3Rpb24ifHwodHlwZW9mIGkuY29tcG9uZW50V2lsbE1vdW50PT0iZnVuY3Rpb24iJiZpLmNvbXBvbmVudFdpbGxNb3VudCgpLHR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQ9PSJmdW5jdGlvbiImJmkuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSx0eXBlb2YgaS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpKToodHlwZW9mIGkuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiImJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9bix0Lm1lbW9pemVkU3RhdGU9cCksaS5wcm9wcz1uLGkuc3RhdGU9cCxpLmNvbnRleHQ9dSxuPXIpOih0eXBlb2YgaS5jb21wb25lbnREaWRNb3VudD09ImZ1bmN0aW9uIiYmKHQuZmxhZ3N8PTQxOTQzMDgpLG49ITEpfWVsc2V7aT10LnN0YXRlTm9kZSxLdShlLHQpLHU9dC5tZW1vaXplZFByb3BzLEE9VWEoYSx1KSxpLnByb3BzPUEsUj10LnBlbmRpbmdQcm9wcyxnPWkuY29udGV4dCxwPWEuY29udGV4dFR5cGUscj1JYSx0eXBlb2YgcD09Im9iamVjdCImJnAhPT1udWxsJiYocj1WZShwKSksYz1hLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywocD10eXBlb2YgYz09ImZ1bmN0aW9uInx8dHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiIpfHx0eXBlb2YgaS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uIiYmdHlwZW9mIGkuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9ImZ1bmN0aW9uInx8KHUhPT1SfHxnIT09cikmJkJyKHQsaSxuLHIpLEl0PSExLGc9dC5tZW1vaXplZFN0YXRlLGkuc3RhdGU9ZyxXbih0LG4saSxsKSwkbigpO3ZhciBiPXQubWVtb2l6ZWRTdGF0ZTt1IT09Unx8ZyE9PWJ8fEl0fHxlIT09bnVsbCYmZS5kZXBlbmRlbmNpZXMhPT1udWxsJiZQbChlLmRlcGVuZGVuY2llcyk/KHR5cGVvZiBjPT0iZnVuY3Rpb24iJiYobWModCxhLGMsbiksYj10Lm1lbW9pemVkU3RhdGUpLChBPUl0fHxIcih0LGEsQSxuLGcsYixyKXx8ZSE9PW51bGwmJmUuZGVwZW5kZW5jaWVzIT09bnVsbCYmUGwoZS5kZXBlbmRlbmNpZXMpKT8ocHx8dHlwZW9mIGkuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiImJnR5cGVvZiBpLmNvbXBvbmVudFdpbGxVcGRhdGUhPSJmdW5jdGlvbiJ8fCh0eXBlb2YgaS5jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZpLmNvbXBvbmVudFdpbGxVcGRhdGUobixiLHIpLHR5cGVvZiBpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlPT0iZnVuY3Rpb24iJiZpLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKG4sYixyKSksdHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlPT0iZnVuY3Rpb24iJiYodC5mbGFnc3w9NCksdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGU9PSJmdW5jdGlvbiImJih0LmZsYWdzfD0xMDI0KSk6KHR5cGVvZiBpLmNvbXBvbmVudERpZFVwZGF0ZSE9ImZ1bmN0aW9uInx8dT09PWUubWVtb2l6ZWRQcm9wcyYmZz09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLHR5cGVvZiBpLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIT0iZnVuY3Rpb24ifHx1PT09ZS5tZW1vaXplZFByb3BzJiZnPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksdC5tZW1vaXplZFByb3BzPW4sdC5tZW1vaXplZFN0YXRlPWIpLGkucHJvcHM9bixpLnN0YXRlPWIsaS5jb250ZXh0PXIsbj1BKToodHlwZW9mIGkuY29tcG9uZW50RGlkVXBkYXRlIT0iZnVuY3Rpb24ifHx1PT09ZS5tZW1vaXplZFByb3BzJiZnPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksdHlwZW9mIGkuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUhPSJmdW5jdGlvbiJ8fHU9PT1lLm1lbW9pemVkUHJvcHMmJmc9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxuPSExKX1yZXR1cm4gaT1uLHlpKGUsdCksbj0odC5mbGFncyYxMjgpIT09MCxpfHxuPyhpPXQuc3RhdGVOb2RlLGE9biYmdHlwZW9mIGEuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIT0iZnVuY3Rpb24iP251bGw6aS5yZW5kZXIoKSx0LmZsYWdzfD0xLGUhPT1udWxsJiZuPyh0LmNoaWxkPXJuKHQsZS5jaGlsZCxudWxsLGwpLHQuY2hpbGQ9cm4odCxudWxsLGEsbCkpOkdlKGUsdCxhLGwpLHQubWVtb2l6ZWRTdGF0ZT1pLnN0YXRlLGU9dC5jaGlsZCk6ZT1YdChlLHQsbCksZX1mdW5jdGlvbiBJcihlLHQsYSxuKXtyZXR1cm4gR24oKSx0LmZsYWdzfD0yNTYsR2UoZSx0LGEsbiksdC5jaGlsZH12YXIgcGM9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowLGh5ZHJhdGlvbkVycm9yczpudWxsfTtmdW5jdGlvbiBnYyhlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOkxzKCl9fWZ1bmN0aW9uIGJjKGUsdCxhKXtyZXR1cm4gZT1lIT09bnVsbD9lLmNoaWxkTGFuZXMmfmE6MCx0JiYoZXw9YnQpLGV9ZnVuY3Rpb24gZWYoZSx0LGEpe3ZhciBuPXQucGVuZGluZ1Byb3BzLGw9ITEsaT0odC5mbGFncyYxMjgpIT09MCx1O2lmKCh1PWkpfHwodT1lIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlPT09bnVsbD8hMTooQ2UuY3VycmVudCYyKSE9PTApLHUmJihsPSEwLHQuZmxhZ3MmPS0xMjkpLHU9KHQuZmxhZ3MmMzIpIT09MCx0LmZsYWdzJj0tMzMsZT09PW51bGwpe2lmKHVlKXtpZihsP25hKHQpOmxhKCksdWUpe3ZhciBjPUVlLHI7aWYocj1jKXtlOntmb3Iocj1jLGM9UnQ7ci5ub2RlVHlwZSE9PTg7KXtpZighYyl7Yz1udWxsO2JyZWFrIGV9aWYocj14dChyLm5leHRTaWJsaW5nKSxyPT09bnVsbCl7Yz1udWxsO2JyZWFrIGV9fWM9cn1jIT09bnVsbD8odC5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmMsdHJlZUNvbnRleHQ6eGEhPT1udWxsP3tpZDpqdCxvdmVyZmxvdzpIdH06bnVsbCxyZXRyeUxhbmU6NTM2ODcwOTEyLGh5ZHJhdGlvbkVycm9yczpudWxsfSxyPWN0KDE4LG51bGwsbnVsbCwwKSxyLnN0YXRlTm9kZT1jLHIucmV0dXJuPXQsdC5jaGlsZD1yLEplPXQsRWU9bnVsbCxyPSEwKTpyPSExfXJ8fERhKHQpfWlmKGM9dC5tZW1vaXplZFN0YXRlLGMhPT1udWxsJiYoYz1jLmRlaHlkcmF0ZWQsYyE9PW51bGwpKXJldHVybiBubyhjKT90LmxhbmVzPTMyOnQubGFuZXM9NTM2ODcwOTEyLG51bGw7R3QodCl9cmV0dXJuIGM9bi5jaGlsZHJlbixuPW4uZmFsbGJhY2ssbD8obGEoKSxsPXQubW9kZSxjPXBpKHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmN9LGwpLG49QWEobixsLGEsbnVsbCksYy5yZXR1cm49dCxuLnJldHVybj10LGMuc2libGluZz1uLHQuY2hpbGQ9YyxsPXQuY2hpbGQsbC5tZW1vaXplZFN0YXRlPWdjKGEpLGwuY2hpbGRMYW5lcz1iYyhlLHUsYSksdC5tZW1vaXplZFN0YXRlPXBjLG4pOihuYSh0KSxTYyh0LGMpKX1pZihyPWUubWVtb2l6ZWRTdGF0ZSxyIT09bnVsbCYmKGM9ci5kZWh5ZHJhdGVkLGMhPT1udWxsKSl7aWYoaSl0LmZsYWdzJjI1Nj8obmEodCksdC5mbGFncyY9LTI1Nyx0PVRjKGUsdCxhKSk6dC5tZW1vaXplZFN0YXRlIT09bnVsbD8obGEoKSx0LmNoaWxkPWUuY2hpbGQsdC5mbGFnc3w9MTI4LHQ9bnVsbCk6KGxhKCksbD1uLmZhbGxiYWNrLGM9dC5tb2RlLG49cGkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOm4uY2hpbGRyZW59LGMpLGw9QWEobCxjLGEsbnVsbCksbC5mbGFnc3w9MixuLnJldHVybj10LGwucmV0dXJuPXQsbi5zaWJsaW5nPWwsdC5jaGlsZD1uLHJuKHQsZS5jaGlsZCxudWxsLGEpLG49dC5jaGlsZCxuLm1lbW9pemVkU3RhdGU9Z2MoYSksbi5jaGlsZExhbmVzPWJjKGUsdSxhKSx0Lm1lbW9pemVkU3RhdGU9cGMsdD1sKTtlbHNlIGlmKG5hKHQpLG5vKGMpKXtpZih1PWMubmV4dFNpYmxpbmcmJmMubmV4dFNpYmxpbmcuZGF0YXNldCx1KXZhciBwPXUuZGdzdDt1PXAsbj1FcnJvcihzKDQxOSkpLG4uc3RhY2s9IiIsbi5kaWdlc3Q9dSxYbih7dmFsdWU6bixzb3VyY2U6bnVsbCxzdGFjazpudWxsfSksdD1UYyhlLHQsYSl9ZWxzZSBpZihCZXx8UW4oZSx0LGEsITEpLHU9KGEmZS5jaGlsZExhbmVzKSE9PTAsQmV8fHUpe2lmKHU9eWUsdSE9PW51bGwmJihuPWEmLWEsbj0obiY0MikhPT0wPzE6bHUobiksbj0obiYodS5zdXNwZW5kZWRMYW5lc3xhKSkhPT0wPzA6bixuIT09MCYmbiE9PXIucmV0cnlMYW5lKSl0aHJvdyByLnJldHJ5TGFuZT1uLFBhKGUsbiksZHQodSxlLG4pLFpyO2MuZGF0YT09PSIkPyJ8fExjKCksdD1UYyhlLHQsYSl9ZWxzZSBjLmRhdGE9PT0iJD8iPyh0LmZsYWdzfD0xOTIsdC5jaGlsZD1lLmNoaWxkLHQ9bnVsbCk6KGU9ci50cmVlQ29udGV4dCxFZT14dChjLm5leHRTaWJsaW5nKSxKZT10LHVlPSEwLFJhPW51bGwsUnQ9ITEsZSE9PW51bGwmJih5dFtwdCsrXT1qdCx5dFtwdCsrXT1IdCx5dFtwdCsrXT14YSxqdD1lLmlkLEh0PWUub3ZlcmZsb3cseGE9dCksdD1TYyh0LG4uY2hpbGRyZW4pLHQuZmxhZ3N8PTQwOTYpO3JldHVybiB0fXJldHVybiBsPyhsYSgpLGw9bi5mYWxsYmFjayxjPXQubW9kZSxyPWUuY2hpbGQscD1yLnNpYmxpbmcsbj1xdChyLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOm4uY2hpbGRyZW59KSxuLnN1YnRyZWVGbGFncz1yLnN1YnRyZWVGbGFncyY2NTAxMTcxMixwIT09bnVsbD9sPXF0KHAsbCk6KGw9QWEobCxjLGEsbnVsbCksbC5mbGFnc3w9MiksbC5yZXR1cm49dCxuLnJldHVybj10LG4uc2libGluZz1sLHQuY2hpbGQ9bixuPWwsbD10LmNoaWxkLGM9ZS5jaGlsZC5tZW1vaXplZFN0YXRlLGM9PT1udWxsP2M9Z2MoYSk6KHI9Yy5jYWNoZVBvb2wsciE9PW51bGw/KHA9VWUuX2N1cnJlbnRWYWx1ZSxyPXIucGFyZW50IT09cD97cGFyZW50OnAscG9vbDpwfTpyKTpyPUxzKCksYz17YmFzZUxhbmVzOmMuYmFzZUxhbmVzfGEsY2FjaGVQb29sOnJ9KSxsLm1lbW9pemVkU3RhdGU9YyxsLmNoaWxkTGFuZXM9YmMoZSx1LGEpLHQubWVtb2l6ZWRTdGF0ZT1wYyxuKToobmEodCksYT1lLmNoaWxkLGU9YS5zaWJsaW5nLGE9cXQoYSx7bW9kZToidmlzaWJsZSIsY2hpbGRyZW46bi5jaGlsZHJlbn0pLGEucmV0dXJuPXQsYS5zaWJsaW5nPW51bGwsZSE9PW51bGwmJih1PXQuZGVsZXRpb25zLHU9PT1udWxsPyh0LmRlbGV0aW9ucz1bZV0sdC5mbGFnc3w9MTYpOnUucHVzaChlKSksdC5jaGlsZD1hLHQubWVtb2l6ZWRTdGF0ZT1udWxsLGEpfWZ1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHQ9cGkoe21vZGU6InZpc2libGUiLGNoaWxkcmVuOnR9LGUubW9kZSksdC5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gcGkoZSx0KXtyZXR1cm4gZT1jdCgyMixlLG51bGwsdCksZS5sYW5lcz0wLGUuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9LGV9ZnVuY3Rpb24gVGMoZSx0LGEpe3JldHVybiBybih0LGUuY2hpbGQsbnVsbCxhKSxlPVNjKHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLGUuZmxhZ3N8PTIsdC5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiB0ZihlLHQsYSl7ZS5sYW5lc3w9dDt2YXIgbj1lLmFsdGVybmF0ZTtuIT09bnVsbCYmKG4ubGFuZXN8PXQpLEx1KGUucmV0dXJuLHQsYSl9ZnVuY3Rpb24gRWMoZSx0LGEsbixsKXt2YXIgaT1lLm1lbW9pemVkU3RhdGU7aT09PW51bGw/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6bix0YWlsOmEsdGFpbE1vZGU6bH06KGkuaXNCYWNrd2FyZHM9dCxpLnJlbmRlcmluZz1udWxsLGkucmVuZGVyaW5nU3RhcnRUaW1lPTAsaS5sYXN0PW4saS50YWlsPWEsaS50YWlsTW9kZT1sKX1mdW5jdGlvbiBhZihlLHQsYSl7dmFyIG49dC5wZW5kaW5nUHJvcHMsbD1uLnJldmVhbE9yZGVyLGk9bi50YWlsO2lmKEdlKGUsdCxuLmNoaWxkcmVuLGEpLG49Q2UuY3VycmVudCwobiYyKSE9PTApbj1uJjF8Mix0LmZsYWdzfD0xMjg7ZWxzZXtpZihlIT09bnVsbCYmKGUuZmxhZ3MmMTI4KSE9PTApZTpmb3IoZT10LmNoaWxkO2UhPT1udWxsOyl7aWYoZS50YWc9PT0xMyllLm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0ZihlLGEsdCk7ZWxzZSBpZihlLnRhZz09PTE5KXRmKGUsYSx0KTtlbHNlIGlmKGUuY2hpbGQhPT1udWxsKXtlLmNoaWxkLnJldHVybj1lLGU9ZS5jaGlsZDtjb250aW51ZX1pZihlPT09dClicmVhayBlO2Zvcig7ZS5zaWJsaW5nPT09bnVsbDspe2lmKGUucmV0dXJuPT09bnVsbHx8ZS5yZXR1cm49PT10KWJyZWFrIGU7ZT1lLnJldHVybn1lLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nfW4mPTF9c3dpdGNoKFUoQ2UsbiksbCl7Y2FzZSJmb3J3YXJkcyI6Zm9yKGE9dC5jaGlsZCxsPW51bGw7YSE9PW51bGw7KWU9YS5hbHRlcm5hdGUsZSE9PW51bGwmJm1pKGUpPT09bnVsbCYmKGw9YSksYT1hLnNpYmxpbmc7YT1sLGE9PT1udWxsPyhsPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobD1hLnNpYmxpbmcsYS5zaWJsaW5nPW51bGwpLEVjKHQsITEsbCxhLGkpO2JyZWFrO2Nhc2UiYmFja3dhcmRzIjpmb3IoYT1udWxsLGw9dC5jaGlsZCx0LmNoaWxkPW51bGw7bCE9PW51bGw7KXtpZihlPWwuYWx0ZXJuYXRlLGUhPT1udWxsJiZtaShlKT09PW51bGwpe3QuY2hpbGQ9bDticmVha31lPWwuc2libGluZyxsLnNpYmxpbmc9YSxhPWwsbD1lfUVjKHQsITAsYSxudWxsLGkpO2JyZWFrO2Nhc2UidG9nZXRoZXIiOkVjKHQsITEsbnVsbCxudWxsLHZvaWQgMCk7YnJlYWs7ZGVmYXVsdDp0Lm1lbW9pemVkU3RhdGU9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBYdChlLHQsYSl7aWYoZSE9PW51bGwmJih0LmRlcGVuZGVuY2llcz1lLmRlcGVuZGVuY2llcyksc2F8PXQubGFuZXMsKGEmdC5jaGlsZExhbmVzKT09PTApaWYoZSE9PW51bGwpe2lmKFFuKGUsdCxhLCExKSwoYSZ0LmNoaWxkTGFuZXMpPT09MClyZXR1cm4gbnVsbH1lbHNlIHJldHVybiBudWxsO2lmKGUhPT1udWxsJiZ0LmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcihzKDE1MykpO2lmKHQuY2hpbGQhPT1udWxsKXtmb3IoZT10LmNoaWxkLGE9cXQoZSxlLnBlbmRpbmdQcm9wcyksdC5jaGlsZD1hLGEucmV0dXJuPXQ7ZS5zaWJsaW5nIT09bnVsbDspZT1lLnNpYmxpbmcsYT1hLnNpYmxpbmc9cXQoZSxlLnBlbmRpbmdQcm9wcyksYS5yZXR1cm49dDthLnNpYmxpbmc9bnVsbH1yZXR1cm4gdC5jaGlsZH1mdW5jdGlvbiBBYyhlLHQpe3JldHVybihlLmxhbmVzJnQpIT09MD8hMDooZT1lLmRlcGVuZGVuY2llcywhIShlIT09bnVsbCYmUGwoZSkpKX1mdW5jdGlvbiBVbShlLHQsYSl7c3dpdGNoKHQudGFnKXtjYXNlIDM6cGUodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxQdCh0LFVlLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksR24oKTticmVhaztjYXNlIDI3OmNhc2UgNTpJaSh0KTticmVhaztjYXNlIDQ6cGUodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTticmVhaztjYXNlIDEwOlB0KHQsdC50eXBlLHQubWVtb2l6ZWRQcm9wcy52YWx1ZSk7YnJlYWs7Y2FzZSAxMzp2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobiE9PW51bGwpcmV0dXJuIG4uZGVoeWRyYXRlZCE9PW51bGw/KG5hKHQpLHQuZmxhZ3N8PTEyOCxudWxsKTooYSZ0LmNoaWxkLmNoaWxkTGFuZXMpIT09MD9lZihlLHQsYSk6KG5hKHQpLGU9WHQoZSx0LGEpLGUhPT1udWxsP2Uuc2libGluZzpudWxsKTtuYSh0KTticmVhaztjYXNlIDE5OnZhciBsPShlLmZsYWdzJjEyOCkhPT0wO2lmKG49KGEmdC5jaGlsZExhbmVzKSE9PTAsbnx8KFFuKGUsdCxhLCExKSxuPShhJnQuY2hpbGRMYW5lcykhPT0wKSxsKXtpZihuKXJldHVybiBhZihlLHQsYSk7dC5mbGFnc3w9MTI4fWlmKGw9dC5tZW1vaXplZFN0YXRlLGwhPT1udWxsJiYobC5yZW5kZXJpbmc9bnVsbCxsLnRhaWw9bnVsbCxsLmxhc3RFZmZlY3Q9bnVsbCksVShDZSxDZS5jdXJyZW50KSxuKWJyZWFrO3JldHVybiBudWxsO2Nhc2UgMjI6Y2FzZSAyMzpyZXR1cm4gdC5sYW5lcz0wLCRyKGUsdCxhKTtjYXNlIDI0OlB0KHQsVWUsZS5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gWHQoZSx0LGEpfWZ1bmN0aW9uIG5mKGUsdCxhKXtpZihlIT09bnVsbClpZihlLm1lbW9pemVkUHJvcHMhPT10LnBlbmRpbmdQcm9wcylCZT0hMDtlbHNle2lmKCFBYyhlLGEpJiYodC5mbGFncyYxMjgpPT09MClyZXR1cm4gQmU9ITEsVW0oZSx0LGEpO0JlPShlLmZsYWdzJjEzMTA3MikhPT0wfWVsc2UgQmU9ITEsdWUmJih0LmZsYWdzJjEwNDg1NzYpIT09MCYmVXModCxGbCx0LmluZGV4KTtzd2l0Y2godC5sYW5lcz0wLHQudGFnKXtjYXNlIDE2OmU6e2U9dC5wZW5kaW5nUHJvcHM7dmFyIG49dC5lbGVtZW50VHlwZSxsPW4uX2luaXQ7aWYobj1sKG4uX3BheWxvYWQpLHQudHlwZT1uLHR5cGVvZiBuPT0iZnVuY3Rpb24iKVV1KG4pPyhlPVVhKG4sZSksdC50YWc9MSx0PVByKG51bGwsdCxuLGUsYSkpOih0LnRhZz0wLHQ9eWMobnVsbCx0LG4sZSxhKSk7ZWxzZXtpZihuIT1udWxsKXtpZihsPW4uJCR0eXBlb2YsbD09PXZlKXt0LnRhZz0xMSx0PVZyKG51bGwsdCxuLGUsYSk7YnJlYWsgZX1lbHNlIGlmKGw9PT1NZSl7dC50YWc9MTQsdD1LcihudWxsLHQsbixlLGEpO2JyZWFrIGV9fXRocm93IHQ9JGUobil8fG4sRXJyb3IocygzMDYsdCwiIikpfX1yZXR1cm4gdDtjYXNlIDA6cmV0dXJuIHljKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSAxOnJldHVybiBuPXQudHlwZSxsPVVhKG4sdC5wZW5kaW5nUHJvcHMpLFByKGUsdCxuLGwsYSk7Y2FzZSAzOmU6e2lmKHBlKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksZT09PW51bGwpdGhyb3cgRXJyb3IocygzODcpKTtuPXQucGVuZGluZ1Byb3BzO3ZhciBpPXQubWVtb2l6ZWRTdGF0ZTtsPWkuZWxlbWVudCxLdShlLHQpLFduKHQsbixudWxsLGEpO3ZhciB1PXQubWVtb2l6ZWRTdGF0ZTtpZihuPXUuY2FjaGUsUHQodCxVZSxuKSxuIT09aS5jYWNoZSYmR3UodCxbVWVdLGEsITApLCRuKCksbj11LmVsZW1lbnQsaS5pc0RlaHlkcmF0ZWQpaWYoaT17ZWxlbWVudDpuLGlzRGVoeWRyYXRlZDohMSxjYWNoZTp1LmNhY2hlfSx0LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1pLHQubWVtb2l6ZWRTdGF0ZT1pLHQuZmxhZ3MmMjU2KXt0PUlyKGUsdCxuLGEpO2JyZWFrIGV9ZWxzZSBpZihuIT09bCl7bD1fdChFcnJvcihzKDQyNCkpLHQpLFhuKGwpLHQ9SXIoZSx0LG4sYSk7YnJlYWsgZX1lbHNlIGZvcihlPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sZS5ub2RlVHlwZT09PTk/ZT1lLmJvZHk6ZT1lLm5vZGVOYW1lPT09IkhUTUwiP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsRWU9eHQoZS5maXJzdENoaWxkKSxKZT10LHVlPSEwLFJhPW51bGwsUnQ9ITAsYT1xcih0LG51bGwsbixhKSx0LmNoaWxkPWE7YTspYS5mbGFncz1hLmZsYWdzJi0zfDQwOTYsYT1hLnNpYmxpbmc7ZWxzZXtpZihHbigpLG49PT1sKXt0PVh0KGUsdCxhKTticmVhayBlfUdlKGUsdCxuLGEpfXQ9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDI2OnJldHVybiB5aShlLHQpLGU9PT1udWxsPyhhPW9kKHQudHlwZSxudWxsLHQucGVuZGluZ1Byb3BzLG51bGwpKT90Lm1lbW9pemVkU3RhdGU9YTp1ZXx8KGE9dC50eXBlLGU9dC5wZW5kaW5nUHJvcHMsbj13aShaLmN1cnJlbnQpLmNyZWF0ZUVsZW1lbnQoYSksbltaZV09dCxuW1dlXT1lLFFlKG4sYSxlKSxIZShuKSx0LnN0YXRlTm9kZT1uKTp0Lm1lbW9pemVkU3RhdGU9b2QodC50eXBlLGUubWVtb2l6ZWRQcm9wcyx0LnBlbmRpbmdQcm9wcyxlLm1lbW9pemVkU3RhdGUpLG51bGw7Y2FzZSAyNzpyZXR1cm4gSWkodCksZT09PW51bGwmJnVlJiYobj10LnN0YXRlTm9kZT1pZCh0LnR5cGUsdC5wZW5kaW5nUHJvcHMsWi5jdXJyZW50KSxKZT10LFJ0PSEwLGw9RWUsaGEodC50eXBlKT8obG89bCxFZT14dChuLmZpcnN0Q2hpbGQpKTpFZT1sKSxHZShlLHQsdC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sYSkseWkoZSx0KSxlPT09bnVsbCYmKHQuZmxhZ3N8PTQxOTQzMDQpLHQuY2hpbGQ7Y2FzZSA1OnJldHVybiBlPT09bnVsbCYmdWUmJigobD1uPUVlKSYmKG49Y18obix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsUnQpLG4hPT1udWxsPyh0LnN0YXRlTm9kZT1uLEplPXQsRWU9eHQobi5maXJzdENoaWxkKSxSdD0hMSxsPSEwKTpsPSExKSxsfHxEYSh0KSksSWkodCksbD10LnR5cGUsaT10LnBlbmRpbmdQcm9wcyx1PWUhPT1udWxsP2UubWVtb2l6ZWRQcm9wczpudWxsLG49aS5jaGlsZHJlbixlbyhsLGkpP249bnVsbDp1IT09bnVsbCYmZW8obCx1KSYmKHQuZmxhZ3N8PTMyKSx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiYobD1JdShlLHQseG0sbnVsbCxudWxsLGEpLHBsLl9jdXJyZW50VmFsdWU9bCkseWkoZSx0KSxHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgNjpyZXR1cm4gZT09PW51bGwmJnVlJiYoKGU9YT1FZSkmJihhPW9fKGEsdC5wZW5kaW5nUHJvcHMsUnQpLGEhPT1udWxsPyh0LnN0YXRlTm9kZT1hLEplPXQsRWU9bnVsbCxlPSEwKTplPSExKSxlfHxEYSh0KSksbnVsbDtjYXNlIDEzOnJldHVybiBlZihlLHQsYSk7Y2FzZSA0OnJldHVybiBwZSh0LHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLG49dC5wZW5kaW5nUHJvcHMsZT09PW51bGw/dC5jaGlsZD1ybih0LG51bGwsbixhKTpHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgMTE6cmV0dXJuIFZyKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSA3OnJldHVybiBHZShlLHQsdC5wZW5kaW5nUHJvcHMsYSksdC5jaGlsZDtjYXNlIDg6cmV0dXJuIEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMTI6cmV0dXJuIEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMTA6cmV0dXJuIG49dC5wZW5kaW5nUHJvcHMsUHQodCx0LnR5cGUsbi52YWx1ZSksR2UoZSx0LG4uY2hpbGRyZW4sYSksdC5jaGlsZDtjYXNlIDk6cmV0dXJuIGw9dC50eXBlLl9jb250ZXh0LG49dC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sTWEodCksbD1WZShsKSxuPW4obCksdC5mbGFnc3w9MSxHZShlLHQsbixhKSx0LmNoaWxkO2Nhc2UgMTQ6cmV0dXJuIEtyKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsYSk7Y2FzZSAxNTpyZXR1cm4gSnIoZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxhKTtjYXNlIDE5OnJldHVybiBhZihlLHQsYSk7Y2FzZSAzMTpyZXR1cm4gbj10LnBlbmRpbmdQcm9wcyxhPXQubW9kZSxuPXttb2RlOm4ubW9kZSxjaGlsZHJlbjpuLmNoaWxkcmVufSxlPT09bnVsbD8oYT1waShuLGEpLGEucmVmPXQucmVmLHQuY2hpbGQ9YSxhLnJldHVybj10LHQ9YSk6KGE9cXQoZS5jaGlsZCxuKSxhLnJlZj10LnJlZix0LmNoaWxkPWEsYS5yZXR1cm49dCx0PWEpLHQ7Y2FzZSAyMjpyZXR1cm4gJHIoZSx0LGEpO2Nhc2UgMjQ6cmV0dXJuIE1hKHQpLG49VmUoVWUpLGU9PT1udWxsPyhsPWt1KCksbD09PW51bGwmJihsPXllLGk9WHUoKSxsLnBvb2xlZENhY2hlPWksaS5yZWZDb3VudCsrLGkhPT1udWxsJiYobC5wb29sZWRDYWNoZUxhbmVzfD1hKSxsPWkpLHQubWVtb2l6ZWRTdGF0ZT17cGFyZW50Om4sY2FjaGU6bH0sVnUodCksUHQodCxVZSxsKSk6KChlLmxhbmVzJmEpIT09MCYmKEt1KGUsdCksV24odCxudWxsLG51bGwsYSksJG4oKSksbD1lLm1lbW9pemVkU3RhdGUsaT10Lm1lbW9pemVkU3RhdGUsbC5wYXJlbnQhPT1uPyhsPXtwYXJlbnQ6bixjYWNoZTpufSx0Lm1lbW9pemVkU3RhdGU9bCx0LmxhbmVzPT09MCYmKHQubWVtb2l6ZWRTdGF0ZT10LnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1sKSxQdCh0LFVlLG4pKToobj1pLmNhY2hlLFB0KHQsVWUsbiksbiE9PWwuY2FjaGUmJkd1KHQsW1VlXSxhLCEwKSkpLEdlKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixhKSx0LmNoaWxkO2Nhc2UgMjk6dGhyb3cgdC5wZW5kaW5nUHJvcHN9dGhyb3cgRXJyb3IocygxNTYsdC50YWcpKX1mdW5jdGlvbiBRdChlKXtlLmZsYWdzfD00fWZ1bmN0aW9uIGxmKGUsdCl7aWYodC50eXBlIT09InN0eWxlc2hlZXQifHwodC5zdGF0ZS5sb2FkaW5nJjQpIT09MCllLmZsYWdzJj0tMTY3NzcyMTc7ZWxzZSBpZihlLmZsYWdzfD0xNjc3NzIxNiwhaGQodCkpe2lmKHQ9Z3QuY3VycmVudCx0IT09bnVsbCYmKCh0ZSY0MTk0MDQ4KT09PXRlP0R0IT09bnVsbDoodGUmNjI5MTQ1NjApIT09dGUmJih0ZSY1MzY4NzA5MTIpPT09MHx8dCE9PUR0KSl0aHJvdyBLbj1adSxHcztlLmZsYWdzfD04MTkyfX1mdW5jdGlvbiBnaShlLHQpe3QhPT1udWxsJiYoZS5mbGFnc3w9NCksZS5mbGFncyYxNjM4NCYmKHQ9ZS50YWchPT0yMj9qbygpOjUzNjg3MDkxMixlLmxhbmVzfD10LG1ufD10KX1mdW5jdGlvbiBubChlLHQpe2lmKCF1ZSlzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJoaWRkZW4iOnQ9ZS50YWlsO2Zvcih2YXIgYT1udWxsO3QhPT1udWxsOyl0LmFsdGVybmF0ZSE9PW51bGwmJihhPXQpLHQ9dC5zaWJsaW5nO2E9PT1udWxsP2UudGFpbD1udWxsOmEuc2libGluZz1udWxsO2JyZWFrO2Nhc2UiY29sbGFwc2VkIjphPWUudGFpbDtmb3IodmFyIG49bnVsbDthIT09bnVsbDspYS5hbHRlcm5hdGUhPT1udWxsJiYobj1hKSxhPWEuc2libGluZztuPT09bnVsbD90fHxlLnRhaWw9PT1udWxsP2UudGFpbD1udWxsOmUudGFpbC5zaWJsaW5nPW51bGw6bi5zaWJsaW5nPW51bGx9fWZ1bmN0aW9uIGJlKGUpe3ZhciB0PWUuYWx0ZXJuYXRlIT09bnVsbCYmZS5hbHRlcm5hdGUuY2hpbGQ9PT1lLmNoaWxkLGE9MCxuPTA7aWYodClmb3IodmFyIGw9ZS5jaGlsZDtsIT09bnVsbDspYXw9bC5sYW5lc3xsLmNoaWxkTGFuZXMsbnw9bC5zdWJ0cmVlRmxhZ3MmNjUwMTE3MTIsbnw9bC5mbGFncyY2NTAxMTcxMixsLnJldHVybj1lLGw9bC5zaWJsaW5nO2Vsc2UgZm9yKGw9ZS5jaGlsZDtsIT09bnVsbDspYXw9bC5sYW5lc3xsLmNoaWxkTGFuZXMsbnw9bC5zdWJ0cmVlRmxhZ3Msbnw9bC5mbGFncyxsLnJldHVybj1lLGw9bC5zaWJsaW5nO3JldHVybiBlLnN1YnRyZWVGbGFnc3w9bixlLmNoaWxkTGFuZXM9YSx0fWZ1bmN0aW9uIENtKGUsdCxhKXt2YXIgbj10LnBlbmRpbmdQcm9wcztzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMzE6Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpyZXR1cm4gYmUodCksbnVsbDtjYXNlIDE6cmV0dXJuIGJlKHQpLG51bGw7Y2FzZSAzOnJldHVybiBhPXQuc3RhdGVOb2RlLG49bnVsbCxlIT09bnVsbCYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCksWXQoVWUpLEp0KCksYS5wZW5kaW5nQ29udGV4dCYmKGEuY29udGV4dD1hLnBlbmRpbmdDb250ZXh0LGEucGVuZGluZ0NvbnRleHQ9bnVsbCksKGU9PT1udWxsfHxlLmNoaWxkPT09bnVsbCkmJihMbih0KT9RdCh0KTplPT09bnVsbHx8ZS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmKHQuZmxhZ3MmMjU2KT09PTB8fCh0LmZsYWdzfD0xMDI0LGpzKCkpKSxiZSh0KSxudWxsO2Nhc2UgMjY6cmV0dXJuIGE9dC5tZW1vaXplZFN0YXRlLGU9PT1udWxsPyhRdCh0KSxhIT09bnVsbD8oYmUodCksbGYodCxhKSk6KGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNykpOmE/YSE9PWUubWVtb2l6ZWRTdGF0ZT8oUXQodCksYmUodCksbGYodCxhKSk6KGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNyk6KGUubWVtb2l6ZWRQcm9wcyE9PW4mJlF0KHQpLGJlKHQpLHQuZmxhZ3MmPS0xNjc3NzIxNyksbnVsbDtjYXNlIDI3Ok1sKHQpLGE9Wi5jdXJyZW50O3ZhciBsPXQudHlwZTtpZihlIT09bnVsbCYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZighbil7aWYodC5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIGJlKHQpLG51bGx9ZT1MLmN1cnJlbnQsTG4odCk/Q3ModCk6KGU9aWQobCxuLGEpLHQuc3RhdGVOb2RlPWUsUXQodCkpfXJldHVybiBiZSh0KSxudWxsO2Nhc2UgNTppZihNbCh0KSxhPXQudHlwZSxlIT09bnVsbCYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZighbil7aWYodC5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTY2KSk7cmV0dXJuIGJlKHQpLG51bGx9aWYoZT1MLmN1cnJlbnQsTG4odCkpQ3ModCk7ZWxzZXtzd2l0Y2gobD13aShaLmN1cnJlbnQpLGUpe2Nhc2UgMTplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYSk7YnJlYWs7Y2FzZSAyOmU9bC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiLGEpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKGEpe2Nhc2Uic3ZnIjplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsYSk7YnJlYWs7Y2FzZSJtYXRoIjplPWwuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixhKTticmVhaztjYXNlInNjcmlwdCI6ZT1sLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuaW5uZXJIVE1MPSI8c2NyaXB0PjxcL3NjcmlwdD4iLGU9ZS5yZW1vdmVDaGlsZChlLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjplPXR5cGVvZiBuLmlzPT0ic3RyaW5nIj9sLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lzOm4uaXN9KTpsLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLG4ubXVsdGlwbGU/ZS5tdWx0aXBsZT0hMDpuLnNpemUmJihlLnNpemU9bi5zaXplKTticmVhaztkZWZhdWx0OmU9dHlwZW9mIG4uaXM9PSJzdHJpbmciP2wuY3JlYXRlRWxlbWVudChhLHtpczpuLmlzfSk6bC5jcmVhdGVFbGVtZW50KGEpfX1lW1plXT10LGVbV2VdPW47ZTpmb3IobD10LmNoaWxkO2whPT1udWxsOyl7aWYobC50YWc9PT01fHxsLnRhZz09PTYpZS5hcHBlbmRDaGlsZChsLnN0YXRlTm9kZSk7ZWxzZSBpZihsLnRhZyE9PTQmJmwudGFnIT09MjcmJmwuY2hpbGQhPT1udWxsKXtsLmNoaWxkLnJldHVybj1sLGw9bC5jaGlsZDtjb250aW51ZX1pZihsPT09dClicmVhayBlO2Zvcig7bC5zaWJsaW5nPT09bnVsbDspe2lmKGwucmV0dXJuPT09bnVsbHx8bC5yZXR1cm49PT10KWJyZWFrIGU7bD1sLnJldHVybn1sLnNpYmxpbmcucmV0dXJuPWwucmV0dXJuLGw9bC5zaWJsaW5nfXQuc3RhdGVOb2RlPWU7ZTpzd2l0Y2goUWUoZSxhLG4pLGEpe2Nhc2UiYnV0dG9uIjpjYXNlImlucHV0IjpjYXNlInNlbGVjdCI6Y2FzZSJ0ZXh0YXJlYSI6ZT0hIW4uYXV0b0ZvY3VzO2JyZWFrIGU7Y2FzZSJpbWciOmU9ITA7YnJlYWsgZTtkZWZhdWx0OmU9ITF9ZSYmUXQodCl9fXJldHVybiBiZSh0KSx0LmZsYWdzJj0tMTY3NzcyMTcsbnVsbDtjYXNlIDY6aWYoZSYmdC5zdGF0ZU5vZGUhPW51bGwpZS5tZW1vaXplZFByb3BzIT09biYmUXQodCk7ZWxzZXtpZih0eXBlb2YgbiE9InN0cmluZyImJnQuc3RhdGVOb2RlPT09bnVsbCl0aHJvdyBFcnJvcihzKDE2NikpO2lmKGU9Wi5jdXJyZW50LExuKHQpKXtpZihlPXQuc3RhdGVOb2RlLGE9dC5tZW1vaXplZFByb3BzLG49bnVsbCxsPUplLGwhPT1udWxsKXN3aXRjaChsLnRhZyl7Y2FzZSAyNzpjYXNlIDU6bj1sLm1lbW9pemVkUHJvcHN9ZVtaZV09dCxlPSEhKGUubm9kZVZhbHVlPT09YXx8biE9PW51bGwmJm4uc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nPT09ITB8fFBmKGUubm9kZVZhbHVlLGEpKSxlfHxEYSh0KX1lbHNlIGU9d2koZSkuY3JlYXRlVGV4dE5vZGUobiksZVtaZV09dCx0LnN0YXRlTm9kZT1lfXJldHVybiBiZSh0KSxudWxsO2Nhc2UgMTM6aWYobj10Lm1lbW9pemVkU3RhdGUsZT09PW51bGx8fGUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5kZWh5ZHJhdGVkIT09bnVsbCl7aWYobD1Mbih0KSxuIT09bnVsbCYmbi5kZWh5ZHJhdGVkIT09bnVsbCl7aWYoZT09PW51bGwpe2lmKCFsKXRocm93IEVycm9yKHMoMzE4KSk7aWYobD10Lm1lbW9pemVkU3RhdGUsbD1sIT09bnVsbD9sLmRlaHlkcmF0ZWQ6bnVsbCwhbCl0aHJvdyBFcnJvcihzKDMxNykpO2xbWmVdPXR9ZWxzZSBHbigpLCh0LmZsYWdzJjEyOCk9PT0wJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7YmUodCksbD0hMX1lbHNlIGw9anMoKSxlIT09bnVsbCYmZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9bCksbD0hMDtpZighbClyZXR1cm4gdC5mbGFncyYyNTY/KEd0KHQpLHQpOihHdCh0KSxudWxsKX1pZihHdCh0KSwodC5mbGFncyYxMjgpIT09MClyZXR1cm4gdC5sYW5lcz1hLHQ7aWYoYT1uIT09bnVsbCxlPWUhPT1udWxsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsLGEpe249dC5jaGlsZCxsPW51bGwsbi5hbHRlcm5hdGUhPT1udWxsJiZuLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmbi5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYobD1uLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKTt2YXIgaT1udWxsO24ubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJm4ubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoaT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGkhPT1sJiYobi5mbGFnc3w9MjA0OCl9cmV0dXJuIGEhPT1lJiZhJiYodC5jaGlsZC5mbGFnc3w9ODE5MiksZ2kodCx0LnVwZGF0ZVF1ZXVlKSxiZSh0KSxudWxsO2Nhc2UgNDpyZXR1cm4gSnQoKSxlPT09bnVsbCYmJGModC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksYmUodCksbnVsbDtjYXNlIDEwOnJldHVybiBZdCh0LnR5cGUpLGJlKHQpLG51bGw7Y2FzZSAxOTppZihxKENlKSxsPXQubWVtb2l6ZWRTdGF0ZSxsPT09bnVsbClyZXR1cm4gYmUodCksbnVsbDtpZihuPSh0LmZsYWdzJjEyOCkhPT0wLGk9bC5yZW5kZXJpbmcsaT09PW51bGwpaWYobilubChsLCExKTtlbHNle2lmKEFlIT09MHx8ZSE9PW51bGwmJihlLmZsYWdzJjEyOCkhPT0wKWZvcihlPXQuY2hpbGQ7ZSE9PW51bGw7KXtpZihpPW1pKGUpLGkhPT1udWxsKXtmb3IodC5mbGFnc3w9MTI4LG5sKGwsITEpLGU9aS51cGRhdGVRdWV1ZSx0LnVwZGF0ZVF1ZXVlPWUsZ2kodCxlKSx0LnN1YnRyZWVGbGFncz0wLGU9YSxhPXQuY2hpbGQ7YSE9PW51bGw7KXdzKGEsZSksYT1hLnNpYmxpbmc7cmV0dXJuIFUoQ2UsQ2UuY3VycmVudCYxfDIpLHQuY2hpbGR9ZT1lLnNpYmxpbmd9bC50YWlsIT09bnVsbCYmenQoKT5UaSYmKHQuZmxhZ3N8PTEyOCxuPSEwLG5sKGwsITEpLHQubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighbilpZihlPW1pKGkpLGUhPT1udWxsKXtpZih0LmZsYWdzfD0xMjgsbj0hMCxlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT1lLGdpKHQsZSksbmwobCwhMCksbC50YWlsPT09bnVsbCYmbC50YWlsTW9kZT09PSJoaWRkZW4iJiYhaS5hbHRlcm5hdGUmJiF1ZSlyZXR1cm4gYmUodCksbnVsbH1lbHNlIDIqenQoKS1sLnJlbmRlcmluZ1N0YXJ0VGltZT5UaSYmYSE9PTUzNjg3MDkxMiYmKHQuZmxhZ3N8PTEyOCxuPSEwLG5sKGwsITEpLHQubGFuZXM9NDE5NDMwNCk7bC5pc0JhY2t3YXJkcz8oaS5zaWJsaW5nPXQuY2hpbGQsdC5jaGlsZD1pKTooZT1sLmxhc3QsZSE9PW51bGw/ZS5zaWJsaW5nPWk6dC5jaGlsZD1pLGwubGFzdD1pKX1yZXR1cm4gbC50YWlsIT09bnVsbD8odD1sLnRhaWwsbC5yZW5kZXJpbmc9dCxsLnRhaWw9dC5zaWJsaW5nLGwucmVuZGVyaW5nU3RhcnRUaW1lPXp0KCksdC5zaWJsaW5nPW51bGwsZT1DZS5jdXJyZW50LFUoQ2Usbj9lJjF8MjplJjEpLHQpOihiZSh0KSxudWxsKTtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEd0KHQpLEZ1KCksbj10Lm1lbW9pemVkU3RhdGUhPT1udWxsLGUhPT1udWxsP2UubWVtb2l6ZWRTdGF0ZSE9PW51bGwhPT1uJiYodC5mbGFnc3w9ODE5Mik6biYmKHQuZmxhZ3N8PTgxOTIpLG4/KGEmNTM2ODcwOTEyKSE9PTAmJih0LmZsYWdzJjEyOCk9PT0wJiYoYmUodCksdC5zdWJ0cmVlRmxhZ3MmNiYmKHQuZmxhZ3N8PTgxOTIpKTpiZSh0KSxhPXQudXBkYXRlUXVldWUsYSE9PW51bGwmJmdpKHQsYS5yZXRyeVF1ZXVlKSxhPW51bGwsZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoYT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLG49bnVsbCx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKG49dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxuIT09YSYmKHQuZmxhZ3N8PTIwNDgpLGUhPT1udWxsJiZxKE9hKSxudWxsO2Nhc2UgMjQ6cmV0dXJuIGE9bnVsbCxlIT09bnVsbCYmKGE9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1hJiYodC5mbGFnc3w9MjA0OCksWXQoVWUpLGJlKHQpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKHMoMTU2LHQudGFnKSl9ZnVuY3Rpb24gcW0oZSx0KXtzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMTpyZXR1cm4gZT10LmZsYWdzLGUmNjU1MzY/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSAzOnJldHVybiBZdChVZSksSnQoKSxlPXQuZmxhZ3MsKGUmNjU1MzYpIT09MCYmKGUmMTI4KT09PTA/KHQuZmxhZ3M9ZSYtNjU1Mzd8MTI4LHQpOm51bGw7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpyZXR1cm4gTWwodCksbnVsbDtjYXNlIDEzOmlmKEd0KHQpLGU9dC5tZW1vaXplZFN0YXRlLGUhPT1udWxsJiZlLmRlaHlkcmF0ZWQhPT1udWxsKXtpZih0LmFsdGVybmF0ZT09PW51bGwpdGhyb3cgRXJyb3IocygzNDApKTtHbigpfXJldHVybiBlPXQuZmxhZ3MsZSY2NTUzNj8odC5mbGFncz1lJi02NTUzN3wxMjgsdCk6bnVsbDtjYXNlIDE5OnJldHVybiBxKENlKSxudWxsO2Nhc2UgNDpyZXR1cm4gSnQoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIFl0KHQudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIEd0KHQpLEZ1KCksZSE9PW51bGwmJnEoT2EpLGU9dC5mbGFncyxlJjY1NTM2Pyh0LmZsYWdzPWUmLTY1NTM3fDEyOCx0KTpudWxsO2Nhc2UgMjQ6cmV0dXJuIFl0KFVlKSxudWxsO2Nhc2UgMjU6cmV0dXJuIG51bGw7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gdWYoZSx0KXtzd2l0Y2goSHUodCksdC50YWcpe2Nhc2UgMzpZdChVZSksSnQoKTticmVhaztjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1Ok1sKHQpO2JyZWFrO2Nhc2UgNDpKdCgpO2JyZWFrO2Nhc2UgMTM6R3QodCk7YnJlYWs7Y2FzZSAxOTpxKENlKTticmVhaztjYXNlIDEwOll0KHQudHlwZSk7YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOkd0KHQpLEZ1KCksZSE9PW51bGwmJnEoT2EpO2JyZWFrO2Nhc2UgMjQ6WXQoVWUpfX1mdW5jdGlvbiBsbChlLHQpe3RyeXt2YXIgYT10LnVwZGF0ZVF1ZXVlLG49YSE9PW51bGw/YS5sYXN0RWZmZWN0Om51bGw7aWYobiE9PW51bGwpe3ZhciBsPW4ubmV4dDthPWw7ZG97aWYoKGEudGFnJmUpPT09ZSl7bj12b2lkIDA7dmFyIGk9YS5jcmVhdGUsdT1hLmluc3Q7bj1pKCksdS5kZXN0cm95PW59YT1hLm5leHR9d2hpbGUoYSE9PWwpfX1jYXRjaChjKXtfZSh0LHQucmV0dXJuLGMpfX1mdW5jdGlvbiBpYShlLHQsYSl7dHJ5e3ZhciBuPXQudXBkYXRlUXVldWUsbD1uIT09bnVsbD9uLmxhc3RFZmZlY3Q6bnVsbDtpZihsIT09bnVsbCl7dmFyIGk9bC5uZXh0O249aTtkb3tpZigobi50YWcmZSk9PT1lKXt2YXIgdT1uLmluc3QsYz11LmRlc3Ryb3k7aWYoYyE9PXZvaWQgMCl7dS5kZXN0cm95PXZvaWQgMCxsPXQ7dmFyIHI9YSxwPWM7dHJ5e3AoKX1jYXRjaChBKXtfZShsLHIsQSl9fX1uPW4ubmV4dH13aGlsZShuIT09aSl9fWNhdGNoKEEpe19lKHQsdC5yZXR1cm4sQSl9fWZ1bmN0aW9uIGNmKGUpe3ZhciB0PWUudXBkYXRlUXVldWU7aWYodCE9PW51bGwpe3ZhciBhPWUuc3RhdGVOb2RlO3RyeXtLcyh0LGEpfWNhdGNoKG4pe19lKGUsZS5yZXR1cm4sbil9fX1mdW5jdGlvbiBvZihlLHQsYSl7YS5wcm9wcz1VYShlLnR5cGUsZS5tZW1vaXplZFByb3BzKSxhLnN0YXRlPWUubWVtb2l6ZWRTdGF0ZTt0cnl7YS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKG4pe19lKGUsdCxuKX19ZnVuY3Rpb24gaWwoZSx0KXt0cnl7dmFyIGE9ZS5yZWY7aWYoYSE9PW51bGwpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTp2YXIgbj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDMwOm49ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpuPWUuc3RhdGVOb2RlfXR5cGVvZiBhPT0iZnVuY3Rpb24iP2UucmVmQ2xlYW51cD1hKG4pOmEuY3VycmVudD1ufX1jYXRjaChsKXtfZShlLHQsbCl9fWZ1bmN0aW9uIE50KGUsdCl7dmFyIGE9ZS5yZWYsbj1lLnJlZkNsZWFudXA7aWYoYSE9PW51bGwpaWYodHlwZW9mIG49PSJmdW5jdGlvbiIpdHJ5e24oKX1jYXRjaChsKXtfZShlLHQsbCl9ZmluYWxseXtlLnJlZkNsZWFudXA9bnVsbCxlPWUuYWx0ZXJuYXRlLGUhPW51bGwmJihlLnJlZkNsZWFudXA9bnVsbCl9ZWxzZSBpZih0eXBlb2YgYT09ImZ1bmN0aW9uIil0cnl7YShudWxsKX1jYXRjaChsKXtfZShlLHQsbCl9ZWxzZSBhLmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBzZihlKXt2YXIgdD1lLnR5cGUsYT1lLm1lbW9pemVkUHJvcHMsbj1lLnN0YXRlTm9kZTt0cnl7ZTpzd2l0Y2godCl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjphLmF1dG9Gb2N1cyYmbi5mb2N1cygpO2JyZWFrIGU7Y2FzZSJpbWciOmEuc3JjP24uc3JjPWEuc3JjOmEuc3JjU2V0JiYobi5zcmNzZXQ9YS5zcmNTZXQpfX1jYXRjaChsKXtfZShlLGUucmV0dXJuLGwpfX1mdW5jdGlvbiB4YyhlLHQsYSl7dHJ5e3ZhciBuPWUuc3RhdGVOb2RlO2FfKG4sZS50eXBlLGEsdCksbltXZV09dH1jYXRjaChsKXtfZShlLGUucmV0dXJuLGwpfX1mdW5jdGlvbiByZihlKXtyZXR1cm4gZS50YWc9PT01fHxlLnRhZz09PTN8fGUudGFnPT09MjZ8fGUudGFnPT09MjcmJmhhKGUudHlwZSl8fGUudGFnPT09NH1mdW5jdGlvbiB6YyhlKXtlOmZvcig7Oyl7Zm9yKDtlLnNpYmxpbmc9PT1udWxsOyl7aWYoZS5yZXR1cm49PT1udWxsfHxyZihlLnJldHVybikpcmV0dXJuIG51bGw7ZT1lLnJldHVybn1mb3IoZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZztlLnRhZyE9PTUmJmUudGFnIT09NiYmZS50YWchPT0xODspe2lmKGUudGFnPT09MjcmJmhhKGUudHlwZSl8fGUuZmxhZ3MmMnx8ZS5jaGlsZD09PW51bGx8fGUudGFnPT09NCljb250aW51ZSBlO2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkfWlmKCEoZS5mbGFncyYyKSlyZXR1cm4gZS5zdGF0ZU5vZGV9fWZ1bmN0aW9uIFJjKGUsdCxhKXt2YXIgbj1lLnRhZztpZihuPT09NXx8bj09PTYpZT1lLnN0YXRlTm9kZSx0PyhhLm5vZGVUeXBlPT09OT9hLmJvZHk6YS5ub2RlTmFtZT09PSJIVE1MIj9hLm93bmVyRG9jdW1lbnQuYm9keTphKS5pbnNlcnRCZWZvcmUoZSx0KToodD1hLm5vZGVUeXBlPT09OT9hLmJvZHk6YS5ub2RlTmFtZT09PSJIVE1MIj9hLm93bmVyRG9jdW1lbnQuYm9keTphLHQuYXBwZW5kQ2hpbGQoZSksYT1hLl9yZWFjdFJvb3RDb250YWluZXIsYSE9bnVsbHx8dC5vbmNsaWNrIT09bnVsbHx8KHQub25jbGljaz1PaSkpO2Vsc2UgaWYobiE9PTQmJihuPT09MjcmJmhhKGUudHlwZSkmJihhPWUuc3RhdGVOb2RlLHQ9bnVsbCksZT1lLmNoaWxkLGUhPT1udWxsKSlmb3IoUmMoZSx0LGEpLGU9ZS5zaWJsaW5nO2UhPT1udWxsOylSYyhlLHQsYSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gYmkoZSx0LGEpe3ZhciBuPWUudGFnO2lmKG49PT01fHxuPT09NillPWUuc3RhdGVOb2RlLHQ/YS5pbnNlcnRCZWZvcmUoZSx0KTphLmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYobiE9PTQmJihuPT09MjcmJmhhKGUudHlwZSkmJihhPWUuc3RhdGVOb2RlKSxlPWUuY2hpbGQsZSE9PW51bGwpKWZvcihiaShlLHQsYSksZT1lLnNpYmxpbmc7ZSE9PW51bGw7KWJpKGUsdCxhKSxlPWUuc2libGluZ31mdW5jdGlvbiBmZihlKXt2YXIgdD1lLnN0YXRlTm9kZSxhPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciBuPWUudHlwZSxsPXQuYXR0cmlidXRlcztsLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKGxbMF0pO1FlKHQsbixhKSx0W1plXT1lLHRbV2VdPWF9Y2F0Y2goaSl7X2UoZSxlLnJldHVybixpKX19dmFyIGt0PSExLFJlPSExLERjPSExLGRmPXR5cGVvZiBXZWFrU2V0PT0iZnVuY3Rpb24iP1dlYWtTZXQ6U2V0LFllPW51bGw7ZnVuY3Rpb24gam0oZSx0KXtpZihlPWUuY29udGFpbmVySW5mbyxQYz1CaSxlPVRzKGUpLHp1KGUpKXtpZigic2VsZWN0aW9uU3RhcnQiaW4gZSl2YXIgYT17c3RhcnQ6ZS5zZWxlY3Rpb25TdGFydCxlbmQ6ZS5zZWxlY3Rpb25FbmR9O2Vsc2UgZTp7YT0oYT1lLm93bmVyRG9jdW1lbnQpJiZhLmRlZmF1bHRWaWV3fHx3aW5kb3c7dmFyIG49YS5nZXRTZWxlY3Rpb24mJmEuZ2V0U2VsZWN0aW9uKCk7aWYobiYmbi5yYW5nZUNvdW50IT09MCl7YT1uLmFuY2hvck5vZGU7dmFyIGw9bi5hbmNob3JPZmZzZXQsaT1uLmZvY3VzTm9kZTtuPW4uZm9jdXNPZmZzZXQ7dHJ5e2Eubm9kZVR5cGUsaS5ub2RlVHlwZX1jYXRjaHthPW51bGw7YnJlYWsgZX12YXIgdT0wLGM9LTEscj0tMSxwPTAsQT0wLFI9ZSxnPW51bGw7dDpmb3IoOzspe2Zvcih2YXIgYjtSIT09YXx8bCE9PTAmJlIubm9kZVR5cGUhPT0zfHwoYz11K2wpLFIhPT1pfHxuIT09MCYmUi5ub2RlVHlwZSE9PTN8fChyPXUrbiksUi5ub2RlVHlwZT09PTMmJih1Kz1SLm5vZGVWYWx1ZS5sZW5ndGgpLChiPVIuZmlyc3RDaGlsZCkhPT1udWxsOylnPVIsUj1iO2Zvcig7Oyl7aWYoUj09PWUpYnJlYWsgdDtpZihnPT09YSYmKytwPT09bCYmKGM9dSksZz09PWkmJisrQT09PW4mJihyPXUpLChiPVIubmV4dFNpYmxpbmcpIT09bnVsbClicmVhaztSPWcsZz1SLnBhcmVudE5vZGV9Uj1ifWE9Yz09PS0xfHxyPT09LTE/bnVsbDp7c3RhcnQ6YyxlbmQ6cn19ZWxzZSBhPW51bGx9YT1hfHx7c3RhcnQ6MCxlbmQ6MH19ZWxzZSBhPW51bGw7Zm9yKEljPXtmb2N1c2VkRWxlbTplLHNlbGVjdGlvblJhbmdlOmF9LEJpPSExLFllPXQ7WWUhPT1udWxsOylpZih0PVllLGU9dC5jaGlsZCwodC5zdWJ0cmVlRmxhZ3MmMTAyNCkhPT0wJiZlIT09bnVsbCllLnJldHVybj10LFllPWU7ZWxzZSBmb3IoO1llIT09bnVsbDspe3N3aXRjaCh0PVllLGk9dC5hbHRlcm5hdGUsZT10LmZsYWdzLHQudGFnKXtjYXNlIDA6YnJlYWs7Y2FzZSAxMTpjYXNlIDE1OmJyZWFrO2Nhc2UgMTppZigoZSYxMDI0KSE9PTAmJmkhPT1udWxsKXtlPXZvaWQgMCxhPXQsbD1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUsbj1hLnN0YXRlTm9kZTt0cnl7dmFyIGs9VWEoYS50eXBlLGwsYS5lbGVtZW50VHlwZT09PWEudHlwZSk7ZT1uLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKGssaSksbi5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1lfWNhdGNoKEcpe19lKGEsYS5yZXR1cm4sRyl9fWJyZWFrO2Nhc2UgMzppZigoZSYxMDI0KSE9PTApe2lmKGU9dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxhPWUubm9kZVR5cGUsYT09PTkpYW8oZSk7ZWxzZSBpZihhPT09MSlzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSJIRUFEIjpjYXNlIkhUTUwiOmNhc2UiQk9EWSI6YW8oZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PSIifX1icmVhaztjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztkZWZhdWx0OmlmKChlJjEwMjQpIT09MCl0aHJvdyBFcnJvcihzKDE2MykpfWlmKGU9dC5zaWJsaW5nLGUhPT1udWxsKXtlLnJldHVybj10LnJldHVybixZZT1lO2JyZWFrfVllPXQucmV0dXJufX1mdW5jdGlvbiBoZihlLHQsYSl7dmFyIG49YS5mbGFncztzd2l0Y2goYS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6dWEoZSxhKSxuJjQmJmxsKDUsYSk7YnJlYWs7Y2FzZSAxOmlmKHVhKGUsYSksbiY0KWlmKGU9YS5zdGF0ZU5vZGUsdD09PW51bGwpdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaCh1KXtfZShhLGEucmV0dXJuLHUpfWVsc2V7dmFyIGw9VWEoYS50eXBlLHQubWVtb2l6ZWRQcm9wcyk7dD10Lm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKGwsdCxlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaCh1KXtfZShhLGEucmV0dXJuLHUpfX1uJjY0JiZjZihhKSxuJjUxMiYmaWwoYSxhLnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKHVhKGUsYSksbiY2NCYmKGU9YS51cGRhdGVRdWV1ZSxlIT09bnVsbCkpe2lmKHQ9bnVsbCxhLmNoaWxkIT09bnVsbClzd2l0Y2goYS5jaGlsZC50YWcpe2Nhc2UgMjc6Y2FzZSA1OnQ9YS5jaGlsZC5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAxOnQ9YS5jaGlsZC5zdGF0ZU5vZGV9dHJ5e0tzKGUsdCl9Y2F0Y2godSl7X2UoYSxhLnJldHVybix1KX19YnJlYWs7Y2FzZSAyNzp0PT09bnVsbCYmbiY0JiZmZihhKTtjYXNlIDI2OmNhc2UgNTp1YShlLGEpLHQ9PT1udWxsJiZuJjQmJnNmKGEpLG4mNTEyJiZpbChhLGEucmV0dXJuKTticmVhaztjYXNlIDEyOnVhKGUsYSk7YnJlYWs7Y2FzZSAxMzp1YShlLGEpLG4mNCYmdmYoZSxhKSxuJjY0JiYoZT1hLm1lbW9pemVkU3RhdGUsZSE9PW51bGwmJihlPWUuZGVoeWRyYXRlZCxlIT09bnVsbCYmKGE9Wm0uYmluZChudWxsLGEpLHNfKGUsYSkpKSk7YnJlYWs7Y2FzZSAyMjppZihuPWEubWVtb2l6ZWRTdGF0ZSE9PW51bGx8fGt0LCFuKXt0PXQhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUhPT1udWxsfHxSZSxsPWt0O3ZhciBpPVJlO2t0PW4sKFJlPXQpJiYhaT9jYShlLGEsKGEuc3VidHJlZUZsYWdzJjg3NzIpIT09MCk6dWEoZSxhKSxrdD1sLFJlPWl9YnJlYWs7Y2FzZSAzMDpicmVhaztkZWZhdWx0OnVhKGUsYSl9fWZ1bmN0aW9uIG1mKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO3QhPT1udWxsJiYoZS5hbHRlcm5hdGU9bnVsbCxtZih0KSksZS5jaGlsZD1udWxsLGUuZGVsZXRpb25zPW51bGwsZS5zaWJsaW5nPW51bGwsZS50YWc9PT01JiYodD1lLnN0YXRlTm9kZSx0IT09bnVsbCYmY3UodCkpLGUuc3RhdGVOb2RlPW51bGwsZS5yZXR1cm49bnVsbCxlLmRlcGVuZGVuY2llcz1udWxsLGUubWVtb2l6ZWRQcm9wcz1udWxsLGUubWVtb2l6ZWRTdGF0ZT1udWxsLGUucGVuZGluZ1Byb3BzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCxlLnVwZGF0ZVF1ZXVlPW51bGx9dmFyIGdlPW51bGwsSWU9ITE7ZnVuY3Rpb24gWnQoZSx0LGEpe2ZvcihhPWEuY2hpbGQ7YSE9PW51bGw7KV9mKGUsdCxhKSxhPWEuc2libGluZ31mdW5jdGlvbiBfZihlLHQsYSl7aWYobHQmJnR5cGVvZiBsdC5vbkNvbW1pdEZpYmVyVW5tb3VudD09ImZ1bmN0aW9uIil0cnl7bHQub25Db21taXRGaWJlclVubW91bnQoem4sYSl9Y2F0Y2h7fXN3aXRjaChhLnRhZyl7Y2FzZSAyNjpSZXx8TnQoYSx0KSxadChlLHQsYSksYS5tZW1vaXplZFN0YXRlP2EubWVtb2l6ZWRTdGF0ZS5jb3VudC0tOmEuc3RhdGVOb2RlJiYoYT1hLnN0YXRlTm9kZSxhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSkpO2JyZWFrO2Nhc2UgMjc6UmV8fE50KGEsdCk7dmFyIG49Z2UsbD1JZTtoYShhLnR5cGUpJiYoZ2U9YS5zdGF0ZU5vZGUsSWU9ITEpLFp0KGUsdCxhKSxtbChhLnN0YXRlTm9kZSksZ2U9bixJZT1sO2JyZWFrO2Nhc2UgNTpSZXx8TnQoYSx0KTtjYXNlIDY6aWYobj1nZSxsPUllLGdlPW51bGwsWnQoZSx0LGEpLGdlPW4sSWU9bCxnZSE9PW51bGwpaWYoSWUpdHJ5eyhnZS5ub2RlVHlwZT09PTk/Z2UuYm9keTpnZS5ub2RlTmFtZT09PSJIVE1MIj9nZS5vd25lckRvY3VtZW50LmJvZHk6Z2UpLnJlbW92ZUNoaWxkKGEuc3RhdGVOb2RlKX1jYXRjaChpKXtfZShhLHQsaSl9ZWxzZSB0cnl7Z2UucmVtb3ZlQ2hpbGQoYS5zdGF0ZU5vZGUpfWNhdGNoKGkpe19lKGEsdCxpKX1icmVhaztjYXNlIDE4OmdlIT09bnVsbCYmKEllPyhlPWdlLG5kKGUubm9kZVR5cGU9PT05P2UuYm9keTplLm5vZGVOYW1lPT09IkhUTUwiP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsYS5zdGF0ZU5vZGUpLFRsKGUpKTpuZChnZSxhLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpuPWdlLGw9SWUsZ2U9YS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxJZT0hMCxadChlLHQsYSksZ2U9bixJZT1sO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTpSZXx8aWEoMixhLHQpLFJlfHxpYSg0LGEsdCksWnQoZSx0LGEpO2JyZWFrO2Nhc2UgMTpSZXx8KE50KGEsdCksbj1hLnN0YXRlTm9kZSx0eXBlb2Ygbi5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmb2YoYSx0LG4pKSxadChlLHQsYSk7YnJlYWs7Y2FzZSAyMTpadChlLHQsYSk7YnJlYWs7Y2FzZSAyMjpSZT0obj1SZSl8fGEubWVtb2l6ZWRTdGF0ZSE9PW51bGwsWnQoZSx0LGEpLFJlPW47YnJlYWs7ZGVmYXVsdDpadChlLHQsYSl9fWZ1bmN0aW9uIHZmKGUsdCl7aWYodC5tZW1vaXplZFN0YXRlPT09bnVsbCYmKGU9dC5hbHRlcm5hdGUsZSE9PW51bGwmJihlPWUubWVtb2l6ZWRTdGF0ZSxlIT09bnVsbCYmKGU9ZS5kZWh5ZHJhdGVkLGUhPT1udWxsKSkpKXRyeXtUbChlKX1jYXRjaChhKXtfZSh0LHQucmV0dXJuLGEpfX1mdW5jdGlvbiBIbShlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMTM6Y2FzZSAxOTp2YXIgdD1lLnN0YXRlTm9kZTtyZXR1cm4gdD09PW51bGwmJih0PWUuc3RhdGVOb2RlPW5ldyBkZiksdDtjYXNlIDIyOnJldHVybiBlPWUuc3RhdGVOb2RlLHQ9ZS5fcmV0cnlDYWNoZSx0PT09bnVsbCYmKHQ9ZS5fcmV0cnlDYWNoZT1uZXcgZGYpLHQ7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQzNSxlLnRhZykpfX1mdW5jdGlvbiBOYyhlLHQpe3ZhciBhPUhtKGUpO3QuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgbD1WbS5iaW5kKG51bGwsZSxuKTthLmhhcyhuKXx8KGEuYWRkKG4pLG4udGhlbihsLGwpKX0pfWZ1bmN0aW9uIG90KGUsdCl7dmFyIGE9dC5kZWxldGlvbnM7aWYoYSE9PW51bGwpZm9yKHZhciBuPTA7bjxhLmxlbmd0aDtuKyspe3ZhciBsPWFbbl0saT1lLHU9dCxjPXU7ZTpmb3IoO2MhPT1udWxsOyl7c3dpdGNoKGMudGFnKXtjYXNlIDI3OmlmKGhhKGMudHlwZSkpe2dlPWMuc3RhdGVOb2RlLEllPSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmdlPWMuc3RhdGVOb2RlLEllPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpnZT1jLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLEllPSEwO2JyZWFrIGV9Yz1jLnJldHVybn1pZihnZT09PW51bGwpdGhyb3cgRXJyb3IocygxNjApKTtfZihpLHUsbCksZ2U9bnVsbCxJZT0hMSxpPWwuYWx0ZXJuYXRlLGkhPT1udWxsJiYoaS5yZXR1cm49bnVsbCksbC5yZXR1cm49bnVsbH1pZih0LnN1YnRyZWVGbGFncyYxMzg3OClmb3IodD10LmNoaWxkO3QhPT1udWxsOyl5Zih0LGUpLHQ9dC5zaWJsaW5nfXZhciBBdD1udWxsO2Z1bmN0aW9uIHlmKGUsdCl7dmFyIGE9ZS5hbHRlcm5hdGUsbj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1Om90KHQsZSksc3QoZSksbiY0JiYoaWEoMyxlLGUucmV0dXJuKSxsbCgzLGUpLGlhKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpvdCh0LGUpLHN0KGUpLG4mNTEyJiYoUmV8fGE9PT1udWxsfHxOdChhLGEucmV0dXJuKSksbiY2NCYma3QmJihlPWUudXBkYXRlUXVldWUsZSE9PW51bGwmJihuPWUuY2FsbGJhY2tzLG4hPT1udWxsJiYoYT1lLnNoYXJlZC5oaWRkZW5DYWxsYmFja3MsZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPWE9PT1udWxsP246YS5jb25jYXQobikpKSk7YnJlYWs7Y2FzZSAyNjp2YXIgbD1BdDtpZihvdCh0LGUpLHN0KGUpLG4mNTEyJiYoUmV8fGE9PT1udWxsfHxOdChhLGEucmV0dXJuKSksbiY0KXt2YXIgaT1hIT09bnVsbD9hLm1lbW9pemVkU3RhdGU6bnVsbDtpZihuPWUubWVtb2l6ZWRTdGF0ZSxhPT09bnVsbClpZihuPT09bnVsbClpZihlLnN0YXRlTm9kZT09PW51bGwpe2U6e249ZS50eXBlLGE9ZS5tZW1vaXplZFByb3BzLGw9bC5vd25lckRvY3VtZW50fHxsO3Q6c3dpdGNoKG4pe2Nhc2UidGl0bGUiOmk9bC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXSwoIWl8fGlbTm5dfHxpW1plXXx8aS5uYW1lc3BhY2VVUkk9PT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcifHxpLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkmJihpPWwuY3JlYXRlRWxlbWVudChuKSxsLmhlYWQuaW5zZXJ0QmVmb3JlKGksbC5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKSkpLFFlKGksbixhKSxpW1plXT1lLEhlKGkpLG49aTticmVhayBlO2Nhc2UibGluayI6dmFyIHU9ZmQoImxpbmsiLCJocmVmIixsKS5nZXQobisoYS5ocmVmfHwiIikpO2lmKHUpe2Zvcih2YXIgYz0wO2M8dS5sZW5ndGg7YysrKWlmKGk9dVtjXSxpLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09KGEuaHJlZj09bnVsbHx8YS5ocmVmPT09IiI/bnVsbDphLmhyZWYpJiZpLmdldEF0dHJpYnV0ZSgicmVsIik9PT0oYS5yZWw9PW51bGw/bnVsbDphLnJlbCkmJmkuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpPT09KGEudGl0bGU9PW51bGw/bnVsbDphLnRpdGxlKSYmaS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik9PT0oYS5jcm9zc09yaWdpbj09bnVsbD9udWxsOmEuY3Jvc3NPcmlnaW4pKXt1LnNwbGljZShjLDEpO2JyZWFrIHR9fWk9bC5jcmVhdGVFbGVtZW50KG4pLFFlKGksbixhKSxsLmhlYWQuYXBwZW5kQ2hpbGQoaSk7YnJlYWs7Y2FzZSJtZXRhIjppZih1PWZkKCJtZXRhIiwiY29udGVudCIsbCkuZ2V0KG4rKGEuY29udGVudHx8IiIpKSl7Zm9yKGM9MDtjPHUubGVuZ3RoO2MrKylpZihpPXVbY10saS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKT09PShhLmNvbnRlbnQ9PW51bGw/bnVsbDoiIithLmNvbnRlbnQpJiZpLmdldEF0dHJpYnV0ZSgibmFtZSIpPT09KGEubmFtZT09bnVsbD9udWxsOmEubmFtZSkmJmkuZ2V0QXR0cmlidXRlKCJwcm9wZXJ0eSIpPT09KGEucHJvcGVydHk9PW51bGw/bnVsbDphLnByb3BlcnR5KSYmaS5nZXRBdHRyaWJ1dGUoImh0dHAtZXF1aXYiKT09PShhLmh0dHBFcXVpdj09bnVsbD9udWxsOmEuaHR0cEVxdWl2KSYmaS5nZXRBdHRyaWJ1dGUoImNoYXJzZXQiKT09PShhLmNoYXJTZXQ9PW51bGw/bnVsbDphLmNoYXJTZXQpKXt1LnNwbGljZShjLDEpO2JyZWFrIHR9fWk9bC5jcmVhdGVFbGVtZW50KG4pLFFlKGksbixhKSxsLmhlYWQuYXBwZW5kQ2hpbGQoaSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ2OCxuKSl9aVtaZV09ZSxIZShpKSxuPWl9ZS5zdGF0ZU5vZGU9bn1lbHNlIGRkKGwsZS50eXBlLGUuc3RhdGVOb2RlKTtlbHNlIGUuc3RhdGVOb2RlPXJkKGwsbixlLm1lbW9pemVkUHJvcHMpO2Vsc2UgaSE9PW4/KGk9PT1udWxsP2Euc3RhdGVOb2RlIT09bnVsbCYmKGE9YS5zdGF0ZU5vZGUsYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpKTppLmNvdW50LS0sbj09PW51bGw/ZGQobCxlLnR5cGUsZS5zdGF0ZU5vZGUpOnJkKGwsbixlLm1lbW9pemVkUHJvcHMpKTpuPT09bnVsbCYmZS5zdGF0ZU5vZGUhPT1udWxsJiZ4YyhlLGUubWVtb2l6ZWRQcm9wcyxhLm1lbW9pemVkUHJvcHMpfWJyZWFrO2Nhc2UgMjc6b3QodCxlKSxzdChlKSxuJjUxMiYmKFJlfHxhPT09bnVsbHx8TnQoYSxhLnJldHVybikpLGEhPT1udWxsJiZuJjQmJnhjKGUsZS5tZW1vaXplZFByb3BzLGEubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmlmKG90KHQsZSksc3QoZSksbiY1MTImJihSZXx8YT09PW51bGx8fE50KGEsYS5yZXR1cm4pKSxlLmZsYWdzJjMyKXtsPWUuc3RhdGVOb2RlO3RyeXtaYShsLCIiKX1jYXRjaChiKXtfZShlLGUucmV0dXJuLGIpfX1uJjQmJmUuc3RhdGVOb2RlIT1udWxsJiYobD1lLm1lbW9pemVkUHJvcHMseGMoZSxsLGEhPT1udWxsP2EubWVtb2l6ZWRQcm9wczpsKSksbiYxMDI0JiYoRGM9ITApO2JyZWFrO2Nhc2UgNjppZihvdCh0LGUpLHN0KGUpLG4mNCl7aWYoZS5zdGF0ZU5vZGU9PT1udWxsKXRocm93IEVycm9yKHMoMTYyKSk7bj1lLm1lbW9pemVkUHJvcHMsYT1lLnN0YXRlTm9kZTt0cnl7YS5ub2RlVmFsdWU9bn1jYXRjaChiKXtfZShlLGUucmV0dXJuLGIpfX1icmVhaztjYXNlIDM6aWYocWk9bnVsbCxsPUF0LEF0PVVpKHQuY29udGFpbmVySW5mbyksb3QodCxlKSxBdD1sLHN0KGUpLG4mNCYmYSE9PW51bGwmJmEubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e1RsKHQuY29udGFpbmVySW5mbyl9Y2F0Y2goYil7X2UoZSxlLnJldHVybixiKX1EYyYmKERjPSExLHBmKGUpKTticmVhaztjYXNlIDQ6bj1BdCxBdD1VaShlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxvdCh0LGUpLHN0KGUpLEF0PW47YnJlYWs7Y2FzZSAxMjpvdCh0LGUpLHN0KGUpO2JyZWFrO2Nhc2UgMTM6b3QodCxlKSxzdChlKSxlLmNoaWxkLmZsYWdzJjgxOTImJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwhPShhIT09bnVsbCYmYS5tZW1vaXplZFN0YXRlIT09bnVsbCkmJihxYz16dCgpKSxuJjQmJihuPWUudXBkYXRlUXVldWUsbiE9PW51bGwmJihlLnVwZGF0ZVF1ZXVlPW51bGwsTmMoZSxuKSkpO2JyZWFrO2Nhc2UgMjI6bD1lLm1lbW9pemVkU3RhdGUhPT1udWxsO3ZhciByPWEhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUhPT1udWxsLHA9a3QsQT1SZTtpZihrdD1wfHxsLFJlPUF8fHIsb3QodCxlKSxSZT1BLGt0PXAsc3QoZSksbiY4MTkyKWU6Zm9yKHQ9ZS5zdGF0ZU5vZGUsdC5fdmlzaWJpbGl0eT1sP3QuX3Zpc2liaWxpdHkmLTI6dC5fdmlzaWJpbGl0eXwxLGwmJihhPT09bnVsbHx8cnx8a3R8fFJlfHxDYShlKSksYT1udWxsLHQ9ZTs7KXtpZih0LnRhZz09PTV8fHQudGFnPT09MjYpe2lmKGE9PT1udWxsKXtyPWE9dDt0cnl7aWYoaT1yLnN0YXRlTm9kZSxsKXU9aS5zdHlsZSx0eXBlb2YgdS5zZXRQcm9wZXJ0eT09ImZ1bmN0aW9uIj91LnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOnUuZGlzcGxheT0ibm9uZSI7ZWxzZXtjPXIuc3RhdGVOb2RlO3ZhciBSPXIubWVtb2l6ZWRQcm9wcy5zdHlsZSxnPVIhPW51bGwmJlIuaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9SLmRpc3BsYXk6bnVsbDtjLnN0eWxlLmRpc3BsYXk9Zz09bnVsbHx8dHlwZW9mIGc9PSJib29sZWFuIj8iIjooIiIrZykudHJpbSgpfX1jYXRjaChiKXtfZShyLHIucmV0dXJuLGIpfX19ZWxzZSBpZih0LnRhZz09PTYpe2lmKGE9PT1udWxsKXtyPXQ7dHJ5e3Iuc3RhdGVOb2RlLm5vZGVWYWx1ZT1sPyIiOnIubWVtb2l6ZWRQcm9wc31jYXRjaChiKXtfZShyLHIucmV0dXJuLGIpfX19ZWxzZSBpZigodC50YWchPT0yMiYmdC50YWchPT0yM3x8dC5tZW1vaXplZFN0YXRlPT09bnVsbHx8dD09PWUpJiZ0LmNoaWxkIT09bnVsbCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWsgZTtmb3IoO3Quc2libGluZz09PW51bGw7KXtpZih0LnJldHVybj09PW51bGx8fHQucmV0dXJuPT09ZSlicmVhayBlO2E9PT10JiYoYT1udWxsKSx0PXQucmV0dXJufWE9PT10JiYoYT1udWxsKSx0LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfW4mNCYmKG49ZS51cGRhdGVRdWV1ZSxuIT09bnVsbCYmKGE9bi5yZXRyeVF1ZXVlLGEhPT1udWxsJiYobi5yZXRyeVF1ZXVlPW51bGwsTmMoZSxhKSkpKTticmVhaztjYXNlIDE5Om90KHQsZSksc3QoZSksbiY0JiYobj1lLnVwZGF0ZVF1ZXVlLG4hPT1udWxsJiYoZS51cGRhdGVRdWV1ZT1udWxsLE5jKGUsbikpKTticmVhaztjYXNlIDMwOmJyZWFrO2Nhc2UgMjE6YnJlYWs7ZGVmYXVsdDpvdCh0LGUpLHN0KGUpfX1mdW5jdGlvbiBzdChlKXt2YXIgdD1lLmZsYWdzO2lmKHQmMil7dHJ5e2Zvcih2YXIgYSxuPWUucmV0dXJuO24hPT1udWxsOyl7aWYocmYobikpe2E9bjticmVha31uPW4ucmV0dXJufWlmKGE9PW51bGwpdGhyb3cgRXJyb3IocygxNjApKTtzd2l0Y2goYS50YWcpe2Nhc2UgMjc6dmFyIGw9YS5zdGF0ZU5vZGUsaT16YyhlKTtiaShlLGksbCk7YnJlYWs7Y2FzZSA1OnZhciB1PWEuc3RhdGVOb2RlO2EuZmxhZ3MmMzImJihaYSh1LCIiKSxhLmZsYWdzJj0tMzMpO3ZhciBjPXpjKGUpO2JpKGUsYyx1KTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciByPWEuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8scD16YyhlKTtSYyhlLHAscik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDE2MSkpfX1jYXRjaChBKXtfZShlLGUucmV0dXJuLEEpfWUuZmxhZ3MmPS0zfXQmNDA5NiYmKGUuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiBwZihlKXtpZihlLnN1YnRyZWVGbGFncyYxMDI0KWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KXt2YXIgdD1lO3BmKHQpLHQudGFnPT09NSYmdC5mbGFncyYxMDI0JiZ0LnN0YXRlTm9kZS5yZXNldCgpLGU9ZS5zaWJsaW5nfX1mdW5jdGlvbiB1YShlLHQpe2lmKHQuc3VidHJlZUZsYWdzJjg3NzIpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspaGYoZSx0LmFsdGVybmF0ZSx0KSx0PXQuc2libGluZ31mdW5jdGlvbiBDYShlKXtmb3IoZT1lLmNoaWxkO2UhPT1udWxsOyl7dmFyIHQ9ZTtzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppYSg0LHQsdC5yZXR1cm4pLENhKHQpO2JyZWFrO2Nhc2UgMTpOdCh0LHQucmV0dXJuKTt2YXIgYT10LnN0YXRlTm9kZTt0eXBlb2YgYS5jb21wb25lbnRXaWxsVW5tb3VudD09ImZ1bmN0aW9uIiYmb2YodCx0LnJldHVybixhKSxDYSh0KTticmVhaztjYXNlIDI3Om1sKHQuc3RhdGVOb2RlKTtjYXNlIDI2OmNhc2UgNTpOdCh0LHQucmV0dXJuKSxDYSh0KTticmVhaztjYXNlIDIyOnQubWVtb2l6ZWRTdGF0ZT09PW51bGwmJkNhKHQpO2JyZWFrO2Nhc2UgMzA6Q2EodCk7YnJlYWs7ZGVmYXVsdDpDYSh0KX1lPWUuc2libGluZ319ZnVuY3Rpb24gY2EoZSx0LGEpe2ZvcihhPWEmJih0LnN1YnRyZWVGbGFncyY4NzcyKSE9PTAsdD10LmNoaWxkO3QhPT1udWxsOyl7dmFyIG49dC5hbHRlcm5hdGUsbD1lLGk9dCx1PWkuZmxhZ3M7c3dpdGNoKGkudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmNhKGwsaSxhKSxsbCg0LGkpO2JyZWFrO2Nhc2UgMTppZihjYShsLGksYSksbj1pLGw9bi5zdGF0ZU5vZGUsdHlwZW9mIGwuY29tcG9uZW50RGlkTW91bnQ9PSJmdW5jdGlvbiIpdHJ5e2wuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChwKXtfZShuLG4ucmV0dXJuLHApfWlmKG49aSxsPW4udXBkYXRlUXVldWUsbCE9PW51bGwpe3ZhciBjPW4uc3RhdGVOb2RlO3RyeXt2YXIgcj1sLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYociE9PW51bGwpZm9yKGwuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGw9MDtsPHIubGVuZ3RoO2wrKylWcyhyW2xdLGMpfWNhdGNoKHApe19lKG4sbi5yZXR1cm4scCl9fWEmJnUmNjQmJmNmKGkpLGlsKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6ZmYoaSk7Y2FzZSAyNjpjYXNlIDU6Y2EobCxpLGEpLGEmJm49PT1udWxsJiZ1JjQmJnNmKGkpLGlsKGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6Y2EobCxpLGEpO2JyZWFrO2Nhc2UgMTM6Y2EobCxpLGEpLGEmJnUmNCYmdmYobCxpKTticmVhaztjYXNlIDIyOmkubWVtb2l6ZWRTdGF0ZT09PW51bGwmJmNhKGwsaSxhKSxpbChpLGkucmV0dXJuKTticmVhaztjYXNlIDMwOmJyZWFrO2RlZmF1bHQ6Y2EobCxpLGEpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiBNYyhlLHQpe3ZhciBhPW51bGw7ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZSE9PW51bGwmJmUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2whPT1udWxsJiYoYT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGU9bnVsbCx0Lm1lbW9pemVkU3RhdGUhPT1udWxsJiZ0Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCYmKGU9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxlIT09YSYmKGUhPW51bGwmJmUucmVmQ291bnQrKyxhIT1udWxsJiZrbihhKSl9ZnVuY3Rpb24gT2MoZSx0KXtlPW51bGwsdC5hbHRlcm5hdGUhPT1udWxsJiYoZT10LmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSx0IT09ZSYmKHQucmVmQ291bnQrKyxlIT1udWxsJiZrbihlKSl9ZnVuY3Rpb24gTXQoZSx0LGEsbil7aWYodC5zdWJ0cmVlRmxhZ3MmMTAyNTYpZm9yKHQ9dC5jaGlsZDt0IT09bnVsbDspZ2YoZSx0LGEsbiksdD10LnNpYmxpbmd9ZnVuY3Rpb24gZ2YoZSx0LGEsbil7dmFyIGw9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6TXQoZSx0LGEsbiksbCYyMDQ4JiZsbCg5LHQpO2JyZWFrO2Nhc2UgMTpNdChlLHQsYSxuKTticmVhaztjYXNlIDM6TXQoZSx0LGEsbiksbCYyMDQ4JiYoZT1udWxsLHQuYWx0ZXJuYXRlIT09bnVsbCYmKGU9dC5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksdD10Lm1lbW9pemVkU3RhdGUuY2FjaGUsdCE9PWUmJih0LnJlZkNvdW50KyssZSE9bnVsbCYma24oZSkpKTticmVhaztjYXNlIDEyOmlmKGwmMjA0OCl7TXQoZSx0LGEsbiksZT10LnN0YXRlTm9kZTt0cnl7dmFyIGk9dC5tZW1vaXplZFByb3BzLHU9aS5pZCxjPWkub25Qb3N0Q29tbWl0O3R5cGVvZiBjPT0iZnVuY3Rpb24iJiZjKHUsdC5hbHRlcm5hdGU9PT1udWxsPyJtb3VudCI6InVwZGF0ZSIsZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24sLTApfWNhdGNoKHIpe19lKHQsdC5yZXR1cm4scil9fWVsc2UgTXQoZSx0LGEsbik7YnJlYWs7Y2FzZSAxMzpNdChlLHQsYSxuKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6aT10LnN0YXRlTm9kZSx1PXQuYWx0ZXJuYXRlLHQubWVtb2l6ZWRTdGF0ZSE9PW51bGw/aS5fdmlzaWJpbGl0eSYyP010KGUsdCxhLG4pOnVsKGUsdCk6aS5fdmlzaWJpbGl0eSYyP010KGUsdCxhLG4pOihpLl92aXNpYmlsaXR5fD0yLGZuKGUsdCxhLG4sKHQuc3VidHJlZUZsYWdzJjEwMjU2KSE9PTApKSxsJjIwNDgmJk1jKHUsdCk7YnJlYWs7Y2FzZSAyNDpNdChlLHQsYSxuKSxsJjIwNDgmJk9jKHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2RlZmF1bHQ6TXQoZSx0LGEsbil9fWZ1bmN0aW9uIGZuKGUsdCxhLG4sbCl7Zm9yKGw9bCYmKHQuc3VidHJlZUZsYWdzJjEwMjU2KSE9PTAsdD10LmNoaWxkO3QhPT1udWxsOyl7dmFyIGk9ZSx1PXQsYz1hLHI9bixwPXUuZmxhZ3M7c3dpdGNoKHUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmZuKGksdSxjLHIsbCksbGwoOCx1KTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIEE9dS5zdGF0ZU5vZGU7dS5tZW1vaXplZFN0YXRlIT09bnVsbD9BLl92aXNpYmlsaXR5JjI/Zm4oaSx1LGMscixsKTp1bChpLHUpOihBLl92aXNpYmlsaXR5fD0yLGZuKGksdSxjLHIsbCkpLGwmJnAmMjA0OCYmTWModS5hbHRlcm5hdGUsdSk7YnJlYWs7Y2FzZSAyNDpmbihpLHUsYyxyLGwpLGwmJnAmMjA0OCYmT2ModS5hbHRlcm5hdGUsdSk7YnJlYWs7ZGVmYXVsdDpmbihpLHUsYyxyLGwpfXQ9dC5zaWJsaW5nfX1mdW5jdGlvbiB1bChlLHQpe2lmKHQuc3VidHJlZUZsYWdzJjEwMjU2KWZvcih0PXQuY2hpbGQ7dCE9PW51bGw7KXt2YXIgYT1lLG49dCxsPW4uZmxhZ3M7c3dpdGNoKG4udGFnKXtjYXNlIDIyOnVsKGEsbiksbCYyMDQ4JiZNYyhuLmFsdGVybmF0ZSxuKTticmVhaztjYXNlIDI0OnVsKGEsbiksbCYyMDQ4JiZPYyhuLmFsdGVybmF0ZSxuKTticmVhaztkZWZhdWx0OnVsKGEsbil9dD10LnNpYmxpbmd9fXZhciBjbD04MTkyO2Z1bmN0aW9uIGRuKGUpe2lmKGUuc3VidHJlZUZsYWdzJmNsKWZvcihlPWUuY2hpbGQ7ZSE9PW51bGw7KWJmKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGJmKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAyNjpkbihlKSxlLmZsYWdzJmNsJiZlLm1lbW9pemVkU3RhdGUhPT1udWxsJiZUXyhBdCxlLm1lbW9pemVkU3RhdGUsZS5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6ZG4oZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgdD1BdDtBdD1VaShlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxkbihlKSxBdD10O2JyZWFrO2Nhc2UgMjI6ZS5tZW1vaXplZFN0YXRlPT09bnVsbCYmKHQ9ZS5hbHRlcm5hdGUsdCE9PW51bGwmJnQubWVtb2l6ZWRTdGF0ZSE9PW51bGw/KHQ9Y2wsY2w9MTY3NzcyMTYsZG4oZSksY2w9dCk6ZG4oZSkpO2JyZWFrO2RlZmF1bHQ6ZG4oZSl9fWZ1bmN0aW9uIFNmKGUpe3ZhciB0PWUuYWx0ZXJuYXRlO2lmKHQhPT1udWxsJiYoZT10LmNoaWxkLGUhPT1udWxsKSl7dC5jaGlsZD1udWxsO2RvIHQ9ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9dDt3aGlsZShlIT09bnVsbCl9fWZ1bmN0aW9uIG9sKGUpe3ZhciB0PWUuZGVsZXRpb25zO2lmKChlLmZsYWdzJjE2KSE9PTApe2lmKHQhPT1udWxsKWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbj10W2FdO1llPW4sRWYobixlKX1TZihlKX1pZihlLnN1YnRyZWVGbGFncyYxMDI1Nilmb3IoZT1lLmNoaWxkO2UhPT1udWxsOylUZihlKSxlPWUuc2libGluZ31mdW5jdGlvbiBUZihlKXtzd2l0Y2goZS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6b2woZSksZS5mbGFncyYyMDQ4JiZpYSg5LGUsZS5yZXR1cm4pO2JyZWFrO2Nhc2UgMzpvbChlKTticmVhaztjYXNlIDEyOm9sKGUpO2JyZWFrO2Nhc2UgMjI6dmFyIHQ9ZS5zdGF0ZU5vZGU7ZS5tZW1vaXplZFN0YXRlIT09bnVsbCYmdC5fdmlzaWJpbGl0eSYyJiYoZS5yZXR1cm49PT1udWxsfHxlLnJldHVybi50YWchPT0xMyk/KHQuX3Zpc2liaWxpdHkmPS0zLFNpKGUpKTpvbChlKTticmVhaztkZWZhdWx0Om9sKGUpfX1mdW5jdGlvbiBTaShlKXt2YXIgdD1lLmRlbGV0aW9ucztpZigoZS5mbGFncyYxNikhPT0wKXtpZih0IT09bnVsbClmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG49dFthXTtZZT1uLEVmKG4sZSl9U2YoZSl9Zm9yKGU9ZS5jaGlsZDtlIT09bnVsbDspe3N3aXRjaCh0PWUsdC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWEoOCx0LHQucmV0dXJuKSxTaSh0KTticmVhaztjYXNlIDIyOmE9dC5zdGF0ZU5vZGUsYS5fdmlzaWJpbGl0eSYyJiYoYS5fdmlzaWJpbGl0eSY9LTMsU2kodCkpO2JyZWFrO2RlZmF1bHQ6U2kodCl9ZT1lLnNpYmxpbmd9fWZ1bmN0aW9uIEVmKGUsdCl7Zm9yKDtZZSE9PW51bGw7KXt2YXIgYT1ZZTtzd2l0Y2goYS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWEoOCxhLHQpO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyMjppZihhLm1lbW9pemVkU3RhdGUhPT1udWxsJiZhLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sIT09bnVsbCl7dmFyIG49YS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sO24hPW51bGwmJm4ucmVmQ291bnQrK31icmVhaztjYXNlIDI0OmtuKGEubWVtb2l6ZWRTdGF0ZS5jYWNoZSl9aWYobj1hLmNoaWxkLG4hPT1udWxsKW4ucmV0dXJuPWEsWWU9bjtlbHNlIGU6Zm9yKGE9ZTtZZSE9PW51bGw7KXtuPVllO3ZhciBsPW4uc2libGluZyxpPW4ucmV0dXJuO2lmKG1mKG4pLG49PT1hKXtZZT1udWxsO2JyZWFrIGV9aWYobCE9PW51bGwpe2wucmV0dXJuPWksWWU9bDticmVhayBlfVllPWl9fX12YXIgQm09e2dldENhY2hlRm9yVHlwZTpmdW5jdGlvbihlKXt2YXIgdD1WZShVZSksYT10LmRhdGEuZ2V0KGUpO3JldHVybiBhPT09dm9pZCAwJiYoYT1lKCksdC5kYXRhLnNldChlLGEpKSxhfX0sWW09dHlwZW9mIFdlYWtNYXA9PSJmdW5jdGlvbiI/V2Vha01hcDpNYXAsb2U9MCx5ZT1udWxsLFA9bnVsbCx0ZT0wLHNlPTAscnQ9bnVsbCxvYT0hMSxobj0hMSx3Yz0hMSxWdD0wLEFlPTAsc2E9MCxxYT0wLFVjPTAsYnQ9MCxtbj0wLHNsPW51bGwsZXQ9bnVsbCxDYz0hMSxxYz0wLFRpPTEvMCxFaT1udWxsLHJhPW51bGwsWGU9MCxmYT1udWxsLF9uPW51bGwsdm49MCxqYz0wLEhjPW51bGwsQWY9bnVsbCxybD0wLEJjPW51bGw7ZnVuY3Rpb24gZnQoKXtpZigob2UmMikhPT0wJiZ0ZSE9PTApcmV0dXJuIHRlJi10ZTtpZih4LlQhPT1udWxsKXt2YXIgZT1hbjtyZXR1cm4gZSE9PTA/ZTpaYygpfXJldHVybiBZbygpfWZ1bmN0aW9uIHhmKCl7YnQ9PT0wJiYoYnQ9KHRlJjUzNjg3MDkxMik9PT0wfHx1ZT9xbygpOjUzNjg3MDkxMik7dmFyIGU9Z3QuY3VycmVudDtyZXR1cm4gZSE9PW51bGwmJihlLmZsYWdzfD0zMiksYnR9ZnVuY3Rpb24gZHQoZSx0LGEpeyhlPT09eWUmJihzZT09PTJ8fHNlPT09OSl8fGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGwpJiYoeW4oZSwwKSxkYShlLHRlLGJ0LCExKSksRG4oZSxhKSwoKG9lJjIpPT09MHx8ZSE9PXllKSYmKGU9PT15ZSYmKChvZSYyKT09PTAmJihxYXw9YSksQWU9PT00JiZkYShlLHRlLGJ0LCExKSksT3QoZSkpfWZ1bmN0aW9uIHpmKGUsdCxhKXtpZigob2UmNikhPT0wKXRocm93IEVycm9yKHMoMzI3KSk7dmFyIG49IWEmJih0JjEyNCk9PT0wJiYodCZlLmV4cGlyZWRMYW5lcyk9PT0wfHxSbihlLHQpLGw9bj9YbShlLHQpOkdjKGUsdCwhMCksaT1uO2Rve2lmKGw9PT0wKXtobiYmIW4mJmRhKGUsdCwwLCExKTticmVha31lbHNle2lmKGE9ZS5jdXJyZW50LmFsdGVybmF0ZSxpJiYhTG0oYSkpe2w9R2MoZSx0LCExKSxpPSExO2NvbnRpbnVlfWlmKGw9PT0yKXtpZihpPXQsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyZpKXZhciB1PTA7ZWxzZSB1PWUucGVuZGluZ0xhbmVzJi01MzY4NzA5MTMsdT11IT09MD91OnUmNTM2ODcwOTEyPzUzNjg3MDkxMjowO2lmKHUhPT0wKXt0PXU7ZTp7dmFyIGM9ZTtsPXNsO3ZhciByPWMuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZDtpZihyJiYoeW4oYyx1KS5mbGFnc3w9MjU2KSx1PUdjKGMsdSwhMSksdSE9PTIpe2lmKHdjJiYhcil7Yy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lc3w9aSxxYXw9aSxsPTQ7YnJlYWsgZX1pPWV0LGV0PWwsaSE9PW51bGwmJihldD09PW51bGw/ZXQ9aTpldC5wdXNoLmFwcGx5KGV0LGkpKX1sPXV9aWYoaT0hMSxsIT09Miljb250aW51ZX19aWYobD09PTEpe3luKGUsMCksZGEoZSx0LDAsITApO2JyZWFrfWU6e3N3aXRjaChuPWUsaT1sLGkpe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IocygzNDUpKTtjYXNlIDQ6aWYoKHQmNDE5NDA0OCkhPT10KWJyZWFrO2Nhc2UgNjpkYShuLHQsYnQsIW9hKTticmVhayBlO2Nhc2UgMjpldD1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDMyOSkpfWlmKCh0JjYyOTE0NTYwKT09PXQmJihsPXFjKzMwMC16dCgpLDEwPGwpKXtpZihkYShuLHQsYnQsIW9hKSxDbChuLDAsITApIT09MClicmVhayBlO24udGltZW91dEhhbmRsZT10ZChSZi5iaW5kKG51bGwsbixhLGV0LEVpLENjLHQsYnQscWEsbW4sb2EsaSwyLC0wLDApLGwpO2JyZWFrIGV9UmYobixhLGV0LEVpLENjLHQsYnQscWEsbW4sb2EsaSwwLC0wLDApfX1icmVha313aGlsZSghMCk7T3QoZSl9ZnVuY3Rpb24gUmYoZSx0LGEsbixsLGksdSxjLHIscCxBLFIsZyxiKXtpZihlLnRpbWVvdXRIYW5kbGU9LTEsUj10LnN1YnRyZWVGbGFncywoUiY4MTkyfHwoUiYxNjc4NTQwOCk9PT0xNjc4NTQwOCkmJih5bD17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLHVuc3VzcGVuZDpTX30sYmYodCksUj1FXygpLFIhPT1udWxsKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PVIoQ2YuYmluZChudWxsLGUsdCxpLGEsbixsLHUsYyxyLEEsMSxnLGIpKSxkYShlLGksdSwhcCk7cmV0dXJufUNmKGUsdCxpLGEsbixsLHUsYyxyKX1mdW5jdGlvbiBMbShlKXtmb3IodmFyIHQ9ZTs7KXt2YXIgYT10LnRhZztpZigoYT09PTB8fGE9PT0xMXx8YT09PTE1KSYmdC5mbGFncyYxNjM4NCYmKGE9dC51cGRhdGVRdWV1ZSxhIT09bnVsbCYmKGE9YS5zdG9yZXMsYSE9PW51bGwpKSlmb3IodmFyIG49MDtuPGEubGVuZ3RoO24rKyl7dmFyIGw9YVtuXSxpPWwuZ2V0U25hcHNob3Q7bD1sLnZhbHVlO3RyeXtpZighdXQoaSgpLGwpKXJldHVybiExfWNhdGNoe3JldHVybiExfX1pZihhPXQuY2hpbGQsdC5zdWJ0cmVlRmxhZ3MmMTYzODQmJmEhPT1udWxsKWEucmV0dXJuPXQsdD1hO2Vsc2V7aWYodD09PWUpYnJlYWs7Zm9yKDt0LnNpYmxpbmc9PT1udWxsOyl7aWYodC5yZXR1cm49PT1udWxsfHx0LnJldHVybj09PWUpcmV0dXJuITA7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfX1yZXR1cm4hMH1mdW5jdGlvbiBkYShlLHQsYSxuKXt0Jj1+VWMsdCY9fnFhLGUuc3VzcGVuZGVkTGFuZXN8PXQsZS5waW5nZWRMYW5lcyY9fnQsbiYmKGUud2FybUxhbmVzfD10KSxuPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbD10OzA8bDspe3ZhciBpPTMxLWl0KGwpLHU9MTw8aTtuW2ldPS0xLGwmPX51fWEhPT0wJiZIbyhlLGEsdCl9ZnVuY3Rpb24gQWkoKXtyZXR1cm4ob2UmNik9PT0wPyhmbCgwKSwhMSk6ITB9ZnVuY3Rpb24gWWMoKXtpZihQIT09bnVsbCl7aWYoc2U9PT0wKXZhciBlPVAucmV0dXJuO2Vsc2UgZT1QLEJ0PU5hPW51bGwsYWMoZSksc249bnVsbCx0bD0wLGU9UDtmb3IoO2UhPT1udWxsOyl1ZihlLmFsdGVybmF0ZSxlKSxlPWUucmV0dXJuO1A9bnVsbH19ZnVuY3Rpb24geW4oZSx0KXt2YXIgYT1lLnRpbWVvdXRIYW5kbGU7YSE9PS0xJiYoZS50aW1lb3V0SGFuZGxlPS0xLGxfKGEpKSxhPWUuY2FuY2VsUGVuZGluZ0NvbW1pdCxhIT09bnVsbCYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLGEoKSksWWMoKSx5ZT1lLFA9YT1xdChlLmN1cnJlbnQsbnVsbCksdGU9dCxzZT0wLHJ0PW51bGwsb2E9ITEsaG49Um4oZSx0KSx3Yz0hMSxtbj1idD1VYz1xYT1zYT1BZT0wLGV0PXNsPW51bGwsQ2M9ITEsKHQmOCkhPT0wJiYodHw9dCYzMik7dmFyIG49ZS5lbnRhbmdsZWRMYW5lcztpZihuIT09MClmb3IoZT1lLmVudGFuZ2xlbWVudHMsbiY9dDswPG47KXt2YXIgbD0zMS1pdChuKSxpPTE8PGw7dHw9ZVtsXSxuJj1+aX1yZXR1cm4gVnQ9dCxWbCgpLGF9ZnVuY3Rpb24gRGYoZSx0KXtKPW51bGwseC5IPWZpLHQ9PT1Wbnx8dD09PXRpPyh0PWtzKCksc2U9Myk6dD09PUdzPyh0PWtzKCksc2U9NCk6c2U9dD09PVpyPzg6dCE9PW51bGwmJnR5cGVvZiB0PT0ib2JqZWN0IiYmdHlwZW9mIHQudGhlbj09ImZ1bmN0aW9uIj82OjEscnQ9dCxQPT09bnVsbCYmKEFlPTEsdmkoZSxfdCh0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBOZigpe3ZhciBlPXguSDtyZXR1cm4geC5IPWZpLGU9PT1udWxsP2ZpOmV9ZnVuY3Rpb24gTWYoKXt2YXIgZT14LkE7cmV0dXJuIHguQT1CbSxlfWZ1bmN0aW9uIExjKCl7QWU9NCxvYXx8KHRlJjQxOTQwNDgpIT09dGUmJmd0LmN1cnJlbnQhPT1udWxsfHwoaG49ITApLChzYSYxMzQyMTc3MjcpPT09MCYmKHFhJjEzNDIxNzcyNyk9PT0wfHx5ZT09PW51bGx8fGRhKHllLHRlLGJ0LCExKX1mdW5jdGlvbiBHYyhlLHQsYSl7dmFyIG49b2U7b2V8PTI7dmFyIGw9TmYoKSxpPU1mKCk7KHllIT09ZXx8dGUhPT10KSYmKEVpPW51bGwseW4oZSx0KSksdD0hMTt2YXIgdT1BZTtlOmRvIHRyeXtpZihzZSE9PTAmJlAhPT1udWxsKXt2YXIgYz1QLHI9cnQ7c3dpdGNoKHNlKXtjYXNlIDg6WWMoKSx1PTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6Z3QuY3VycmVudD09PW51bGwmJih0PSEwKTt2YXIgcD1zZTtpZihzZT0wLHJ0PW51bGwscG4oZSxjLHIscCksYSYmaG4pe3U9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6cD1zZSxzZT0wLHJ0PW51bGwscG4oZSxjLHIscCl9fUdtKCksdT1BZTticmVha31jYXRjaChBKXtEZihlLEEpfXdoaWxlKCEwKTtyZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssQnQ9TmE9bnVsbCxvZT1uLHguSD1sLHguQT1pLFA9PT1udWxsJiYoeWU9bnVsbCx0ZT0wLFZsKCkpLHV9ZnVuY3Rpb24gR20oKXtmb3IoO1AhPT1udWxsOylPZihQKX1mdW5jdGlvbiBYbShlLHQpe3ZhciBhPW9lO29lfD0yO3ZhciBuPU5mKCksbD1NZigpO3llIT09ZXx8dGUhPT10PyhFaT1udWxsLFRpPXp0KCkrNTAwLHluKGUsdCkpOmhuPVJuKGUsdCk7ZTpkbyB0cnl7aWYoc2UhPT0wJiZQIT09bnVsbCl7dD1QO3ZhciBpPXJ0O3Q6c3dpdGNoKHNlKXtjYXNlIDE6c2U9MCxydD1udWxsLHBuKGUsdCxpLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYoWHMoaSkpe3NlPTAscnQ9bnVsbCx3Zih0KTticmVha310PWZ1bmN0aW9uKCl7c2UhPT0yJiZzZSE9PTl8fHllIT09ZXx8KHNlPTcpLE90KGUpfSxpLnRoZW4odCx0KTticmVhayBlO2Nhc2UgMzpzZT03O2JyZWFrIGU7Y2FzZSA0OnNlPTU7YnJlYWsgZTtjYXNlIDc6WHMoaSk/KHNlPTAscnQ9bnVsbCx3Zih0KSk6KHNlPTAscnQ9bnVsbCxwbihlLHQsaSw3KSk7YnJlYWs7Y2FzZSA1OnZhciB1PW51bGw7c3dpdGNoKFAudGFnKXtjYXNlIDI2OnU9UC5tZW1vaXplZFN0YXRlO2Nhc2UgNTpjYXNlIDI3OnZhciBjPVA7aWYoIXV8fGhkKHUpKXtzZT0wLHJ0PW51bGw7dmFyIHI9Yy5zaWJsaW5nO2lmKHIhPT1udWxsKVA9cjtlbHNle3ZhciBwPWMucmV0dXJuO3AhPT1udWxsPyhQPXAseGkocCkpOlA9bnVsbH1icmVhayB0fX1zZT0wLHJ0PW51bGwscG4oZSx0LGksNSk7YnJlYWs7Y2FzZSA2OnNlPTAscnQ9bnVsbCxwbihlLHQsaSw2KTticmVhaztjYXNlIDg6WWMoKSxBZT02O2JyZWFrIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihzKDQ2MikpfX1RbSgpO2JyZWFrfWNhdGNoKEEpe0RmKGUsQSl9d2hpbGUoITApO3JldHVybiBCdD1OYT1udWxsLHguSD1uLHguQT1sLG9lPWEsUCE9PW51bGw/MDooeWU9bnVsbCx0ZT0wLFZsKCksQWUpfWZ1bmN0aW9uIFFtKCl7Zm9yKDtQIT09bnVsbCYmIWZoKCk7KU9mKFApfWZ1bmN0aW9uIE9mKGUpe3ZhciB0PW5mKGUuYWx0ZXJuYXRlLGUsVnQpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyx0PT09bnVsbD94aShlKTpQPXR9ZnVuY3Rpb24gd2YoZSl7dmFyIHQ9ZSxhPXQuYWx0ZXJuYXRlO3N3aXRjaCh0LnRhZyl7Y2FzZSAxNTpjYXNlIDA6dD1GcihhLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLHZvaWQgMCx0ZSk7YnJlYWs7Y2FzZSAxMTp0PUZyKGEsdCx0LnBlbmRpbmdQcm9wcyx0LnR5cGUucmVuZGVyLHQucmVmLHRlKTticmVhaztjYXNlIDU6YWModCk7ZGVmYXVsdDp1ZihhLHQpLHQ9UD13cyh0LFZ0KSx0PW5mKGEsdCxWdCl9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLHQ9PT1udWxsP3hpKGUpOlA9dH1mdW5jdGlvbiBwbihlLHQsYSxuKXtCdD1OYT1udWxsLGFjKHQpLHNuPW51bGwsdGw9MDt2YXIgbD10LnJldHVybjt0cnl7aWYod20oZSxsLHQsYSx0ZSkpe0FlPTEsdmkoZSxfdChhLGUuY3VycmVudCkpLFA9bnVsbDtyZXR1cm59fWNhdGNoKGkpe2lmKGwhPT1udWxsKXRocm93IFA9bCxpO0FlPTEsdmkoZSxfdChhLGUuY3VycmVudCkpLFA9bnVsbDtyZXR1cm59dC5mbGFncyYzMjc2OD8odWV8fG49PT0xP2U9ITA6aG58fCh0ZSY1MzY4NzA5MTIpIT09MD9lPSExOihvYT1lPSEwLChuPT09Mnx8bj09PTl8fG49PT0zfHxuPT09NikmJihuPWd0LmN1cnJlbnQsbiE9PW51bGwmJm4udGFnPT09MTMmJihuLmZsYWdzfD0xNjM4NCkpKSxVZih0LGUpKTp4aSh0KX1mdW5jdGlvbiB4aShlKXt2YXIgdD1lO2Rve2lmKCh0LmZsYWdzJjMyNzY4KSE9PTApe1VmKHQsb2EpO3JldHVybn1lPXQucmV0dXJuO3ZhciBhPUNtKHQuYWx0ZXJuYXRlLHQsVnQpO2lmKGEhPT1udWxsKXtQPWE7cmV0dXJufWlmKHQ9dC5zaWJsaW5nLHQhPT1udWxsKXtQPXQ7cmV0dXJufVA9dD1lfXdoaWxlKHQhPT1udWxsKTtBZT09PTAmJihBZT01KX1mdW5jdGlvbiBVZihlLHQpe2Rve3ZhciBhPXFtKGUuYWx0ZXJuYXRlLGUpO2lmKGEhPT1udWxsKXthLmZsYWdzJj0zMjc2NyxQPWE7cmV0dXJufWlmKGE9ZS5yZXR1cm4sYSE9PW51bGwmJihhLmZsYWdzfD0zMjc2OCxhLnN1YnRyZWVGbGFncz0wLGEuZGVsZXRpb25zPW51bGwpLCF0JiYoZT1lLnNpYmxpbmcsZSE9PW51bGwpKXtQPWU7cmV0dXJufVA9ZT1hfXdoaWxlKGUhPT1udWxsKTtBZT02LFA9bnVsbH1mdW5jdGlvbiBDZihlLHQsYSxuLGwsaSx1LGMscil7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGw7ZG8gemkoKTt3aGlsZShYZSE9PTApO2lmKChvZSY2KSE9PTApdGhyb3cgRXJyb3IocygzMjcpKTtpZih0IT09bnVsbCl7aWYodD09PWUuY3VycmVudCl0aHJvdyBFcnJvcihzKDE3NykpO2lmKGk9dC5sYW5lc3x0LmNoaWxkTGFuZXMsaXw9T3UsU2goZSxhLGksdSxjLHIpLGU9PT15ZSYmKFA9eWU9bnVsbCx0ZT0wKSxfbj10LGZhPWUsdm49YSxqYz1pLEhjPWwsQWY9biwodC5zdWJ0cmVlRmxhZ3MmMTAyNTYpIT09MHx8KHQuZmxhZ3MmMTAyNTYpIT09MD8oZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxLbShPbCxmdW5jdGlvbigpe3JldHVybiBZZigpLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLG49KHQuZmxhZ3MmMTM4NzgpIT09MCwodC5zdWJ0cmVlRmxhZ3MmMTM4NzgpIT09MHx8bil7bj14LlQseC5UPW51bGwsbD1DLnAsQy5wPTIsdT1vZSxvZXw9NDt0cnl7am0oZSx0LGEpfWZpbmFsbHl7b2U9dSxDLnA9bCx4LlQ9bn19WGU9MSxxZigpLGpmKCksSGYoKX19ZnVuY3Rpb24gcWYoKXtpZihYZT09PTEpe1hlPTA7dmFyIGU9ZmEsdD1fbixhPSh0LmZsYWdzJjEzODc4KSE9PTA7aWYoKHQuc3VidHJlZUZsYWdzJjEzODc4KSE9PTB8fGEpe2E9eC5ULHguVD1udWxsO3ZhciBuPUMucDtDLnA9Mjt2YXIgbD1vZTtvZXw9NDt0cnl7eWYodCxlKTt2YXIgaT1JYyx1PVRzKGUuY29udGFpbmVySW5mbyksYz1pLmZvY3VzZWRFbGVtLHI9aS5zZWxlY3Rpb25SYW5nZTtpZih1IT09YyYmYyYmYy5vd25lckRvY3VtZW50JiZTcyhjLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGMpKXtpZihyIT09bnVsbCYmenUoYykpe3ZhciBwPXIuc3RhcnQsQT1yLmVuZDtpZihBPT09dm9pZCAwJiYoQT1wKSwic2VsZWN0aW9uU3RhcnQiaW4gYyljLnNlbGVjdGlvblN0YXJ0PXAsYy5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oQSxjLnZhbHVlLmxlbmd0aCk7ZWxzZXt2YXIgUj1jLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LGc9UiYmUi5kZWZhdWx0Vmlld3x8d2luZG93O2lmKGcuZ2V0U2VsZWN0aW9uKXt2YXIgYj1nLmdldFNlbGVjdGlvbigpLGs9Yy50ZXh0Q29udGVudC5sZW5ndGgsRz1NYXRoLm1pbihyLnN0YXJ0LGspLGRlPXIuZW5kPT09dm9pZCAwP0c6TWF0aC5taW4oci5lbmQsayk7IWIuZXh0ZW5kJiZHPmRlJiYodT1kZSxkZT1HLEc9dSk7dmFyIF89YnMoYyxHKSxoPWJzKGMsZGUpO2lmKF8mJmgmJihiLnJhbmdlQ291bnQhPT0xfHxiLmFuY2hvck5vZGUhPT1fLm5vZGV8fGIuYW5jaG9yT2Zmc2V0IT09Xy5vZmZzZXR8fGIuZm9jdXNOb2RlIT09aC5ub2RlfHxiLmZvY3VzT2Zmc2V0IT09aC5vZmZzZXQpKXt2YXIgdj1SLmNyZWF0ZVJhbmdlKCk7di5zZXRTdGFydChfLm5vZGUsXy5vZmZzZXQpLGIucmVtb3ZlQWxsUmFuZ2VzKCksRz5kZT8oYi5hZGRSYW5nZSh2KSxiLmV4dGVuZChoLm5vZGUsaC5vZmZzZXQpKToodi5zZXRFbmQoaC5ub2RlLGgub2Zmc2V0KSxiLmFkZFJhbmdlKHYpKX19fX1mb3IoUj1bXSxiPWM7Yj1iLnBhcmVudE5vZGU7KWIubm9kZVR5cGU9PT0xJiZSLnB1c2goe2VsZW1lbnQ6YixsZWZ0OmIuc2Nyb2xsTGVmdCx0b3A6Yi5zY3JvbGxUb3B9KTtmb3IodHlwZW9mIGMuZm9jdXM9PSJmdW5jdGlvbiImJmMuZm9jdXMoKSxjPTA7YzxSLmxlbmd0aDtjKyspe3ZhciB6PVJbY107ei5lbGVtZW50LnNjcm9sbExlZnQ9ei5sZWZ0LHouZWxlbWVudC5zY3JvbGxUb3A9ei50b3B9fUJpPSEhUGMsSWM9UGM9bnVsbH1maW5hbGx5e29lPWwsQy5wPW4seC5UPWF9fWUuY3VycmVudD10LFhlPTJ9fWZ1bmN0aW9uIGpmKCl7aWYoWGU9PT0yKXtYZT0wO3ZhciBlPWZhLHQ9X24sYT0odC5mbGFncyY4NzcyKSE9PTA7aWYoKHQuc3VidHJlZUZsYWdzJjg3NzIpIT09MHx8YSl7YT14LlQseC5UPW51bGw7dmFyIG49Qy5wO0MucD0yO3ZhciBsPW9lO29lfD00O3RyeXtoZihlLHQuYWx0ZXJuYXRlLHQpfWZpbmFsbHl7b2U9bCxDLnA9bix4LlQ9YX19WGU9M319ZnVuY3Rpb24gSGYoKXtpZihYZT09PTR8fFhlPT09Myl7WGU9MCxkaCgpO3ZhciBlPWZhLHQ9X24sYT12bixuPUFmOyh0LnN1YnRyZWVGbGFncyYxMDI1NikhPT0wfHwodC5mbGFncyYxMDI1NikhPT0wP1hlPTU6KFhlPTAsX249ZmE9bnVsbCxCZihlLGUucGVuZGluZ0xhbmVzKSk7dmFyIGw9ZS5wZW5kaW5nTGFuZXM7aWYobD09PTAmJihyYT1udWxsKSxpdShhKSx0PXQuc3RhdGVOb2RlLGx0JiZ0eXBlb2YgbHQub25Db21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2x0Lm9uQ29tbWl0RmliZXJSb290KHpuLHQsdm9pZCAwLCh0LmN1cnJlbnQuZmxhZ3MmMTI4KT09PTEyOCl9Y2F0Y2h7fWlmKG4hPT1udWxsKXt0PXguVCxsPUMucCxDLnA9Mix4LlQ9bnVsbDt0cnl7Zm9yKHZhciBpPWUub25SZWNvdmVyYWJsZUVycm9yLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGM9blt1XTtpKGMudmFsdWUse2NvbXBvbmVudFN0YWNrOmMuc3RhY2t9KX19ZmluYWxseXt4LlQ9dCxDLnA9bH19KHZuJjMpIT09MCYmemkoKSxPdChlKSxsPWUucGVuZGluZ0xhbmVzLChhJjQxOTQwOTApIT09MCYmKGwmNDIpIT09MD9lPT09QmM/cmwrKzoocmw9MCxCYz1lKTpybD0wLGZsKDApfX1mdW5jdGlvbiBCZihlLHQpeyhlLnBvb2xlZENhY2hlTGFuZXMmPXQpPT09MCYmKHQ9ZS5wb29sZWRDYWNoZSx0IT1udWxsJiYoZS5wb29sZWRDYWNoZT1udWxsLGtuKHQpKSl9ZnVuY3Rpb24gemkoZSl7cmV0dXJuIHFmKCksamYoKSxIZigpLFlmKCl9ZnVuY3Rpb24gWWYoKXtpZihYZSE9PTUpcmV0dXJuITE7dmFyIGU9ZmEsdD1qYztqYz0wO3ZhciBhPWl1KHZuKSxuPXguVCxsPUMucDt0cnl7Qy5wPTMyPmE/MzI6YSx4LlQ9bnVsbCxhPUhjLEhjPW51bGw7dmFyIGk9ZmEsdT12bjtpZihYZT0wLF9uPWZhPW51bGwsdm49MCwob2UmNikhPT0wKXRocm93IEVycm9yKHMoMzMxKSk7dmFyIGM9b2U7aWYob2V8PTQsVGYoaS5jdXJyZW50KSxnZihpLGkuY3VycmVudCx1LGEpLG9lPWMsZmwoMCwhMSksbHQmJnR5cGVvZiBsdC5vblBvc3RDb21taXRGaWJlclJvb3Q9PSJmdW5jdGlvbiIpdHJ5e2x0Lm9uUG9zdENvbW1pdEZpYmVyUm9vdCh6bixpKX1jYXRjaHt9cmV0dXJuITB9ZmluYWxseXtDLnA9bCx4LlQ9bixCZihlLHQpfX1mdW5jdGlvbiBMZihlLHQsYSl7dD1fdChhLHQpLHQ9dmMoZS5zdGF0ZU5vZGUsdCwyKSxlPXRhKGUsdCwyKSxlIT09bnVsbCYmKERuKGUsMiksT3QoZSkpfWZ1bmN0aW9uIF9lKGUsdCxhKXtpZihlLnRhZz09PTMpTGYoZSxlLGEpO2Vsc2UgZm9yKDt0IT09bnVsbDspe2lmKHQudGFnPT09Myl7TGYodCxlLGEpO2JyZWFrfWVsc2UgaWYodC50YWc9PT0xKXt2YXIgbj10LnN0YXRlTm9kZTtpZih0eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcj09ImZ1bmN0aW9uInx8dHlwZW9mIG4uY29tcG9uZW50RGlkQ2F0Y2g9PSJmdW5jdGlvbiImJihyYT09PW51bGx8fCFyYS5oYXMobikpKXtlPV90KGEsZSksYT1RcigyKSxuPXRhKHQsYSwyKSxuIT09bnVsbCYmKGtyKGEsbix0LGUpLERuKG4sMiksT3QobikpO2JyZWFrfX10PXQucmV0dXJufX1mdW5jdGlvbiBYYyhlLHQsYSl7dmFyIG49ZS5waW5nQ2FjaGU7aWYobj09PW51bGwpe249ZS5waW5nQ2FjaGU9bmV3IFltO3ZhciBsPW5ldyBTZXQ7bi5zZXQodCxsKX1lbHNlIGw9bi5nZXQodCksbD09PXZvaWQgMCYmKGw9bmV3IFNldCxuLnNldCh0LGwpKTtsLmhhcyhhKXx8KHdjPSEwLGwuYWRkKGEpLGU9a20uYmluZChudWxsLGUsdCxhKSx0LnRoZW4oZSxlKSl9ZnVuY3Rpb24ga20oZSx0LGEpe3ZhciBuPWUucGluZ0NhY2hlO24hPT1udWxsJiZuLmRlbGV0ZSh0KSxlLnBpbmdlZExhbmVzfD1lLnN1c3BlbmRlZExhbmVzJmEsZS53YXJtTGFuZXMmPX5hLHllPT09ZSYmKHRlJmEpPT09YSYmKEFlPT09NHx8QWU9PT0zJiYodGUmNjI5MTQ1NjApPT09dGUmJjMwMD56dCgpLXFjPyhvZSYyKT09PTAmJnluKGUsMCk6VWN8PWEsbW49PT10ZSYmKG1uPTApKSxPdChlKX1mdW5jdGlvbiBHZihlLHQpe3Q9PT0wJiYodD1qbygpKSxlPVBhKGUsdCksZSE9PW51bGwmJihEbihlLHQpLE90KGUpKX1mdW5jdGlvbiBabShlKXt2YXIgdD1lLm1lbW9pemVkU3RhdGUsYT0wO3QhPT1udWxsJiYoYT10LnJldHJ5TGFuZSksR2YoZSxhKX1mdW5jdGlvbiBWbShlLHQpe3ZhciBhPTA7c3dpdGNoKGUudGFnKXtjYXNlIDEzOnZhciBuPWUuc3RhdGVOb2RlLGw9ZS5tZW1vaXplZFN0YXRlO2whPT1udWxsJiYoYT1sLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpuPWUuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMjI6bj1lLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHMoMzE0KSl9biE9PW51bGwmJm4uZGVsZXRlKHQpLEdmKGUsYSl9ZnVuY3Rpb24gS20oZSx0KXtyZXR1cm4gdHUoZSx0KX12YXIgUmk9bnVsbCxnbj1udWxsLFFjPSExLERpPSExLGtjPSExLGphPTA7ZnVuY3Rpb24gT3QoZSl7ZSE9PWduJiZlLm5leHQ9PT1udWxsJiYoZ249PT1udWxsP1JpPWduPWU6Z249Z24ubmV4dD1lKSxEaT0hMCxRY3x8KFFjPSEwLCRtKCkpfWZ1bmN0aW9uIGZsKGUsdCl7aWYoIWtjJiZEaSl7a2M9ITA7ZG8gZm9yKHZhciBhPSExLG49Umk7biE9PW51bGw7KXtpZihlIT09MCl7dmFyIGw9bi5wZW5kaW5nTGFuZXM7aWYobD09PTApdmFyIGk9MDtlbHNle3ZhciB1PW4uc3VzcGVuZGVkTGFuZXMsYz1uLnBpbmdlZExhbmVzO2k9KDE8PDMxLWl0KDQyfGUpKzEpLTEsaSY9bCZ+KHUmfmMpLGk9aSYyMDEzMjY3NDE/aSYyMDEzMjY3NDF8MTppP2l8MjowfWkhPT0wJiYoYT0hMCxaZihuLGkpKX1lbHNlIGk9dGUsaT1DbChuLG49PT15ZT9pOjAsbi5jYW5jZWxQZW5kaW5nQ29tbWl0IT09bnVsbHx8bi50aW1lb3V0SGFuZGxlIT09LTEpLChpJjMpPT09MHx8Um4obixpKXx8KGE9ITAsWmYobixpKSk7bj1uLm5leHR9d2hpbGUoYSk7a2M9ITF9fWZ1bmN0aW9uIEptKCl7WGYoKX1mdW5jdGlvbiBYZigpe0RpPVFjPSExO3ZhciBlPTA7amEhPT0wJiYobl8oKSYmKGU9amEpLGphPTApO2Zvcih2YXIgdD16dCgpLGE9bnVsbCxuPVJpO24hPT1udWxsOyl7dmFyIGw9bi5uZXh0LGk9UWYobix0KTtpPT09MD8obi5uZXh0PW51bGwsYT09PW51bGw/Umk9bDphLm5leHQ9bCxsPT09bnVsbCYmKGduPWEpKTooYT1uLChlIT09MHx8KGkmMykhPT0wKSYmKERpPSEwKSksbj1sfWZsKGUpfWZ1bmN0aW9uIFFmKGUsdCl7Zm9yKHZhciBhPWUuc3VzcGVuZGVkTGFuZXMsbj1lLnBpbmdlZExhbmVzLGw9ZS5leHBpcmF0aW9uVGltZXMsaT1lLnBlbmRpbmdMYW5lcyYtNjI5MTQ1NjE7MDxpOyl7dmFyIHU9MzEtaXQoaSksYz0xPDx1LHI9bFt1XTtyPT09LTE/KChjJmEpPT09MHx8KGMmbikhPT0wKSYmKGxbdV09YmgoYyx0KSk6cjw9dCYmKGUuZXhwaXJlZExhbmVzfD1jKSxpJj1+Y31pZih0PXllLGE9dGUsYT1DbChlLGU9PT10P2E6MCxlLmNhbmNlbFBlbmRpbmdDb21taXQhPT1udWxsfHxlLnRpbWVvdXRIYW5kbGUhPT0tMSksbj1lLmNhbGxiYWNrTm9kZSxhPT09MHx8ZT09PXQmJihzZT09PTJ8fHNlPT09OSl8fGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGwpcmV0dXJuIG4hPT1udWxsJiZuIT09bnVsbCYmYXUobiksZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MDtpZigoYSYzKT09PTB8fFJuKGUsYSkpe2lmKHQ9YSYtYSx0PT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChuIT09bnVsbCYmYXUobiksaXUoYSkpe2Nhc2UgMjpjYXNlIDg6YT1VbzticmVhaztjYXNlIDMyOmE9T2w7YnJlYWs7Y2FzZSAyNjg0MzU0NTY6YT1DbzticmVhaztkZWZhdWx0OmE9T2x9cmV0dXJuIG49a2YuYmluZChudWxsLGUpLGE9dHUoYSxuKSxlLmNhbGxiYWNrUHJpb3JpdHk9dCxlLmNhbGxiYWNrTm9kZT1hLHR9cmV0dXJuIG4hPT1udWxsJiZuIT09bnVsbCYmYXUobiksZS5jYWxsYmFja1ByaW9yaXR5PTIsZS5jYWxsYmFja05vZGU9bnVsbCwyfWZ1bmN0aW9uIGtmKGUsdCl7aWYoWGUhPT0wJiZYZSE9PTUpcmV0dXJuIGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTAsbnVsbDt2YXIgYT1lLmNhbGxiYWNrTm9kZTtpZih6aSgpJiZlLmNhbGxiYWNrTm9kZSE9PWEpcmV0dXJuIG51bGw7dmFyIG49dGU7cmV0dXJuIG49Q2woZSxlPT09eWU/bjowLGUuY2FuY2VsUGVuZGluZ0NvbW1pdCE9PW51bGx8fGUudGltZW91dEhhbmRsZSE9PS0xKSxuPT09MD9udWxsOih6ZihlLG4sdCksUWYoZSx6dCgpKSxlLmNhbGxiYWNrTm9kZSE9bnVsbCYmZS5jYWxsYmFja05vZGU9PT1hP2tmLmJpbmQobnVsbCxlKTpudWxsKX1mdW5jdGlvbiBaZihlLHQpe2lmKHppKCkpcmV0dXJuIG51bGw7emYoZSx0LCEwKX1mdW5jdGlvbiAkbSgpe2lfKGZ1bmN0aW9uKCl7KG9lJjYpIT09MD90dSh3byxKbSk6WGYoKX0pfWZ1bmN0aW9uIFpjKCl7cmV0dXJuIGphPT09MCYmKGphPXFvKCkpLGphfWZ1bmN0aW9uIFZmKGUpe3JldHVybiBlPT1udWxsfHx0eXBlb2YgZT09InN5bWJvbCJ8fHR5cGVvZiBlPT0iYm9vbGVhbiI/bnVsbDp0eXBlb2YgZT09ImZ1bmN0aW9uIj9lOllsKCIiK2UpfWZ1bmN0aW9uIEtmKGUsdCl7dmFyIGE9dC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7cmV0dXJuIGEubmFtZT10Lm5hbWUsYS52YWx1ZT10LnZhbHVlLGUuaWQmJmEuc2V0QXR0cmlidXRlKCJmb3JtIixlLmlkKSx0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdCksZT1uZXcgRm9ybURhdGEoZSksYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpLGV9ZnVuY3Rpb24gV20oZSx0LGEsbixsKXtpZih0PT09InN1Ym1pdCImJmEmJmEuc3RhdGVOb2RlPT09bCl7dmFyIGk9VmYoKGxbV2VdfHxudWxsKS5hY3Rpb24pLHU9bi5zdWJtaXR0ZXI7dSYmKHQ9KHQ9dVtXZV18fG51bGwpP1ZmKHQuZm9ybUFjdGlvbik6dS5nZXRBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSx0IT09bnVsbCYmKGk9dCx1PW51bGwpKTt2YXIgYz1uZXcgUWwoImFjdGlvbiIsImFjdGlvbiIsbnVsbCxuLGwpO2UucHVzaCh7ZXZlbnQ6YyxsaXN0ZW5lcnM6W3tpbnN0YW5jZTpudWxsLGxpc3RlbmVyOmZ1bmN0aW9uKCl7aWYobi5kZWZhdWx0UHJldmVudGVkKXtpZihqYSE9PTApe3ZhciByPXU/S2YobCx1KTpuZXcgRm9ybURhdGEobCk7ZmMoYSx7cGVuZGluZzohMCxkYXRhOnIsbWV0aG9kOmwubWV0aG9kLGFjdGlvbjppfSxudWxsLHIpfX1lbHNlIHR5cGVvZiBpPT0iZnVuY3Rpb24iJiYoYy5wcmV2ZW50RGVmYXVsdCgpLHI9dT9LZihsLHUpOm5ldyBGb3JtRGF0YShsKSxmYyhhLHtwZW5kaW5nOiEwLGRhdGE6cixtZXRob2Q6bC5tZXRob2QsYWN0aW9uOml9LGkscikpfSxjdXJyZW50VGFyZ2V0Omx9XX0pfX1mb3IodmFyIFZjPTA7VmM8TXUubGVuZ3RoO1ZjKyspe3ZhciBLYz1NdVtWY10sRm09S2MudG9Mb3dlckNhc2UoKSxQbT1LY1swXS50b1VwcGVyQ2FzZSgpK0tjLnNsaWNlKDEpO0V0KEZtLCJvbiIrUG0pfUV0KHhzLCJvbkFuaW1hdGlvbkVuZCIpLEV0KHpzLCJvbkFuaW1hdGlvbkl0ZXJhdGlvbiIpLEV0KFJzLCJvbkFuaW1hdGlvblN0YXJ0IiksRXQoImRibGNsaWNrIiwib25Eb3VibGVDbGljayIpLEV0KCJmb2N1c2luIiwib25Gb2N1cyIpLEV0KCJmb2N1c291dCIsIm9uQmx1ciIpLEV0KF9tLCJvblRyYW5zaXRpb25SdW4iKSxFdCh2bSwib25UcmFuc2l0aW9uU3RhcnQiKSxFdCh5bSwib25UcmFuc2l0aW9uQ2FuY2VsIiksRXQoRHMsIm9uVHJhbnNpdGlvbkVuZCIpLFhhKCJvbk1vdXNlRW50ZXIiLFsibW91c2VvdXQiLCJtb3VzZW92ZXIiXSksWGEoIm9uTW91c2VMZWF2ZSIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxYYSgib25Qb2ludGVyRW50ZXIiLFsicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIl0pLFhhKCJvblBvaW50ZXJMZWF2ZSIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksYmEoIm9uQ2hhbmdlIiwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2UiLnNwbGl0KCIgIikpLGJhKCJvblNlbGVjdCIsImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksYmEoIm9uQmVmb3JlSW5wdXQiLFsiY29tcG9zaXRpb25lbmQiLCJrZXlwcmVzcyIsInRleHRJbnB1dCIsInBhc3RlIl0pLGJhKCJvbkNvbXBvc2l0aW9uRW5kIiwiY29tcG9zaXRpb25lbmQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLGJhKCJvbkNvbXBvc2l0aW9uU3RhcnQiLCJjb21wb3NpdGlvbnN0YXJ0IGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKSxiYSgib25Db21wb3NpdGlvblVwZGF0ZSIsImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duIi5zcGxpdCgiICIpKTt2YXIgZGw9ImFib3J0IGNhbnBsYXkgY2FucGxheXRocm91Z2ggZHVyYXRpb25jaGFuZ2UgZW1wdGllZCBlbmNyeXB0ZWQgZW5kZWQgZXJyb3IgbG9hZGVkZGF0YSBsb2FkZWRtZXRhZGF0YSBsb2Fkc3RhcnQgcGF1c2UgcGxheSBwbGF5aW5nIHByb2dyZXNzIHJhdGVjaGFuZ2UgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VzcGVuZCB0aW1ldXBkYXRlIHZvbHVtZWNoYW5nZSB3YWl0aW5nIi5zcGxpdCgiICIpLEltPW5ldyBTZXQoImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlIi5zcGxpdCgiICIpLmNvbmNhdChkbCkpO2Z1bmN0aW9uIEpmKGUsdCl7dD0odCY0KSE9PTA7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBuPWVbYV0sbD1uLmV2ZW50O249bi5saXN0ZW5lcnM7ZTp7dmFyIGk9dm9pZCAwO2lmKHQpZm9yKHZhciB1PW4ubGVuZ3RoLTE7MDw9dTt1LS0pe3ZhciBjPW5bdV0scj1jLmluc3RhbmNlLHA9Yy5jdXJyZW50VGFyZ2V0O2lmKGM9Yy5saXN0ZW5lcixyIT09aSYmbC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7aT1jLGwuY3VycmVudFRhcmdldD1wO3RyeXtpKGwpfWNhdGNoKEEpe19pKEEpfWwuY3VycmVudFRhcmdldD1udWxsLGk9cn1lbHNlIGZvcih1PTA7dTxuLmxlbmd0aDt1Kyspe2lmKGM9blt1XSxyPWMuaW5zdGFuY2UscD1jLmN1cnJlbnRUYXJnZXQsYz1jLmxpc3RlbmVyLHIhPT1pJiZsLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTtpPWMsbC5jdXJyZW50VGFyZ2V0PXA7dHJ5e2kobCl9Y2F0Y2goQSl7X2koQSl9bC5jdXJyZW50VGFyZ2V0PW51bGwsaT1yfX19fWZ1bmN0aW9uIEkoZSx0KXt2YXIgYT10W3V1XTthPT09dm9pZCAwJiYoYT10W3V1XT1uZXcgU2V0KTt2YXIgbj1lKyJfX2J1YmJsZSI7YS5oYXMobil8fCgkZih0LGUsMiwhMSksYS5hZGQobikpfWZ1bmN0aW9uIEpjKGUsdCxhKXt2YXIgbj0wO3QmJihufD00KSwkZihhLGUsbix0KX12YXIgTmk9Il9yZWFjdExpc3RlbmluZyIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMik7ZnVuY3Rpb24gJGMoZSl7aWYoIWVbTmldKXtlW05pXT0hMCxHby5mb3JFYWNoKGZ1bmN0aW9uKGEpe2EhPT0ic2VsZWN0aW9uY2hhbmdlIiYmKEltLmhhcyhhKXx8SmMoYSwhMSxlKSxKYyhhLCEwLGUpKX0pO3ZhciB0PWUubm9kZVR5cGU9PT05P2U6ZS5vd25lckRvY3VtZW50O3Q9PT1udWxsfHx0W05pXXx8KHRbTmldPSEwLEpjKCJzZWxlY3Rpb25jaGFuZ2UiLCExLHQpKX19ZnVuY3Rpb24gJGYoZSx0LGEsbil7c3dpdGNoKGdkKHQpKXtjYXNlIDI6dmFyIGw9el87YnJlYWs7Y2FzZSA4Omw9Ul87YnJlYWs7ZGVmYXVsdDpsPXNvfWE9bC5iaW5kKG51bGwsdCxhLGUpLGw9dm9pZCAwLCF5dXx8dCE9PSJ0b3VjaHN0YXJ0IiYmdCE9PSJ0b3VjaG1vdmUiJiZ0IT09IndoZWVsInx8KGw9ITApLG4/bCE9PXZvaWQgMD9lLmFkZEV2ZW50TGlzdGVuZXIodCxhLHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LGEsITApOmwhPT12b2lkIDA/ZS5hZGRFdmVudExpc3RlbmVyKHQsYSx7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsYSwhMSl9ZnVuY3Rpb24gV2MoZSx0LGEsbixsKXt2YXIgaT1uO2lmKCh0JjEpPT09MCYmKHQmMik9PT0wJiZuIT09bnVsbCllOmZvcig7Oyl7aWYobj09PW51bGwpcmV0dXJuO3ZhciB1PW4udGFnO2lmKHU9PT0zfHx1PT09NCl7dmFyIGM9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztpZihjPT09bClicmVhaztpZih1PT09NClmb3IodT1uLnJldHVybjt1IT09bnVsbDspe3ZhciByPXUudGFnO2lmKChyPT09M3x8cj09PTQpJiZ1LnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09bClyZXR1cm47dT11LnJldHVybn1mb3IoO2MhPT1udWxsOyl7aWYodT1ZYShjKSx1PT09bnVsbClyZXR1cm47aWYocj11LnRhZyxyPT09NXx8cj09PTZ8fHI9PT0yNnx8cj09PTI3KXtuPWk9dTtjb250aW51ZSBlfWM9Yy5wYXJlbnROb2RlfX1uPW4ucmV0dXJufXRzKGZ1bmN0aW9uKCl7dmFyIHA9aSxBPV91KGEpLFI9W107ZTp7dmFyIGc9TnMuZ2V0KGUpO2lmKGchPT12b2lkIDApe3ZhciBiPVFsLGs9ZTtzd2l0Y2goZSl7Y2FzZSJrZXlwcmVzcyI6aWYoR2woYSk9PT0wKWJyZWFrIGU7Y2FzZSJrZXlkb3duIjpjYXNlImtleXVwIjpiPUtoO2JyZWFrO2Nhc2UiZm9jdXNpbiI6az0iZm9jdXMiLGI9U3U7YnJlYWs7Y2FzZSJmb2N1c291dCI6az0iYmx1ciIsYj1TdTticmVhaztjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpiPVN1O2JyZWFrO2Nhc2UiY2xpY2siOmlmKGEuYnV0dG9uPT09MilicmVhayBlO2Nhc2UiYXV4Y2xpY2siOmNhc2UiZGJsY2xpY2siOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZXVwIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJjb250ZXh0bWVudSI6Yj1sczticmVhaztjYXNlImRyYWciOmNhc2UiZHJhZ2VuZCI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpiPXFoO2JyZWFrO2Nhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2htb3ZlIjpjYXNlInRvdWNoc3RhcnQiOmI9V2g7YnJlYWs7Y2FzZSB4czpjYXNlIHpzOmNhc2UgUnM6Yj1CaDticmVhaztjYXNlIERzOmI9UGg7YnJlYWs7Y2FzZSJzY3JvbGwiOmNhc2Uic2Nyb2xsZW5kIjpiPVVoO2JyZWFrO2Nhc2Uid2hlZWwiOmI9ZW07YnJlYWs7Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJwYXN0ZSI6Yj1MaDticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJtb3ZlIjpjYXNlInBvaW50ZXJvdXQiOmNhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcnVwIjpiPXVzO2JyZWFrO2Nhc2UidG9nZ2xlIjpjYXNlImJlZm9yZXRvZ2dsZSI6Yj1hbX12YXIgRz0odCY0KSE9PTAsZGU9IUcmJihlPT09InNjcm9sbCJ8fGU9PT0ic2Nyb2xsZW5kIiksXz1HP2chPT1udWxsP2crIkNhcHR1cmUiOm51bGw6ZztHPVtdO2Zvcih2YXIgaD1wLHY7aCE9PW51bGw7KXt2YXIgej1oO2lmKHY9ei5zdGF0ZU5vZGUsej16LnRhZyx6IT09NSYmeiE9PTI2JiZ6IT09Mjd8fHY9PT1udWxsfHxfPT09bnVsbHx8KHo9T24oaCxfKSx6IT1udWxsJiZHLnB1c2goaGwoaCx6LHYpKSksZGUpYnJlYWs7aD1oLnJldHVybn0wPEcubGVuZ3RoJiYoZz1uZXcgYihnLGssbnVsbCxhLEEpLFIucHVzaCh7ZXZlbnQ6ZyxsaXN0ZW5lcnM6R30pKX19aWYoKHQmNyk9PT0wKXtlOntpZihnPWU9PT0ibW91c2VvdmVyInx8ZT09PSJwb2ludGVyb3ZlciIsYj1lPT09Im1vdXNlb3V0Inx8ZT09PSJwb2ludGVyb3V0IixnJiZhIT09bXUmJihrPWEucmVsYXRlZFRhcmdldHx8YS5mcm9tRWxlbWVudCkmJihZYShrKXx8a1tCYV0pKWJyZWFrIGU7aWYoKGJ8fGcpJiYoZz1BLndpbmRvdz09PUE/QTooZz1BLm93bmVyRG9jdW1lbnQpP2cuZGVmYXVsdFZpZXd8fGcucGFyZW50V2luZG93OndpbmRvdyxiPyhrPWEucmVsYXRlZFRhcmdldHx8YS50b0VsZW1lbnQsYj1wLGs9az9ZYShrKTpudWxsLGshPT1udWxsJiYoZGU9TShrKSxHPWsudGFnLGshPT1kZXx8RyE9PTUmJkchPT0yNyYmRyE9PTYpJiYoaz1udWxsKSk6KGI9bnVsbCxrPXApLGIhPT1rKSl7aWYoRz1scyx6PSJvbk1vdXNlTGVhdmUiLF89Im9uTW91c2VFbnRlciIsaD0ibW91c2UiLChlPT09InBvaW50ZXJvdXQifHxlPT09InBvaW50ZXJvdmVyIikmJihHPXVzLHo9Im9uUG9pbnRlckxlYXZlIixfPSJvblBvaW50ZXJFbnRlciIsaD0icG9pbnRlciIpLGRlPWI9PW51bGw/ZzpNbihiKSx2PWs9PW51bGw/ZzpNbihrKSxnPW5ldyBHKHosaCsibGVhdmUiLGIsYSxBKSxnLnRhcmdldD1kZSxnLnJlbGF0ZWRUYXJnZXQ9dix6PW51bGwsWWEoQSk9PT1wJiYoRz1uZXcgRyhfLGgrImVudGVyIixrLGEsQSksRy50YXJnZXQ9dixHLnJlbGF0ZWRUYXJnZXQ9ZGUsej1HKSxkZT16LGImJmspdDp7Zm9yKEc9YixfPWssaD0wLHY9Rzt2O3Y9Ym4odikpaCsrO2Zvcih2PTAsej1fO3o7ej1ibih6KSl2Kys7Zm9yKDswPGgtdjspRz1ibihHKSxoLS07Zm9yKDswPHYtaDspXz1ibihfKSx2LS07Zm9yKDtoLS07KXtpZihHPT09X3x8XyE9PW51bGwmJkc9PT1fLmFsdGVybmF0ZSlicmVhayB0O0c9Ym4oRyksXz1ibihfKX1HPW51bGx9ZWxzZSBHPW51bGw7YiE9PW51bGwmJldmKFIsZyxiLEcsITEpLGshPT1udWxsJiZkZSE9PW51bGwmJldmKFIsZGUsayxHLCEwKX19ZTp7aWYoZz1wP01uKHApOndpbmRvdyxiPWcubm9kZU5hbWUmJmcubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxiPT09InNlbGVjdCJ8fGI9PT0iaW5wdXQiJiZnLnR5cGU9PT0iZmlsZSIpdmFyIGo9bXM7ZWxzZSBpZihkcyhnKSlpZihfcylqPWRtO2Vsc2V7aj1ybTt2YXIgJD1zbX1lbHNlIGI9Zy5ub2RlTmFtZSwhYnx8Yi50b0xvd2VyQ2FzZSgpIT09ImlucHV0Inx8Zy50eXBlIT09ImNoZWNrYm94IiYmZy50eXBlIT09InJhZGlvIj9wJiZodShwLmVsZW1lbnRUeXBlKSYmKGo9bXMpOmo9Zm07aWYoaiYmKGo9aihlLHApKSl7aHMoUixqLGEsQSk7YnJlYWsgZX0kJiYkKGUsZyxwKSxlPT09ImZvY3Vzb3V0IiYmcCYmZy50eXBlPT09Im51bWJlciImJnAubWVtb2l6ZWRQcm9wcy52YWx1ZSE9bnVsbCYmZHUoZywibnVtYmVyIixnLnZhbHVlKX1zd2l0Y2goJD1wP01uKHApOndpbmRvdyxlKXtjYXNlImZvY3VzaW4iOihkcygkKXx8JC5jb250ZW50RWRpdGFibGU9PT0idHJ1ZSIpJiYoJGE9JCxSdT1wLFluPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOlluPVJ1PSRhPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOkR1PSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjpEdT0hMSxFcyhSLGEsQSk7YnJlYWs7Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmlmKG1tKWJyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6RXMoUixhLEEpfXZhciBCO2lmKEV1KWU6e3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnZhciBYPSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIGU7Y2FzZSJjb21wb3NpdGlvbmVuZCI6WD0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgZTtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpYPSJvbkNvbXBvc2l0aW9uVXBkYXRlIjticmVhayBlfVg9dm9pZCAwfWVsc2UgSmE/cnMoZSxhKSYmKFg9Im9uQ29tcG9zaXRpb25FbmQiKTplPT09ImtleWRvd24iJiZhLmtleUNvZGU9PT0yMjkmJihYPSJvbkNvbXBvc2l0aW9uU3RhcnQiKTtYJiYoY3MmJmEubG9jYWxlIT09ImtvIiYmKEphfHxYIT09Im9uQ29tcG9zaXRpb25TdGFydCI/WD09PSJvbkNvbXBvc2l0aW9uRW5kIiYmSmEmJihCPWFzKCkpOihGdD1BLHB1PSJ2YWx1ZSJpbiBGdD9GdC52YWx1ZTpGdC50ZXh0Q29udGVudCxKYT0hMCkpLCQ9TWkocCxYKSwwPCQubGVuZ3RoJiYoWD1uZXcgaXMoWCxlLG51bGwsYSxBKSxSLnB1c2goe2V2ZW50OlgsbGlzdGVuZXJzOiR9KSxCP1guZGF0YT1COihCPWZzKGEpLEIhPT1udWxsJiYoWC5kYXRhPUIpKSkpLChCPWxtP2ltKGUsYSk6dW0oZSxhKSkmJihYPU1pKHAsIm9uQmVmb3JlSW5wdXQiKSwwPFgubGVuZ3RoJiYoJD1uZXcgaXMoIm9uQmVmb3JlSW5wdXQiLCJiZWZvcmVpbnB1dCIsbnVsbCxhLEEpLFIucHVzaCh7ZXZlbnQ6JCxsaXN0ZW5lcnM6WH0pLCQuZGF0YT1CKSksV20oUixlLHAsYSxBKX1KZihSLHQpfSl9ZnVuY3Rpb24gaGwoZSx0LGEpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOnQsY3VycmVudFRhcmdldDphfX1mdW5jdGlvbiBNaShlLHQpe2Zvcih2YXIgYT10KyJDYXB0dXJlIixuPVtdO2UhPT1udWxsOyl7dmFyIGw9ZSxpPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbCE9PTUmJmwhPT0yNiYmbCE9PTI3fHxpPT09bnVsbHx8KGw9T24oZSxhKSxsIT1udWxsJiZuLnVuc2hpZnQoaGwoZSxsLGkpKSxsPU9uKGUsdCksbCE9bnVsbCYmbi5wdXNoKGhsKGUsbCxpKSkpLGUudGFnPT09MylyZXR1cm4gbjtlPWUucmV0dXJufXJldHVybltdfWZ1bmN0aW9uIGJuKGUpe2lmKGU9PT1udWxsKXJldHVybiBudWxsO2RvIGU9ZS5yZXR1cm47d2hpbGUoZSYmZS50YWchPT01JiZlLnRhZyE9PTI3KTtyZXR1cm4gZXx8bnVsbH1mdW5jdGlvbiBXZihlLHQsYSxuLGwpe2Zvcih2YXIgaT10Ll9yZWFjdE5hbWUsdT1bXTthIT09bnVsbCYmYSE9PW47KXt2YXIgYz1hLHI9Yy5hbHRlcm5hdGUscD1jLnN0YXRlTm9kZTtpZihjPWMudGFnLHIhPT1udWxsJiZyPT09bilicmVhaztjIT09NSYmYyE9PTI2JiZjIT09Mjd8fHA9PT1udWxsfHwocj1wLGw/KHA9T24oYSxpKSxwIT1udWxsJiZ1LnVuc2hpZnQoaGwoYSxwLHIpKSk6bHx8KHA9T24oYSxpKSxwIT1udWxsJiZ1LnB1c2goaGwoYSxwLHIpKSkpLGE9YS5yZXR1cm59dS5sZW5ndGghPT0wJiZlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOnV9KX12YXIgZV89L1xyXG4/L2csdF89L1x1MDAwMHxcdUZGRkQvZztmdW5jdGlvbiBGZihlKXtyZXR1cm4odHlwZW9mIGU9PSJzdHJpbmciP2U6IiIrZSkucmVwbGFjZShlXyxgCmApLnJlcGxhY2UodF8sIiIpfWZ1bmN0aW9uIFBmKGUsdCl7cmV0dXJuIHQ9RmYodCksRmYoZSk9PT10fWZ1bmN0aW9uIE9pKCl7fWZ1bmN0aW9uIGZlKGUsdCxhLG4sbCxpKXtzd2l0Y2goYSl7Y2FzZSJjaGlsZHJlbiI6dHlwZW9mIG49PSJzdHJpbmciP3Q9PT0iYm9keSJ8fHQ9PT0idGV4dGFyZWEiJiZuPT09IiJ8fFphKGUsbik6KHR5cGVvZiBuPT0ibnVtYmVyInx8dHlwZW9mIG49PSJiaWdpbnQiKSYmdCE9PSJib2R5IiYmWmEoZSwiIituKTticmVhaztjYXNlImNsYXNzTmFtZSI6amwoZSwiY2xhc3MiLG4pO2JyZWFrO2Nhc2UidGFiSW5kZXgiOmpsKGUsInRhYmluZGV4IixuKTticmVhaztjYXNlImRpciI6Y2FzZSJyb2xlIjpjYXNlInZpZXdCb3giOmNhc2Uid2lkdGgiOmNhc2UiaGVpZ2h0IjpqbChlLGEsbik7YnJlYWs7Y2FzZSJzdHlsZSI6SW8oZSxuLGkpO2JyZWFrO2Nhc2UiZGF0YSI6aWYodCE9PSJvYmplY3QiKXtqbChlLCJkYXRhIixuKTticmVha31jYXNlInNyYyI6Y2FzZSJocmVmIjppZihuPT09IiImJih0IT09ImEifHxhIT09ImhyZWYiKSl7ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7YnJlYWt9aWYobj09bnVsbHx8dHlwZW9mIG49PSJmdW5jdGlvbiJ8fHR5cGVvZiBuPT0ic3ltYm9sInx8dHlwZW9mIG49PSJib29sZWFuIil7ZS5yZW1vdmVBdHRyaWJ1dGUoYSk7YnJlYWt9bj1ZbCgiIituKSxlLnNldEF0dHJpYnV0ZShhLG4pO2JyZWFrO2Nhc2UiYWN0aW9uIjpjYXNlImZvcm1BY3Rpb24iOmlmKHR5cGVvZiBuPT0iZnVuY3Rpb24iKXtlLnNldEF0dHJpYnV0ZShhLCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcJ3JlIHRyeWluZyB0byB1c2UgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgaW4gYSBzdWJtaXQgZXZlbnQgaGFuZGxlciwgY29uc2lkZXIgYWxzbyBjYWxsaW5nIGV2ZW50LnByZXZlbnREZWZhdWx0KCkuJykiKTticmVha31lbHNlIHR5cGVvZiBpPT0iZnVuY3Rpb24iJiYoYT09PSJmb3JtQWN0aW9uIj8odCE9PSJpbnB1dCImJmZlKGUsdCwibmFtZSIsbC5uYW1lLGwsbnVsbCksZmUoZSx0LCJmb3JtRW5jVHlwZSIsbC5mb3JtRW5jVHlwZSxsLG51bGwpLGZlKGUsdCwiZm9ybU1ldGhvZCIsbC5mb3JtTWV0aG9kLGwsbnVsbCksZmUoZSx0LCJmb3JtVGFyZ2V0IixsLmZvcm1UYXJnZXQsbCxudWxsKSk6KGZlKGUsdCwiZW5jVHlwZSIsbC5lbmNUeXBlLGwsbnVsbCksZmUoZSx0LCJtZXRob2QiLGwubWV0aG9kLGwsbnVsbCksZmUoZSx0LCJ0YXJnZXQiLGwudGFyZ2V0LGwsbnVsbCkpKTtpZihuPT1udWxsfHx0eXBlb2Ygbj09InN5bWJvbCJ8fHR5cGVvZiBuPT0iYm9vbGVhbiIpe2UucmVtb3ZlQXR0cmlidXRlKGEpO2JyZWFrfW49WWwoIiIrbiksZS5zZXRBdHRyaWJ1dGUoYSxuKTticmVhaztjYXNlIm9uQ2xpY2siOm4hPW51bGwmJihlLm9uY2xpY2s9T2kpO2JyZWFrO2Nhc2Uib25TY3JvbGwiOm4hPW51bGwmJkkoInNjcm9sbCIsZSk7YnJlYWs7Y2FzZSJvblNjcm9sbEVuZCI6biE9bnVsbCYmSSgic2Nyb2xsZW5kIixlKTticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihuIT1udWxsKXtpZih0eXBlb2YgbiE9Im9iamVjdCJ8fCEoIl9faHRtbCJpbiBuKSl0aHJvdyBFcnJvcihzKDYxKSk7aWYoYT1uLl9faHRtbCxhIT1udWxsKXtpZihsLmNoaWxkcmVuIT1udWxsKXRocm93IEVycm9yKHMoNjApKTtlLmlubmVySFRNTD1hfX1icmVhaztjYXNlIm11bHRpcGxlIjplLm11bHRpcGxlPW4mJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI7YnJlYWs7Y2FzZSJtdXRlZCI6ZS5tdXRlZD1uJiZ0eXBlb2YgbiE9ImZ1bmN0aW9uIiYmdHlwZW9mIG4hPSJzeW1ib2wiO2JyZWFrO2Nhc2Uic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nIjpjYXNlInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyI6Y2FzZSJkZWZhdWx0VmFsdWUiOmNhc2UiZGVmYXVsdENoZWNrZWQiOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6YnJlYWs7Y2FzZSJhdXRvRm9jdXMiOmJyZWFrO2Nhc2UieGxpbmtIcmVmIjppZihuPT1udWxsfHx0eXBlb2Ygbj09ImZ1bmN0aW9uInx8dHlwZW9mIG49PSJib29sZWFuInx8dHlwZW9mIG49PSJzeW1ib2wiKXtlLnJlbW92ZUF0dHJpYnV0ZSgieGxpbms6aHJlZiIpO2JyZWFrfWE9WWwoIiIrbiksZS5zZXRBdHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmhyZWYiLGEpO2JyZWFrO2Nhc2UiY29udGVudEVkaXRhYmxlIjpjYXNlInNwZWxsQ2hlY2siOmNhc2UiZHJhZ2dhYmxlIjpjYXNlInZhbHVlIjpjYXNlImF1dG9SZXZlcnNlIjpjYXNlImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiOmNhc2UiZm9jdXNhYmxlIjpjYXNlInByZXNlcnZlQWxwaGEiOm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI/ZS5zZXRBdHRyaWJ1dGUoYSwiIituKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImluZXJ0IjpjYXNlImFsbG93RnVsbFNjcmVlbiI6Y2FzZSJhc3luYyI6Y2FzZSJhdXRvUGxheSI6Y2FzZSJjb250cm9scyI6Y2FzZSJkZWZhdWx0IjpjYXNlImRlZmVyIjpjYXNlImRpc2FibGVkIjpjYXNlImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlIjpjYXNlImRpc2FibGVSZW1vdGVQbGF5YmFjayI6Y2FzZSJmb3JtTm9WYWxpZGF0ZSI6Y2FzZSJoaWRkZW4iOmNhc2UibG9vcCI6Y2FzZSJub01vZHVsZSI6Y2FzZSJub1ZhbGlkYXRlIjpjYXNlIm9wZW4iOmNhc2UicGxheXNJbmxpbmUiOmNhc2UicmVhZE9ubHkiOmNhc2UicmVxdWlyZWQiOmNhc2UicmV2ZXJzZWQiOmNhc2Uic2NvcGVkIjpjYXNlInNlYW1sZXNzIjpjYXNlIml0ZW1TY29wZSI6biYmdHlwZW9mIG4hPSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ic3ltYm9sIj9lLnNldEF0dHJpYnV0ZShhLCIiKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImNhcHR1cmUiOmNhc2UiZG93bmxvYWQiOm49PT0hMD9lLnNldEF0dHJpYnV0ZShhLCIiKTpuIT09ITEmJm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCI/ZS5zZXRBdHRyaWJ1dGUoYSxuKTplLnJlbW92ZUF0dHJpYnV0ZShhKTticmVhaztjYXNlImNvbHMiOmNhc2Uicm93cyI6Y2FzZSJzaXplIjpjYXNlInNwYW4iOm4hPW51bGwmJnR5cGVvZiBuIT0iZnVuY3Rpb24iJiZ0eXBlb2YgbiE9InN5bWJvbCImJiFpc05hTihuKSYmMTw9bj9lLnNldEF0dHJpYnV0ZShhLG4pOmUucmVtb3ZlQXR0cmlidXRlKGEpO2JyZWFrO2Nhc2Uicm93U3BhbiI6Y2FzZSJzdGFydCI6bj09bnVsbHx8dHlwZW9mIG49PSJmdW5jdGlvbiJ8fHR5cGVvZiBuPT0ic3ltYm9sInx8aXNOYU4obik/ZS5yZW1vdmVBdHRyaWJ1dGUoYSk6ZS5zZXRBdHRyaWJ1dGUoYSxuKTticmVhaztjYXNlInBvcG92ZXIiOkkoImJlZm9yZXRvZ2dsZSIsZSksSSgidG9nZ2xlIixlKSxxbChlLCJwb3BvdmVyIixuKTticmVhaztjYXNlInhsaW5rQWN0dWF0ZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmFjdHVhdGUiLG4pO2JyZWFrO2Nhc2UieGxpbmtBcmNyb2xlIjpVdChlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6YXJjcm9sZSIsbik7YnJlYWs7Y2FzZSJ4bGlua1JvbGUiOlV0KGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazpyb2xlIixuKTticmVhaztjYXNlInhsaW5rU2hvdyI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnNob3ciLG4pO2JyZWFrO2Nhc2UieGxpbmtUaXRsZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnRpdGxlIixuKTticmVhaztjYXNlInhsaW5rVHlwZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOnR5cGUiLG4pO2JyZWFrO2Nhc2UieG1sQmFzZSI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmJhc2UiLG4pO2JyZWFrO2Nhc2UieG1sTGFuZyI6VXQoZSwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiwieG1sOmxhbmciLG4pO2JyZWFrO2Nhc2UieG1sU3BhY2UiOlV0KGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpzcGFjZSIsbik7YnJlYWs7Y2FzZSJpcyI6cWwoZSwiaXMiLG4pO2JyZWFrO2Nhc2UiaW5uZXJUZXh0IjpjYXNlInRleHRDb250ZW50IjpicmVhaztkZWZhdWx0OighKDI8YS5sZW5ndGgpfHxhWzBdIT09Im8iJiZhWzBdIT09Ik8ifHxhWzFdIT09Im4iJiZhWzFdIT09Ik4iKSYmKGE9T2guZ2V0KGEpfHxhLHFsKGUsYSxuKSl9fWZ1bmN0aW9uIEZjKGUsdCxhLG4sbCxpKXtzd2l0Y2goYSl7Y2FzZSJzdHlsZSI6SW8oZSxuLGkpO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG4hPW51bGwpe2lmKHR5cGVvZiBuIT0ib2JqZWN0Inx8ISgiX19odG1sImluIG4pKXRocm93IEVycm9yKHMoNjEpKTtpZihhPW4uX19odG1sLGEhPW51bGwpe2lmKGwuY2hpbGRyZW4hPW51bGwpdGhyb3cgRXJyb3Iocyg2MCkpO2UuaW5uZXJIVE1MPWF9fWJyZWFrO2Nhc2UiY2hpbGRyZW4iOnR5cGVvZiBuPT0ic3RyaW5nIj9aYShlLG4pOih0eXBlb2Ygbj09Im51bWJlciJ8fHR5cGVvZiBuPT0iYmlnaW50IikmJlphKGUsIiIrbik7YnJlYWs7Y2FzZSJvblNjcm9sbCI6biE9bnVsbCYmSSgic2Nyb2xsIixlKTticmVhaztjYXNlIm9uU2Nyb2xsRW5kIjpuIT1udWxsJiZJKCJzY3JvbGxlbmQiLGUpO2JyZWFrO2Nhc2Uib25DbGljayI6biE9bnVsbCYmKGUub25jbGljaz1PaSk7YnJlYWs7Y2FzZSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOmNhc2Uic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjpjYXNlImlubmVySFRNTCI6Y2FzZSJyZWYiOmJyZWFrO2Nhc2UiaW5uZXJUZXh0IjpjYXNlInRleHRDb250ZW50IjpicmVhaztkZWZhdWx0OmlmKCFYby5oYXNPd25Qcm9wZXJ0eShhKSllOntpZihhWzBdPT09Im8iJiZhWzFdPT09Im4iJiYobD1hLmVuZHNXaXRoKCJDYXB0dXJlIiksdD1hLnNsaWNlKDIsbD9hLmxlbmd0aC03OnZvaWQgMCksaT1lW1dlXXx8bnVsbCxpPWkhPW51bGw/aVthXTpudWxsLHR5cGVvZiBpPT0iZnVuY3Rpb24iJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIodCxpLGwpLHR5cGVvZiBuPT0iZnVuY3Rpb24iKSl7dHlwZW9mIGkhPSJmdW5jdGlvbiImJmkhPT1udWxsJiYoYSBpbiBlP2VbYV09bnVsbDplLmhhc0F0dHJpYnV0ZShhKSYmZS5yZW1vdmVBdHRyaWJ1dGUoYSkpLGUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sbCk7YnJlYWsgZX1hIGluIGU/ZVthXT1uOm49PT0hMD9lLnNldEF0dHJpYnV0ZShhLCIiKTpxbChlLGEsbil9fX1mdW5jdGlvbiBRZShlLHQsYSl7c3dpdGNoKHQpe2Nhc2UiZGl2IjpjYXNlInNwYW4iOmNhc2Uic3ZnIjpjYXNlInBhdGgiOmNhc2UiYSI6Y2FzZSJnIjpjYXNlInAiOmNhc2UibGkiOmJyZWFrO2Nhc2UiaW1nIjpJKCJlcnJvciIsZSksSSgibG9hZCIsZSk7dmFyIG49ITEsbD0hMSxpO2ZvcihpIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShpKSl7dmFyIHU9YVtpXTtpZih1IT1udWxsKXN3aXRjaChpKXtjYXNlInNyYyI6bj0hMDticmVhaztjYXNlInNyY1NldCI6bD0hMDticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcihzKDEzNyx0KSk7ZGVmYXVsdDpmZShlLHQsaSx1LGEsbnVsbCl9fWwmJmZlKGUsdCwic3JjU2V0IixhLnNyY1NldCxhLG51bGwpLG4mJmZlKGUsdCwic3JjIixhLnNyYyxhLG51bGwpO3JldHVybjtjYXNlImlucHV0IjpJKCJpbnZhbGlkIixlKTt2YXIgYz1pPXU9bD1udWxsLHI9bnVsbCxwPW51bGw7Zm9yKG4gaW4gYSlpZihhLmhhc093blByb3BlcnR5KG4pKXt2YXIgQT1hW25dO2lmKEEhPW51bGwpc3dpdGNoKG4pe2Nhc2UibmFtZSI6bD1BO2JyZWFrO2Nhc2UidHlwZSI6dT1BO2JyZWFrO2Nhc2UiY2hlY2tlZCI6cj1BO2JyZWFrO2Nhc2UiZGVmYXVsdENoZWNrZWQiOnA9QTticmVhaztjYXNlInZhbHVlIjppPUE7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmM9QTticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihBIT1udWxsKXRocm93IEVycm9yKHMoMTM3LHQpKTticmVhaztkZWZhdWx0OmZlKGUsdCxuLEEsYSxudWxsKX19JG8oZSxpLGMscixwLHUsbCwhMSksSGwoZSk7cmV0dXJuO2Nhc2Uic2VsZWN0IjpJKCJpbnZhbGlkIixlKSxuPXU9aT1udWxsO2ZvcihsIGluIGEpaWYoYS5oYXNPd25Qcm9wZXJ0eShsKSYmKGM9YVtsXSxjIT1udWxsKSlzd2l0Y2gobCl7Y2FzZSJ2YWx1ZSI6aT1jO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjp1PWM7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1jO2RlZmF1bHQ6ZmUoZSx0LGwsYyxhLG51bGwpfXQ9aSxhPXUsZS5tdWx0aXBsZT0hIW4sdCE9bnVsbD9rYShlLCEhbix0LCExKTphIT1udWxsJiZrYShlLCEhbixhLCEwKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6SSgiaW52YWxpZCIsZSksaT1sPW49bnVsbDtmb3IodSBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkodSkmJihjPWFbdV0sYyE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOm49YzticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6bD1jO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmk9YzticmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihjIT1udWxsKXRocm93IEVycm9yKHMoOTEpKTticmVhaztkZWZhdWx0OmZlKGUsdCx1LGMsYSxudWxsKX1GbyhlLG4sbCxpKSxIbChlKTtyZXR1cm47Y2FzZSJvcHRpb24iOmZvcihyIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShyKSYmKG49YVtyXSxuIT1udWxsKSYmKHI9PT0ic2VsZWN0ZWQiP2Uuc2VsZWN0ZWQ9biYmdHlwZW9mIG4hPSJmdW5jdGlvbiImJnR5cGVvZiBuIT0ic3ltYm9sIjpmZShlLHQscixuLGEsbnVsbCkpO3JldHVybjtjYXNlImRpYWxvZyI6SSgiYmVmb3JldG9nZ2xlIixlKSxJKCJ0b2dnbGUiLGUpLEkoImNhbmNlbCIsZSksSSgiY2xvc2UiLGUpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6SSgibG9hZCIsZSk7YnJlYWs7Y2FzZSJ2aWRlbyI6Y2FzZSJhdWRpbyI6Zm9yKG49MDtuPGRsLmxlbmd0aDtuKyspSShkbFtuXSxlKTticmVhaztjYXNlImltYWdlIjpJKCJlcnJvciIsZSksSSgibG9hZCIsZSk7YnJlYWs7Y2FzZSJkZXRhaWxzIjpJKCJ0b2dnbGUiLGUpO2JyZWFrO2Nhc2UiZW1iZWQiOmNhc2Uic291cmNlIjpjYXNlImxpbmsiOkkoImVycm9yIixlKSxJKCJsb2FkIixlKTtjYXNlImFyZWEiOmNhc2UiYmFzZSI6Y2FzZSJiciI6Y2FzZSJjb2wiOmNhc2UiaHIiOmNhc2Uia2V5Z2VuIjpjYXNlIm1ldGEiOmNhc2UicGFyYW0iOmNhc2UidHJhY2siOmNhc2Uid2JyIjpjYXNlIm1lbnVpdGVtIjpmb3IocCBpbiBhKWlmKGEuaGFzT3duUHJvcGVydHkocCkmJihuPWFbcF0sbiE9bnVsbCkpc3dpdGNoKHApe2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKHMoMTM3LHQpKTtkZWZhdWx0OmZlKGUsdCxwLG4sYSxudWxsKX1yZXR1cm47ZGVmYXVsdDppZihodSh0KSl7Zm9yKEEgaW4gYSlhLmhhc093blByb3BlcnR5KEEpJiYobj1hW0FdLG4hPT12b2lkIDAmJkZjKGUsdCxBLG4sYSx2b2lkIDApKTtyZXR1cm59fWZvcihjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmKG49YVtjXSxuIT1udWxsJiZmZShlLHQsYyxuLGEsbnVsbCkpfWZ1bmN0aW9uIGFfKGUsdCxhLG4pe3N3aXRjaCh0KXtjYXNlImRpdiI6Y2FzZSJzcGFuIjpjYXNlInN2ZyI6Y2FzZSJwYXRoIjpjYXNlImEiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlImxpIjpicmVhaztjYXNlImlucHV0Ijp2YXIgbD1udWxsLGk9bnVsbCx1PW51bGwsYz1udWxsLHI9bnVsbCxwPW51bGwsQT1udWxsO2ZvcihiIGluIGEpe3ZhciBSPWFbYl07aWYoYS5oYXNPd25Qcm9wZXJ0eShiKSYmUiE9bnVsbClzd2l0Y2goYil7Y2FzZSJjaGVja2VkIjpicmVhaztjYXNlInZhbHVlIjpicmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6cj1SO2RlZmF1bHQ6bi5oYXNPd25Qcm9wZXJ0eShiKXx8ZmUoZSx0LGIsbnVsbCxuLFIpfX1mb3IodmFyIGcgaW4gbil7dmFyIGI9bltnXTtpZihSPWFbZ10sbi5oYXNPd25Qcm9wZXJ0eShnKSYmKGIhPW51bGx8fFIhPW51bGwpKXN3aXRjaChnKXtjYXNlInR5cGUiOmk9YjticmVhaztjYXNlIm5hbWUiOmw9YjticmVhaztjYXNlImNoZWNrZWQiOnA9YjticmVhaztjYXNlImRlZmF1bHRDaGVja2VkIjpBPWI7YnJlYWs7Y2FzZSJ2YWx1ZSI6dT1iO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpjPWI7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYoYiE9bnVsbCl0aHJvdyBFcnJvcihzKDEzNyx0KSk7YnJlYWs7ZGVmYXVsdDpiIT09UiYmZmUoZSx0LGcsYixuLFIpfX1mdShlLHUsYyxyLHAsQSxpLGwpO3JldHVybjtjYXNlInNlbGVjdCI6Yj11PWM9Zz1udWxsO2ZvcihpIGluIGEpaWYocj1hW2ldLGEuaGFzT3duUHJvcGVydHkoaSkmJnIhPW51bGwpc3dpdGNoKGkpe2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UibXVsdGlwbGUiOmI9cjtkZWZhdWx0Om4uaGFzT3duUHJvcGVydHkoaSl8fGZlKGUsdCxpLG51bGwsbixyKX1mb3IobCBpbiBuKWlmKGk9bltsXSxyPWFbbF0sbi5oYXNPd25Qcm9wZXJ0eShsKSYmKGkhPW51bGx8fHIhPW51bGwpKXN3aXRjaChsKXtjYXNlInZhbHVlIjpnPWk7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmM9aTticmVhaztjYXNlIm11bHRpcGxlIjp1PWk7ZGVmYXVsdDppIT09ciYmZmUoZSx0LGwsaSxuLHIpfXQ9YyxhPXUsbj1iLGchPW51bGw/a2EoZSwhIWEsZywhMSk6ISFuIT0hIWEmJih0IT1udWxsP2thKGUsISFhLHQsITApOmthKGUsISFhLGE/W106IiIsITEpKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6Yj1nPW51bGw7Zm9yKGMgaW4gYSlpZihsPWFbY10sYS5oYXNPd25Qcm9wZXJ0eShjKSYmbCE9bnVsbCYmIW4uaGFzT3duUHJvcGVydHkoYykpc3dpdGNoKGMpe2Nhc2UidmFsdWUiOmJyZWFrO2Nhc2UiY2hpbGRyZW4iOmJyZWFrO2RlZmF1bHQ6ZmUoZSx0LGMsbnVsbCxuLGwpfWZvcih1IGluIG4paWYobD1uW3VdLGk9YVt1XSxuLmhhc093blByb3BlcnR5KHUpJiYobCE9bnVsbHx8aSE9bnVsbCkpc3dpdGNoKHUpe2Nhc2UidmFsdWUiOmc9bDticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6Yj1sO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmJyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKGwhPW51bGwpdGhyb3cgRXJyb3Iocyg5MSkpO2JyZWFrO2RlZmF1bHQ6bCE9PWkmJmZlKGUsdCx1LGwsbixpKX1XbyhlLGcsYik7cmV0dXJuO2Nhc2Uib3B0aW9uIjpmb3IodmFyIGsgaW4gYSlnPWFba10sYS5oYXNPd25Qcm9wZXJ0eShrKSYmZyE9bnVsbCYmIW4uaGFzT3duUHJvcGVydHkoaykmJihrPT09InNlbGVjdGVkIj9lLnNlbGVjdGVkPSExOmZlKGUsdCxrLG51bGwsbixnKSk7Zm9yKHIgaW4gbilnPW5bcl0sYj1hW3JdLG4uaGFzT3duUHJvcGVydHkocikmJmchPT1iJiYoZyE9bnVsbHx8YiE9bnVsbCkmJihyPT09InNlbGVjdGVkIj9lLnNlbGVjdGVkPWcmJnR5cGVvZiBnIT0iZnVuY3Rpb24iJiZ0eXBlb2YgZyE9InN5bWJvbCI6ZmUoZSx0LHIsZyxuLGIpKTtyZXR1cm47Y2FzZSJpbWciOmNhc2UibGluayI6Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImVtYmVkIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInNvdXJjZSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcih2YXIgRyBpbiBhKWc9YVtHXSxhLmhhc093blByb3BlcnR5KEcpJiZnIT1udWxsJiYhbi5oYXNPd25Qcm9wZXJ0eShHKSYmZmUoZSx0LEcsbnVsbCxuLGcpO2ZvcihwIGluIG4paWYoZz1uW3BdLGI9YVtwXSxuLmhhc093blByb3BlcnR5KHApJiZnIT09YiYmKGchPW51bGx8fGIhPW51bGwpKXN3aXRjaChwKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihnIT1udWxsKXRocm93IEVycm9yKHMoMTM3LHQpKTticmVhaztkZWZhdWx0OmZlKGUsdCxwLGcsbixiKX1yZXR1cm47ZGVmYXVsdDppZihodSh0KSl7Zm9yKHZhciBkZSBpbiBhKWc9YVtkZV0sYS5oYXNPd25Qcm9wZXJ0eShkZSkmJmchPT12b2lkIDAmJiFuLmhhc093blByb3BlcnR5KGRlKSYmRmMoZSx0LGRlLHZvaWQgMCxuLGcpO2ZvcihBIGluIG4pZz1uW0FdLGI9YVtBXSwhbi5oYXNPd25Qcm9wZXJ0eShBKXx8Zz09PWJ8fGc9PT12b2lkIDAmJmI9PT12b2lkIDB8fEZjKGUsdCxBLGcsbixiKTtyZXR1cm59fWZvcih2YXIgXyBpbiBhKWc9YVtfXSxhLmhhc093blByb3BlcnR5KF8pJiZnIT1udWxsJiYhbi5oYXNPd25Qcm9wZXJ0eShfKSYmZmUoZSx0LF8sbnVsbCxuLGcpO2ZvcihSIGluIG4pZz1uW1JdLGI9YVtSXSwhbi5oYXNPd25Qcm9wZXJ0eShSKXx8Zz09PWJ8fGc9PW51bGwmJmI9PW51bGx8fGZlKGUsdCxSLGcsbixiKX12YXIgUGM9bnVsbCxJYz1udWxsO2Z1bmN0aW9uIHdpKGUpe3JldHVybiBlLm5vZGVUeXBlPT09OT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBJZihlKXtzd2l0Y2goZSl7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6cmV0dXJuIDE7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBlZChlLHQpe2lmKGU9PT0wKXN3aXRjaCh0KXtjYXNlInN2ZyI6cmV0dXJuIDE7Y2FzZSJtYXRoIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfXJldHVybiBlPT09MSYmdD09PSJmb3JlaWduT2JqZWN0Ij8wOmV9ZnVuY3Rpb24gZW8oZSx0KXtyZXR1cm4gZT09PSJ0ZXh0YXJlYSJ8fGU9PT0ibm9zY3JpcHQifHx0eXBlb2YgdC5jaGlsZHJlbj09InN0cmluZyJ8fHR5cGVvZiB0LmNoaWxkcmVuPT0ibnVtYmVyInx8dHlwZW9mIHQuY2hpbGRyZW49PSJiaWdpbnQifHx0eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTD09Im9iamVjdCImJnQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwhPT1udWxsJiZ0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCE9bnVsbH12YXIgdG89bnVsbDtmdW5jdGlvbiBuXygpe3ZhciBlPXdpbmRvdy5ldmVudDtyZXR1cm4gZSYmZS50eXBlPT09InBvcHN0YXRlIj9lPT09dG8/ITE6KHRvPWUsITApOih0bz1udWxsLCExKX12YXIgdGQ9dHlwZW9mIHNldFRpbWVvdXQ9PSJmdW5jdGlvbiI/c2V0VGltZW91dDp2b2lkIDAsbF89dHlwZW9mIGNsZWFyVGltZW91dD09ImZ1bmN0aW9uIj9jbGVhclRpbWVvdXQ6dm9pZCAwLGFkPXR5cGVvZiBQcm9taXNlPT0iZnVuY3Rpb24iP1Byb21pc2U6dm9pZCAwLGlfPXR5cGVvZiBxdWV1ZU1pY3JvdGFzaz09ImZ1bmN0aW9uIj9xdWV1ZU1pY3JvdGFzazp0eXBlb2YgYWQ8InUiP2Z1bmN0aW9uKGUpe3JldHVybiBhZC5yZXNvbHZlKG51bGwpLnRoZW4oZSkuY2F0Y2godV8pfTp0ZDtmdW5jdGlvbiB1XyhlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfWZ1bmN0aW9uIGhhKGUpe3JldHVybiBlPT09ImhlYWQifWZ1bmN0aW9uIG5kKGUsdCl7dmFyIGE9dCxuPTAsbD0wO2Rve3ZhciBpPWEubmV4dFNpYmxpbmc7aWYoZS5yZW1vdmVDaGlsZChhKSxpJiZpLm5vZGVUeXBlPT09OClpZihhPWkuZGF0YSxhPT09Ii8kIil7aWYoMDxuJiY4Pm4pe2E9bjt2YXIgdT1lLm93bmVyRG9jdW1lbnQ7aWYoYSYxJiZtbCh1LmRvY3VtZW50RWxlbWVudCksYSYyJiZtbCh1LmJvZHkpLGEmNClmb3IoYT11LmhlYWQsbWwoYSksdT1hLmZpcnN0Q2hpbGQ7dTspe3ZhciBjPXUubmV4dFNpYmxpbmcscj11Lm5vZGVOYW1lO3VbTm5dfHxyPT09IlNDUklQVCJ8fHI9PT0iU1RZTEUifHxyPT09IkxJTksiJiZ1LnJlbC50b0xvd2VyQ2FzZSgpPT09InN0eWxlc2hlZXQifHxhLnJlbW92ZUNoaWxkKHUpLHU9Y319aWYobD09PTApe2UucmVtb3ZlQ2hpbGQoaSksVGwodCk7cmV0dXJufWwtLX1lbHNlIGE9PT0iJCJ8fGE9PT0iJD8ifHxhPT09IiQhIj9sKys6bj1hLmNoYXJDb2RlQXQoMCktNDg7ZWxzZSBuPTA7YT1pfXdoaWxlKGEpO1RsKHQpfWZ1bmN0aW9uIGFvKGUpe3ZhciB0PWUuZmlyc3RDaGlsZDtmb3IodCYmdC5ub2RlVHlwZT09PTEwJiYodD10Lm5leHRTaWJsaW5nKTt0Oyl7dmFyIGE9dDtzd2l0Y2godD10Lm5leHRTaWJsaW5nLGEubm9kZU5hbWUpe2Nhc2UiSFRNTCI6Y2FzZSJIRUFEIjpjYXNlIkJPRFkiOmFvKGEpLGN1KGEpO2NvbnRpbnVlO2Nhc2UiU0NSSVBUIjpjYXNlIlNUWUxFIjpjb250aW51ZTtjYXNlIkxJTksiOmlmKGEucmVsLnRvTG93ZXJDYXNlKCk9PT0ic3R5bGVzaGVldCIpY29udGludWV9ZS5yZW1vdmVDaGlsZChhKX19ZnVuY3Rpb24gY18oZSx0LGEsbil7Zm9yKDtlLm5vZGVUeXBlPT09MTspe3ZhciBsPWE7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKXtpZighbiYmKGUubm9kZU5hbWUhPT0iSU5QVVQifHxlLnR5cGUhPT0iaGlkZGVuIikpYnJlYWt9ZWxzZSBpZihuKXtpZighZVtObl0pc3dpdGNoKHQpe2Nhc2UibWV0YSI6aWYoIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2Nhc2UibGluayI6aWYoaT1lLmdldEF0dHJpYnV0ZSgicmVsIiksaT09PSJzdHlsZXNoZWV0IiYmZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO2lmKGkhPT1sLnJlbHx8ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PShsLmhyZWY9PW51bGx8fGwuaHJlZj09PSIiP251bGw6bC5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0obC5jcm9zc09yaWdpbj09bnVsbD9udWxsOmwuY3Jvc3NPcmlnaW4pfHxlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSE9PShsLnRpdGxlPT1udWxsP251bGw6bC50aXRsZSkpYnJlYWs7cmV0dXJuIGU7Y2FzZSJzdHlsZSI6aWYoZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO3JldHVybiBlO2Nhc2Uic2NyaXB0IjppZihpPWUuZ2V0QXR0cmlidXRlKCJzcmMiKSwoaSE9PShsLnNyYz09bnVsbD9udWxsOmwuc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PShsLnR5cGU9PW51bGw/bnVsbDpsLnR5cGUpfHxlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PShsLmNyb3NzT3JpZ2luPT1udWxsP251bGw6bC5jcm9zc09yaWdpbikpJiZpJiZlLmhhc0F0dHJpYnV0ZSgiYXN5bmMiKSYmIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2RlZmF1bHQ6cmV0dXJuIGV9fWVsc2UgaWYodD09PSJpbnB1dCImJmUudHlwZT09PSJoaWRkZW4iKXt2YXIgaT1sLm5hbWU9PW51bGw/bnVsbDoiIitsLm5hbWU7aWYobC50eXBlPT09ImhpZGRlbiImJmUuZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1pKXJldHVybiBlfWVsc2UgcmV0dXJuIGU7aWYoZT14dChlLm5leHRTaWJsaW5nKSxlPT09bnVsbClicmVha31yZXR1cm4gbnVsbH1mdW5jdGlvbiBvXyhlLHQsYSl7aWYodD09PSIiKXJldHVybiBudWxsO2Zvcig7ZS5ub2RlVHlwZSE9PTM7KWlmKChlLm5vZGVUeXBlIT09MXx8ZS5ub2RlTmFtZSE9PSJJTlBVVCJ8fGUudHlwZSE9PSJoaWRkZW4iKSYmIWF8fChlPXh0KGUubmV4dFNpYmxpbmcpLGU9PT1udWxsKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX1mdW5jdGlvbiBubyhlKXtyZXR1cm4gZS5kYXRhPT09IiQhInx8ZS5kYXRhPT09IiQ/IiYmZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUifWZ1bmN0aW9uIHNfKGUsdCl7dmFyIGE9ZS5vd25lckRvY3VtZW50O2lmKGUuZGF0YSE9PSIkPyJ8fGEucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpdCgpO2Vsc2V7dmFyIG49ZnVuY3Rpb24oKXt0KCksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixuKX07YS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixuKSxlLl9yZWFjdFJldHJ5PW59fWZ1bmN0aW9uIHh0KGUpe2Zvcig7ZSE9bnVsbDtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYodD09PTF8fHQ9PT0zKWJyZWFrO2lmKHQ9PT04KXtpZih0PWUuZGF0YSx0PT09IiQifHx0PT09IiQhInx8dD09PSIkPyJ8fHQ9PT0iRiEifHx0PT09IkYiKWJyZWFrO2lmKHQ9PT0iLyQiKXJldHVybiBudWxsfX1yZXR1cm4gZX12YXIgbG89bnVsbDtmdW5jdGlvbiBsZChlKXtlPWUucHJldmlvdXNTaWJsaW5nO2Zvcih2YXIgdD0wO2U7KXtpZihlLm5vZGVUeXBlPT09OCl7dmFyIGE9ZS5kYXRhO2lmKGE9PT0iJCJ8fGE9PT0iJCEifHxhPT09IiQ/Iil7aWYodD09PTApcmV0dXJuIGU7dC0tfWVsc2UgYT09PSIvJCImJnQrK31lPWUucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGlkKGUsdCxhKXtzd2l0Y2godD13aShhKSxlKXtjYXNlImh0bWwiOmlmKGU9dC5kb2N1bWVudEVsZW1lbnQsIWUpdGhyb3cgRXJyb3Iocyg0NTIpKTtyZXR1cm4gZTtjYXNlImhlYWQiOmlmKGU9dC5oZWFkLCFlKXRocm93IEVycm9yKHMoNDUzKSk7cmV0dXJuIGU7Y2FzZSJib2R5IjppZihlPXQuYm9keSwhZSl0aHJvdyBFcnJvcihzKDQ1NCkpO3JldHVybiBlO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NTEpKX19ZnVuY3Rpb24gbWwoZSl7Zm9yKHZhciB0PWUuYXR0cmlidXRlczt0Lmxlbmd0aDspZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKHRbMF0pO2N1KGUpfXZhciBTdD1uZXcgTWFwLHVkPW5ldyBTZXQ7ZnVuY3Rpb24gVWkoZSl7cmV0dXJuIHR5cGVvZiBlLmdldFJvb3ROb2RlPT0iZnVuY3Rpb24iP2UuZ2V0Um9vdE5vZGUoKTplLm5vZGVUeXBlPT09OT9lOmUub3duZXJEb2N1bWVudH12YXIgS3Q9Qy5kO0MuZD17ZjpyXyxyOmZfLEQ6ZF8sQzpoXyxMOm1fLG06X18sWDp5XyxTOnZfLE06cF99O2Z1bmN0aW9uIHJfKCl7dmFyIGU9S3QuZigpLHQ9QWkoKTtyZXR1cm4gZXx8dH1mdW5jdGlvbiBmXyhlKXt2YXIgdD1MYShlKTt0IT09bnVsbCYmdC50YWc9PT01JiZ0LnR5cGU9PT0iZm9ybSI/eHIodCk6S3QucihlKX12YXIgU249dHlwZW9mIGRvY3VtZW50PiJ1Ij9udWxsOmRvY3VtZW50O2Z1bmN0aW9uIGNkKGUsdCxhKXt2YXIgbj1TbjtpZihuJiZ0eXBlb2YgdD09InN0cmluZyImJnQpe3ZhciBsPW10KHQpO2w9J2xpbmtbcmVsPSInK2UrJyJdW2hyZWY9IicrbCsnIl0nLHR5cGVvZiBhPT0ic3RyaW5nIiYmKGwrPSdbY3Jvc3NvcmlnaW49IicrYSsnIl0nKSx1ZC5oYXMobCl8fCh1ZC5hZGQobCksZT17cmVsOmUsY3Jvc3NPcmlnaW46YSxocmVmOnR9LG4ucXVlcnlTZWxlY3RvcihsKT09PW51bGwmJih0PW4uY3JlYXRlRWxlbWVudCgibGluayIpLFFlKHQsImxpbmsiLGUpLEhlKHQpLG4uaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBkXyhlKXtLdC5EKGUpLGNkKCJkbnMtcHJlZmV0Y2giLGUsbnVsbCl9ZnVuY3Rpb24gaF8oZSx0KXtLdC5DKGUsdCksY2QoInByZWNvbm5lY3QiLGUsdCl9ZnVuY3Rpb24gbV8oZSx0LGEpe0t0LkwoZSx0LGEpO3ZhciBuPVNuO2lmKG4mJmUmJnQpe3ZhciBsPSdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSInK210KHQpKyciXSc7dD09PSJpbWFnZSImJmEmJmEuaW1hZ2VTcmNTZXQ/KGwrPSdbaW1hZ2VzcmNzZXQ9IicrbXQoYS5pbWFnZVNyY1NldCkrJyJdJyx0eXBlb2YgYS5pbWFnZVNpemVzPT0ic3RyaW5nIiYmKGwrPSdbaW1hZ2VzaXplcz0iJyttdChhLmltYWdlU2l6ZXMpKyciXScpKTpsKz0nW2hyZWY9IicrbXQoZSkrJyJdJzt2YXIgaT1sO3N3aXRjaCh0KXtjYXNlInN0eWxlIjppPVRuKGUpO2JyZWFrO2Nhc2Uic2NyaXB0IjppPUVuKGUpfVN0LmhhcyhpKXx8KGU9Tyh7cmVsOiJwcmVsb2FkIixocmVmOnQ9PT0iaW1hZ2UiJiZhJiZhLmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOnR9LGEpLFN0LnNldChpLGUpLG4ucXVlcnlTZWxlY3RvcihsKSE9PW51bGx8fHQ9PT0ic3R5bGUiJiZuLnF1ZXJ5U2VsZWN0b3IoX2woaSkpfHx0PT09InNjcmlwdCImJm4ucXVlcnlTZWxlY3Rvcih2bChpKSl8fCh0PW4uY3JlYXRlRWxlbWVudCgibGluayIpLFFlKHQsImxpbmsiLGUpLEhlKHQpLG4uaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBfXyhlLHQpe0t0Lm0oZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj10JiZ0eXBlb2YgdC5hcz09InN0cmluZyI/dC5hczoic2NyaXB0IixsPSdsaW5rW3JlbD0ibW9kdWxlcHJlbG9hZCJdW2FzPSInK210KG4pKyciXVtocmVmPSInK210KGUpKyciXScsaT1sO3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aT1FbihlKX1pZighU3QuaGFzKGkpJiYoZT1PKHtyZWw6Im1vZHVsZXByZWxvYWQiLGhyZWY6ZX0sdCksU3Quc2V0KGksZSksYS5xdWVyeVNlbGVjdG9yKGwpPT09bnVsbCkpe3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYoYS5xdWVyeVNlbGVjdG9yKHZsKGkpKSlyZXR1cm59bj1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxRZShuLCJsaW5rIixlKSxIZShuKSxhLmhlYWQuYXBwZW5kQ2hpbGQobil9fX1mdW5jdGlvbiB2XyhlLHQsYSl7S3QuUyhlLHQsYSk7dmFyIG49U247aWYobiYmZSl7dmFyIGw9R2EobikuaG9pc3RhYmxlU3R5bGVzLGk9VG4oZSk7dD10fHwiZGVmYXVsdCI7dmFyIHU9bC5nZXQoaSk7aWYoIXUpe3ZhciBjPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZih1PW4ucXVlcnlTZWxlY3RvcihfbChpKSkpYy5sb2FkaW5nPTU7ZWxzZXtlPU8oe3JlbDoic3R5bGVzaGVldCIsaHJlZjplLCJkYXRhLXByZWNlZGVuY2UiOnR9LGEpLChhPVN0LmdldChpKSkmJmlvKGUsYSk7dmFyIHI9dT1uLmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtIZShyKSxRZShyLCJsaW5rIixlKSxyLl9wPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHAsQSl7ci5vbmxvYWQ9cCxyLm9uZXJyb3I9QX0pLHIuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtjLmxvYWRpbmd8PTF9KSxyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbigpe2MubG9hZGluZ3w9Mn0pLGMubG9hZGluZ3w9NCxDaSh1LHQsbil9dT17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6dSxjb3VudDoxLHN0YXRlOmN9LGwuc2V0KGksdSl9fX1mdW5jdGlvbiB5XyhlLHQpe0t0LlgoZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj1HYShhKS5ob2lzdGFibGVTY3JpcHRzLGw9RW4oZSksaT1uLmdldChsKTtpfHwoaT1hLnF1ZXJ5U2VsZWN0b3IodmwobCkpLGl8fChlPU8oe3NyYzplLGFzeW5jOiEwfSx0KSwodD1TdC5nZXQobCkpJiZ1byhlLHQpLGk9YS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxIZShpKSxRZShpLCJsaW5rIixlKSxhLmhlYWQuYXBwZW5kQ2hpbGQoaSkpLGk9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6aSxjb3VudDoxLHN0YXRlOm51bGx9LG4uc2V0KGwsaSkpfX1mdW5jdGlvbiBwXyhlLHQpe0t0Lk0oZSx0KTt2YXIgYT1TbjtpZihhJiZlKXt2YXIgbj1HYShhKS5ob2lzdGFibGVTY3JpcHRzLGw9RW4oZSksaT1uLmdldChsKTtpfHwoaT1hLnF1ZXJ5U2VsZWN0b3IodmwobCkpLGl8fChlPU8oe3NyYzplLGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LHQpLCh0PVN0LmdldChsKSkmJnVvKGUsdCksaT1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEhlKGkpLFFlKGksImxpbmsiLGUpLGEuaGVhZC5hcHBlbmRDaGlsZChpKSksaT17dHlwZToic2NyaXB0IixpbnN0YW5jZTppLGNvdW50OjEsc3RhdGU6bnVsbH0sbi5zZXQobCxpKSl9fWZ1bmN0aW9uIG9kKGUsdCxhLG4pe3ZhciBsPShsPVouY3VycmVudCk/VWkobCk6bnVsbDtpZighbCl0aHJvdyBFcnJvcihzKDQ0NikpO3N3aXRjaChlKXtjYXNlIm1ldGEiOmNhc2UidGl0bGUiOnJldHVybiBudWxsO2Nhc2Uic3R5bGUiOnJldHVybiB0eXBlb2YgYS5wcmVjZWRlbmNlPT0ic3RyaW5nIiYmdHlwZW9mIGEuaHJlZj09InN0cmluZyI/KHQ9VG4oYS5ocmVmKSxhPUdhKGwpLmhvaXN0YWJsZVN0eWxlcyxuPWEuZ2V0KHQpLG58fChuPXt0eXBlOiJzdHlsZSIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LGEuc2V0KHQsbikpLG4pOnt0eXBlOiJ2b2lkIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07Y2FzZSJsaW5rIjppZihhLnJlbD09PSJzdHlsZXNoZWV0IiYmdHlwZW9mIGEuaHJlZj09InN0cmluZyImJnR5cGVvZiBhLnByZWNlZGVuY2U9PSJzdHJpbmciKXtlPVRuKGEuaHJlZik7dmFyIGk9R2EobCkuaG9pc3RhYmxlU3R5bGVzLHU9aS5nZXQoZSk7aWYodXx8KGw9bC5vd25lckRvY3VtZW50fHxsLHU9e3R5cGU6InN0eWxlc2hlZXQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTp7bG9hZGluZzowLHByZWxvYWQ6bnVsbH19LGkuc2V0KGUsdSksKGk9bC5xdWVyeVNlbGVjdG9yKF9sKGUpKSkmJiFpLl9wJiYodS5pbnN0YW5jZT1pLHUuc3RhdGUubG9hZGluZz01KSxTdC5oYXMoZSl8fChhPXtyZWw6InByZWxvYWQiLGFzOiJzdHlsZSIsaHJlZjphLmhyZWYsY3Jvc3NPcmlnaW46YS5jcm9zc09yaWdpbixpbnRlZ3JpdHk6YS5pbnRlZ3JpdHksbWVkaWE6YS5tZWRpYSxocmVmTGFuZzphLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5OmEucmVmZXJyZXJQb2xpY3l9LFN0LnNldChlLGEpLGl8fGdfKGwsZSxhLHUuc3RhdGUpKSksdCYmbj09PW51bGwpdGhyb3cgRXJyb3Iocyg1MjgsIiIpKTtyZXR1cm4gdX1pZih0JiZuIT09bnVsbCl0aHJvdyBFcnJvcihzKDUyOSwiIikpO3JldHVybiBudWxsO2Nhc2Uic2NyaXB0IjpyZXR1cm4gdD1hLmFzeW5jLGE9YS5zcmMsdHlwZW9mIGE9PSJzdHJpbmciJiZ0JiZ0eXBlb2YgdCE9ImZ1bmN0aW9uIiYmdHlwZW9mIHQhPSJzeW1ib2wiPyh0PUVuKGEpLGE9R2EobCkuaG9pc3RhYmxlU2NyaXB0cyxuPWEuZ2V0KHQpLG58fChuPXt0eXBlOiJzY3JpcHQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxhLnNldCh0LG4pKSxuKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NDQsZSkpfX1mdW5jdGlvbiBUbihlKXtyZXR1cm4naHJlZj0iJyttdChlKSsnIid9ZnVuY3Rpb24gX2woZSl7cmV0dXJuJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bJytlKyJdIn1mdW5jdGlvbiBzZChlKXtyZXR1cm4gTyh7fSxlLHsiZGF0YS1wcmVjZWRlbmNlIjplLnByZWNlZGVuY2UscHJlY2VkZW5jZTpudWxsfSl9ZnVuY3Rpb24gZ18oZSx0LGEsbil7ZS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSJzdHlsZSJdWycrdCsiXSIpP24ubG9hZGluZz0xOih0PWUuY3JlYXRlRWxlbWVudCgibGluayIpLG4ucHJlbG9hZD10LHQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsZnVuY3Rpb24oKXtyZXR1cm4gbi5sb2FkaW5nfD0xfSksdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oKXtyZXR1cm4gbi5sb2FkaW5nfD0yfSksUWUodCwibGluayIsYSksSGUodCksZS5oZWFkLmFwcGVuZENoaWxkKHQpKX1mdW5jdGlvbiBFbihlKXtyZXR1cm4nW3NyYz0iJyttdChlKSsnIl0nfWZ1bmN0aW9uIHZsKGUpe3JldHVybiJzY3JpcHRbYXN5bmNdIitlfWZ1bmN0aW9uIHJkKGUsdCxhKXtpZih0LmNvdW50KyssdC5pbnN0YW5jZT09PW51bGwpc3dpdGNoKHQudHlwZSl7Y2FzZSJzdHlsZSI6dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWhyZWZ+PSInK210KGEuaHJlZikrJyJdJyk7aWYobilyZXR1cm4gdC5pbnN0YW5jZT1uLEhlKG4pLG47dmFyIGw9Tyh7fSxhLHsiZGF0YS1ocmVmIjphLmhyZWYsImRhdGEtcHJlY2VkZW5jZSI6YS5wcmVjZWRlbmNlLGhyZWY6bnVsbCxwcmVjZWRlbmNlOm51bGx9KTtyZXR1cm4gbj0oZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzdHlsZSIpLEhlKG4pLFFlKG4sInN0eWxlIixsKSxDaShuLGEucHJlY2VkZW5jZSxlKSx0Lmluc3RhbmNlPW47Y2FzZSJzdHlsZXNoZWV0IjpsPVRuKGEuaHJlZik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKF9sKGwpKTtpZihpKXJldHVybiB0LnN0YXRlLmxvYWRpbmd8PTQsdC5pbnN0YW5jZT1pLEhlKGkpLGk7bj1zZChhKSwobD1TdC5nZXQobCkpJiZpbyhuLGwpLGk9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudCgibGluayIpLEhlKGkpO3ZhciB1PWk7cmV0dXJuIHUuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oYyxyKXt1Lm9ubG9hZD1jLHUub25lcnJvcj1yfSksUWUoaSwibGluayIsbiksdC5zdGF0ZS5sb2FkaW5nfD00LENpKGksYS5wcmVjZWRlbmNlLGUpLHQuaW5zdGFuY2U9aTtjYXNlInNjcmlwdCI6cmV0dXJuIGk9RW4oYS5zcmMpLChsPWUucXVlcnlTZWxlY3Rvcih2bChpKSkpPyh0Lmluc3RhbmNlPWwsSGUobCksbCk6KG49YSwobD1TdC5nZXQoaSkpJiYobj1PKHt9LGEpLHVvKG4sbCkpLGU9ZS5vd25lckRvY3VtZW50fHxlLGw9ZS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxIZShsKSxRZShsLCJsaW5rIixuKSxlLmhlYWQuYXBwZW5kQ2hpbGQobCksdC5pbnN0YW5jZT1sKTtjYXNlInZvaWQiOnJldHVybiBudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3Iocyg0NDMsdC50eXBlKSl9ZWxzZSB0LnR5cGU9PT0ic3R5bGVzaGVldCImJih0LnN0YXRlLmxvYWRpbmcmNCk9PT0wJiYobj10Lmluc3RhbmNlLHQuc3RhdGUubG9hZGluZ3w9NCxDaShuLGEucHJlY2VkZW5jZSxlKSk7cmV0dXJuIHQuaW5zdGFuY2V9ZnVuY3Rpb24gQ2koZSx0LGEpe2Zvcih2YXIgbj1hLnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il1bZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdJyksbD1uLmxlbmd0aD9uW24ubGVuZ3RoLTFdOm51bGwsaT1sLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGM9blt1XTtpZihjLmRhdGFzZXQucHJlY2VkZW5jZT09PXQpaT1jO2Vsc2UgaWYoaSE9PWwpYnJlYWt9aT9pLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGUsaS5uZXh0U2libGluZyk6KHQ9YS5ub2RlVHlwZT09PTk/YS5oZWFkOmEsdC5pbnNlcnRCZWZvcmUoZSx0LmZpcnN0Q2hpbGQpKX1mdW5jdGlvbiBpbyhlLHQpe2UuY3Jvc3NPcmlnaW49PW51bGwmJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLGUucmVmZXJyZXJQb2xpY3k9PW51bGwmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLGUudGl0bGU9PW51bGwmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIHVvKGUsdCl7ZS5jcm9zc09yaWdpbj09bnVsbCYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksZS5yZWZlcnJlclBvbGljeT09bnVsbCYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksZS5pbnRlZ3JpdHk9PW51bGwmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIHFpPW51bGw7ZnVuY3Rpb24gZmQoZSx0LGEpe2lmKHFpPT09bnVsbCl7dmFyIG49bmV3IE1hcCxsPXFpPW5ldyBNYXA7bC5zZXQoYSxuKX1lbHNlIGw9cWksbj1sLmdldChhKSxufHwobj1uZXcgTWFwLGwuc2V0KGEsbikpO2lmKG4uaGFzKGUpKXJldHVybiBuO2ZvcihuLnNldChlLG51bGwpLGE9YS5nZXRFbGVtZW50c0J5VGFnTmFtZShlKSxsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBpPWFbbF07aWYoIShpW05uXXx8aVtaZV18fGU9PT0ibGluayImJmkuZ2V0QXR0cmlidXRlKCJyZWwiKT09PSJzdHlsZXNoZWV0IikmJmkubmFtZXNwYWNlVVJJIT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIil7dmFyIHU9aS5nZXRBdHRyaWJ1dGUodCl8fCIiO3U9ZSt1O3ZhciBjPW4uZ2V0KHUpO2M/Yy5wdXNoKGkpOm4uc2V0KHUsW2ldKX19cmV0dXJuIG59ZnVuY3Rpb24gZGQoZSx0LGEpe2U9ZS5vd25lckRvY3VtZW50fHxlLGUuaGVhZC5pbnNlcnRCZWZvcmUoYSx0PT09InRpdGxlIj9lLnF1ZXJ5U2VsZWN0b3IoImhlYWQgPiB0aXRsZSIpOm51bGwpfWZ1bmN0aW9uIGJfKGUsdCxhKXtpZihhPT09MXx8dC5pdGVtUHJvcCE9bnVsbClyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZSJtZXRhIjpjYXNlInRpdGxlIjpyZXR1cm4hMDtjYXNlInN0eWxlIjppZih0eXBlb2YgdC5wcmVjZWRlbmNlIT0ic3RyaW5nInx8dHlwZW9mIHQuaHJlZiE9InN0cmluZyJ8fHQuaHJlZj09PSIiKWJyZWFrO3JldHVybiEwO2Nhc2UibGluayI6aWYodHlwZW9mIHQucmVsIT0ic3RyaW5nInx8dHlwZW9mIHQuaHJlZiE9InN0cmluZyJ8fHQuaHJlZj09PSIifHx0Lm9uTG9hZHx8dC5vbkVycm9yKWJyZWFrO3JldHVybiB0LnJlbD09PSJzdHlsZXNoZWV0Ij8oZT10LmRpc2FibGVkLHR5cGVvZiB0LnByZWNlZGVuY2U9PSJzdHJpbmciJiZlPT1udWxsKTohMDtjYXNlInNjcmlwdCI6aWYodC5hc3luYyYmdHlwZW9mIHQuYXN5bmMhPSJmdW5jdGlvbiImJnR5cGVvZiB0LmFzeW5jIT0ic3ltYm9sIiYmIXQub25Mb2FkJiYhdC5vbkVycm9yJiZ0LnNyYyYmdHlwZW9mIHQuc3JjPT0ic3RyaW5nIilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBoZChlKXtyZXR1cm4hKGUudHlwZT09PSJzdHlsZXNoZWV0IiYmKGUuc3RhdGUubG9hZGluZyYzKT09PTApfXZhciB5bD1udWxsO2Z1bmN0aW9uIFNfKCl7fWZ1bmN0aW9uIFRfKGUsdCxhKXtpZih5bD09PW51bGwpdGhyb3cgRXJyb3Iocyg0NzUpKTt2YXIgbj15bDtpZih0LnR5cGU9PT0ic3R5bGVzaGVldCImJih0eXBlb2YgYS5tZWRpYSE9InN0cmluZyJ8fG1hdGNoTWVkaWEoYS5tZWRpYSkubWF0Y2hlcyE9PSExKSYmKHQuc3RhdGUubG9hZGluZyY0KT09PTApe2lmKHQuaW5zdGFuY2U9PT1udWxsKXt2YXIgbD1UbihhLmhyZWYpLGk9ZS5xdWVyeVNlbGVjdG9yKF9sKGwpKTtpZihpKXtlPWkuX3AsZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0IiYmdHlwZW9mIGUudGhlbj09ImZ1bmN0aW9uIiYmKG4uY291bnQrKyxuPWppLmJpbmQobiksZS50aGVuKG4sbikpLHQuc3RhdGUubG9hZGluZ3w9NCx0Lmluc3RhbmNlPWksSGUoaSk7cmV0dXJufWk9ZS5vd25lckRvY3VtZW50fHxlLGE9c2QoYSksKGw9U3QuZ2V0KGwpKSYmaW8oYSxsKSxpPWkuY3JlYXRlRWxlbWVudCgibGluayIpLEhlKGkpO3ZhciB1PWk7dS5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihjLHIpe3Uub25sb2FkPWMsdS5vbmVycm9yPXJ9KSxRZShpLCJsaW5rIixhKSx0Lmluc3RhbmNlPWl9bi5zdHlsZXNoZWV0cz09PW51bGwmJihuLnN0eWxlc2hlZXRzPW5ldyBNYXApLG4uc3R5bGVzaGVldHMuc2V0KHQsZSksKGU9dC5zdGF0ZS5wcmVsb2FkKSYmKHQuc3RhdGUubG9hZGluZyYzKT09PTAmJihuLmNvdW50KyssdD1qaS5iaW5kKG4pLGUuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsdCksZS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsdCkpfX1mdW5jdGlvbiBFXygpe2lmKHlsPT09bnVsbCl0aHJvdyBFcnJvcihzKDQ3NSkpO3ZhciBlPXlsO3JldHVybiBlLnN0eWxlc2hlZXRzJiZlLmNvdW50PT09MCYmY28oZSxlLnN0eWxlc2hlZXRzKSwwPGUuY291bnQ/ZnVuY3Rpb24odCl7dmFyIGE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKGUuc3R5bGVzaGVldHMmJmNvKGUsZS5zdHlsZXNoZWV0cyksZS51bnN1c3BlbmQpe3ZhciBuPWUudW5zdXNwZW5kO2UudW5zdXNwZW5kPW51bGwsbigpfX0sNmU0KTtyZXR1cm4gZS51bnN1c3BlbmQ9dCxmdW5jdGlvbigpe2UudW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KGEpfX06bnVsbH1mdW5jdGlvbiBqaSgpe2lmKHRoaXMuY291bnQtLSx0aGlzLmNvdW50PT09MCl7aWYodGhpcy5zdHlsZXNoZWV0cyljbyh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIEhpPW51bGw7ZnVuY3Rpb24gY28oZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsZS51bnN1c3BlbmQhPT1udWxsJiYoZS5jb3VudCsrLEhpPW5ldyBNYXAsdC5mb3JFYWNoKEFfLGUpLEhpPW51bGwsamkuY2FsbChlKSl9ZnVuY3Rpb24gQV8oZSx0KXtpZighKHQuc3RhdGUubG9hZGluZyY0KSl7dmFyIGE9SGkuZ2V0KGUpO2lmKGEpdmFyIG49YS5nZXQobnVsbCk7ZWxzZXthPW5ldyBNYXAsSGkuc2V0KGUsYSk7Zm9yKHZhciBsPWUucXVlcnlTZWxlY3RvckFsbCgibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iKSxpPTA7aTxsLmxlbmd0aDtpKyspe3ZhciB1PWxbaV07KHUubm9kZU5hbWU9PT0iTElOSyJ8fHUuZ2V0QXR0cmlidXRlKCJtZWRpYSIpIT09Im5vdCBhbGwiKSYmKGEuc2V0KHUuZGF0YXNldC5wcmVjZWRlbmNlLHUpLG49dSl9biYmYS5zZXQobnVsbCxuKX1sPXQuaW5zdGFuY2UsdT1sLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIiksaT1hLmdldCh1KXx8bixpPT09biYmYS5zZXQobnVsbCxsKSxhLnNldCh1LGwpLHRoaXMuY291bnQrKyxuPWppLmJpbmQodGhpcyksbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuKSxsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKSxpP2kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxpLm5leHRTaWJsaW5nKTooZT1lLm5vZGVUeXBlPT09OT9lLmhlYWQ6ZSxlLmluc2VydEJlZm9yZShsLGUuZmlyc3RDaGlsZCkpLHQuc3RhdGUubG9hZGluZ3w9NH19dmFyIHBsPXskJHR5cGVvZjpTZSxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2N1cnJlbnRWYWx1ZTpRLF9jdXJyZW50VmFsdWUyOlEsX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIHhfKGUsdCxhLG4sbCxpLHUsYyl7dGhpcy50YWc9MSx0aGlzLmNvbnRhaW5lckluZm89ZSx0aGlzLnBpbmdDYWNoZT10aGlzLmN1cnJlbnQ9dGhpcy5wZW5kaW5nQ2hpbGRyZW49bnVsbCx0aGlzLnRpbWVvdXRIYW5kbGU9LTEsdGhpcy5jYWxsYmFja05vZGU9dGhpcy5uZXh0PXRoaXMucGVuZGluZ0NvbnRleHQ9dGhpcy5jb250ZXh0PXRoaXMuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLHRoaXMuY2FsbGJhY2tQcmlvcml0eT0wLHRoaXMuZXhwaXJhdGlvblRpbWVzPW51KC0xKSx0aGlzLmVudGFuZ2xlZExhbmVzPXRoaXMuc2hlbGxTdXNwZW5kQ291bnRlcj10aGlzLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzPXRoaXMuZXhwaXJlZExhbmVzPXRoaXMud2FybUxhbmVzPXRoaXMucGluZ2VkTGFuZXM9dGhpcy5zdXNwZW5kZWRMYW5lcz10aGlzLnBlbmRpbmdMYW5lcz0wLHRoaXMuZW50YW5nbGVtZW50cz1udSgwKSx0aGlzLmhpZGRlblVwZGF0ZXM9bnUobnVsbCksdGhpcy5pZGVudGlmaWVyUHJlZml4PW4sdGhpcy5vblVuY2F1Z2h0RXJyb3I9bCx0aGlzLm9uQ2F1Z2h0RXJyb3I9aSx0aGlzLm9uUmVjb3ZlcmFibGVFcnJvcj11LHRoaXMucG9vbGVkQ2FjaGU9bnVsbCx0aGlzLnBvb2xlZENhY2hlTGFuZXM9MCx0aGlzLmZvcm1TdGF0ZT1jLHRoaXMuaW5jb21wbGV0ZVRyYW5zaXRpb25zPW5ldyBNYXB9ZnVuY3Rpb24gbWQoZSx0LGEsbixsLGksdSxjLHIscCxBLFIpe3JldHVybiBlPW5ldyB4XyhlLHQsYSx1LGMscixwLFIpLHQ9MSxpPT09ITAmJih0fD0yNCksaT1jdCgzLG51bGwsbnVsbCx0KSxlLmN1cnJlbnQ9aSxpLnN0YXRlTm9kZT1lLHQ9WHUoKSx0LnJlZkNvdW50KyssZS5wb29sZWRDYWNoZT10LHQucmVmQ291bnQrKyxpLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bixpc0RlaHlkcmF0ZWQ6YSxjYWNoZTp0fSxWdShpKSxlfWZ1bmN0aW9uIF9kKGUpe3JldHVybiBlPyhlPUlhLGUpOklhfWZ1bmN0aW9uIHZkKGUsdCxhLG4sbCxpKXtsPV9kKGwpLG4uY29udGV4dD09PW51bGw/bi5jb250ZXh0PWw6bi5wZW5kaW5nQ29udGV4dD1sLG49ZWEodCksbi5wYXlsb2FkPXtlbGVtZW50OmF9LGk9aT09PXZvaWQgMD9udWxsOmksaSE9PW51bGwmJihuLmNhbGxiYWNrPWkpLGE9dGEoZSxuLHQpLGEhPT1udWxsJiYoZHQoYSxlLHQpLEpuKGEsZSx0KSl9ZnVuY3Rpb24geWQoZSx0KXtpZihlPWUubWVtb2l6ZWRTdGF0ZSxlIT09bnVsbCYmZS5kZWh5ZHJhdGVkIT09bnVsbCl7dmFyIGE9ZS5yZXRyeUxhbmU7ZS5yZXRyeUxhbmU9YSE9PTAmJmE8dD9hOnR9fWZ1bmN0aW9uIG9vKGUsdCl7eWQoZSx0KSwoZT1lLmFsdGVybmF0ZSkmJnlkKGUsdCl9ZnVuY3Rpb24gcGQoZSl7aWYoZS50YWc9PT0xMyl7dmFyIHQ9UGEoZSw2NzEwODg2NCk7dCE9PW51bGwmJmR0KHQsZSw2NzEwODg2NCksb28oZSw2NzEwODg2NCl9fXZhciBCaT0hMDtmdW5jdGlvbiB6XyhlLHQsYSxuKXt2YXIgbD14LlQ7eC5UPW51bGw7dmFyIGk9Qy5wO3RyeXtDLnA9MixzbyhlLHQsYSxuKX1maW5hbGx5e0MucD1pLHguVD1sfX1mdW5jdGlvbiBSXyhlLHQsYSxuKXt2YXIgbD14LlQ7eC5UPW51bGw7dmFyIGk9Qy5wO3RyeXtDLnA9OCxzbyhlLHQsYSxuKX1maW5hbGx5e0MucD1pLHguVD1sfX1mdW5jdGlvbiBzbyhlLHQsYSxuKXtpZihCaSl7dmFyIGw9cm8obik7aWYobD09PW51bGwpV2MoZSx0LG4sWWksYSksYmQoZSxuKTtlbHNlIGlmKE5fKGwsZSx0LGEsbikpbi5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKGJkKGUsbiksdCY0JiYtMTxEXy5pbmRleE9mKGUpKXtmb3IoO2whPT1udWxsOyl7dmFyIGk9TGEobCk7aWYoaSE9PW51bGwpc3dpdGNoKGkudGFnKXtjYXNlIDM6aWYoaT1pLnN0YXRlTm9kZSxpLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciB1PWdhKGkucGVuZGluZ0xhbmVzKTtpZih1IT09MCl7dmFyIGM9aTtmb3IoYy5wZW5kaW5nTGFuZXN8PTIsYy5lbnRhbmdsZWRMYW5lc3w9Mjt1Oyl7dmFyIHI9MTw8MzEtaXQodSk7Yy5lbnRhbmdsZW1lbnRzWzFdfD1yLHUmPX5yfU90KGkpLChvZSY2KT09PTAmJihUaT16dCgpKzUwMCxmbCgwKSl9fWJyZWFrO2Nhc2UgMTM6Yz1QYShpLDIpLGMhPT1udWxsJiZkdChjLGksMiksQWkoKSxvbyhpLDIpfWlmKGk9cm8obiksaT09PW51bGwmJldjKGUsdCxuLFlpLGEpLGk9PT1sKWJyZWFrO2w9aX1sIT09bnVsbCYmbi5zdG9wUHJvcGFnYXRpb24oKX1lbHNlIFdjKGUsdCxuLG51bGwsYSl9fWZ1bmN0aW9uIHJvKGUpe3JldHVybiBlPV91KGUpLGZvKGUpfXZhciBZaT1udWxsO2Z1bmN0aW9uIGZvKGUpe2lmKFlpPW51bGwsZT1ZYShlKSxlIT09bnVsbCl7dmFyIHQ9TShlKTtpZih0PT09bnVsbCllPW51bGw7ZWxzZXt2YXIgYT10LnRhZztpZihhPT09MTMpe2lmKGU9dyh0KSxlIT09bnVsbClyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZihhPT09Myl7aWYodC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gdC50YWc9PT0zP3Quc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSB0IT09ZSYmKGU9bnVsbCl9fXJldHVybiBZaT1lLG51bGx9ZnVuY3Rpb24gZ2QoZSl7c3dpdGNoKGUpe2Nhc2UiYmVmb3JldG9nZ2xlIjpjYXNlImNhbmNlbCI6Y2FzZSJjbGljayI6Y2FzZSJjbG9zZSI6Y2FzZSJjb250ZXh0bWVudSI6Y2FzZSJjb3B5IjpjYXNlImN1dCI6Y2FzZSJhdXhjbGljayI6Y2FzZSJkYmxjbGljayI6Y2FzZSJkcmFnZW5kIjpjYXNlImRyYWdzdGFydCI6Y2FzZSJkcm9wIjpjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmNhc2UiaW5wdXQiOmNhc2UiaW52YWxpZCI6Y2FzZSJrZXlkb3duIjpjYXNlImtleXByZXNzIjpjYXNlImtleXVwIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZXVwIjpjYXNlInBhc3RlIjpjYXNlInBhdXNlIjpjYXNlInBsYXkiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVydXAiOmNhc2UicmF0ZWNoYW5nZSI6Y2FzZSJyZXNldCI6Y2FzZSJyZXNpemUiOmNhc2Uic2Vla2VkIjpjYXNlInN1Ym1pdCI6Y2FzZSJ0b2dnbGUiOmNhc2UidG91Y2hjYW5jZWwiOmNhc2UidG91Y2hlbmQiOmNhc2UidG91Y2hzdGFydCI6Y2FzZSJ2b2x1bWVjaGFuZ2UiOmNhc2UiY2hhbmdlIjpjYXNlInNlbGVjdGlvbmNoYW5nZSI6Y2FzZSJ0ZXh0SW5wdXQiOmNhc2UiY29tcG9zaXRpb25zdGFydCI6Y2FzZSJjb21wb3NpdGlvbmVuZCI6Y2FzZSJjb21wb3NpdGlvbnVwZGF0ZSI6Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6Y2FzZSJiZWZvcmVpbnB1dCI6Y2FzZSJibHVyIjpjYXNlImZ1bGxzY3JlZW5jaGFuZ2UiOmNhc2UiZm9jdXMiOmNhc2UiaGFzaGNoYW5nZSI6Y2FzZSJwb3BzdGF0ZSI6Y2FzZSJzZWxlY3QiOmNhc2Uic2VsZWN0c3RhcnQiOnJldHVybiAyO2Nhc2UiZHJhZyI6Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2V4aXQiOmNhc2UiZHJhZ2xlYXZlIjpjYXNlImRyYWdvdmVyIjpjYXNlIm1vdXNlbW92ZSI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UicG9pbnRlcm1vdmUiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJwb2ludGVyb3ZlciI6Y2FzZSJzY3JvbGwiOmNhc2UidG91Y2htb3ZlIjpjYXNlIndoZWVsIjpjYXNlIm1vdXNlZW50ZXIiOmNhc2UibW91c2VsZWF2ZSI6Y2FzZSJwb2ludGVyZW50ZXIiOmNhc2UicG9pbnRlcmxlYXZlIjpyZXR1cm4gODtjYXNlIm1lc3NhZ2UiOnN3aXRjaChoaCgpKXtjYXNlIHdvOnJldHVybiAyO2Nhc2UgVW86cmV0dXJuIDg7Y2FzZSBPbDpjYXNlIG1oOnJldHVybiAzMjtjYXNlIENvOnJldHVybiAyNjg0MzU0NTY7ZGVmYXVsdDpyZXR1cm4gMzJ9ZGVmYXVsdDpyZXR1cm4gMzJ9fXZhciBobz0hMSxtYT1udWxsLF9hPW51bGwsdmE9bnVsbCxnbD1uZXcgTWFwLGJsPW5ldyBNYXAseWE9W10sRF89Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBiZChlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOm1hPW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpfYT1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0Ijp2YT1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6Z2wuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6YmwuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gU2woZSx0LGEsbixsLGkpe3JldHVybiBlPT09bnVsbHx8ZS5uYXRpdmVFdmVudCE9PWk/KGU9e2Jsb2NrZWRPbjp0LGRvbUV2ZW50TmFtZTphLGV2ZW50U3lzdGVtRmxhZ3M6bixuYXRpdmVFdmVudDppLHRhcmdldENvbnRhaW5lcnM6W2xdfSx0IT09bnVsbCYmKHQ9TGEodCksdCE9PW51bGwmJnBkKHQpKSxlKTooZS5ldmVudFN5c3RlbUZsYWdzfD1uLHQ9ZS50YXJnZXRDb250YWluZXJzLGwhPT1udWxsJiZ0LmluZGV4T2YobCk9PT0tMSYmdC5wdXNoKGwpLGUpfWZ1bmN0aW9uIE5fKGUsdCxhLG4sbCl7c3dpdGNoKHQpe2Nhc2UiZm9jdXNpbiI6cmV0dXJuIG1hPVNsKG1hLGUsdCxhLG4sbCksITA7Y2FzZSJkcmFnZW50ZXIiOnJldHVybiBfYT1TbChfYSxlLHQsYSxuLGwpLCEwO2Nhc2UibW91c2VvdmVyIjpyZXR1cm4gdmE9U2wodmEsZSx0LGEsbixsKSwhMDtjYXNlInBvaW50ZXJvdmVyIjp2YXIgaT1sLnBvaW50ZXJJZDtyZXR1cm4gZ2wuc2V0KGksU2woZ2wuZ2V0KGkpfHxudWxsLGUsdCxhLG4sbCkpLCEwO2Nhc2UiZ290cG9pbnRlcmNhcHR1cmUiOnJldHVybiBpPWwucG9pbnRlcklkLGJsLnNldChpLFNsKGJsLmdldChpKXx8bnVsbCxlLHQsYSxuLGwpKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBTZChlKXt2YXIgdD1ZYShlLnRhcmdldCk7aWYodCE9PW51bGwpe3ZhciBhPU0odCk7aWYoYSE9PW51bGwpe2lmKHQ9YS50YWcsdD09PTEzKXtpZih0PXcoYSksdCE9PW51bGwpe2UuYmxvY2tlZE9uPXQsVGgoZS5wcmlvcml0eSxmdW5jdGlvbigpe2lmKGEudGFnPT09MTMpe3ZhciBuPWZ0KCk7bj1sdShuKTt2YXIgbD1QYShhLG4pO2whPT1udWxsJiZkdChsLGEsbiksb28oYSxuKX19KTtyZXR1cm59fWVsc2UgaWYodD09PTMmJmEuc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2UuYmxvY2tlZE9uPWEudGFnPT09Mz9hLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBMaShlKXtpZihlLmJsb2NrZWRPbiE9PW51bGwpcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIGE9cm8oZS5uYXRpdmVFdmVudCk7aWYoYT09PW51bGwpe2E9ZS5uYXRpdmVFdmVudDt2YXIgbj1uZXcgYS5jb25zdHJ1Y3RvcihhLnR5cGUsYSk7bXU9bixhLnRhcmdldC5kaXNwYXRjaEV2ZW50KG4pLG11PW51bGx9ZWxzZSByZXR1cm4gdD1MYShhKSx0IT09bnVsbCYmcGQodCksZS5ibG9ja2VkT249YSwhMTt0LnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gVGQoZSx0LGEpe0xpKGUpJiZhLmRlbGV0ZSh0KX1mdW5jdGlvbiBNXygpe2hvPSExLG1hIT09bnVsbCYmTGkobWEpJiYobWE9bnVsbCksX2EhPT1udWxsJiZMaShfYSkmJihfYT1udWxsKSx2YSE9PW51bGwmJkxpKHZhKSYmKHZhPW51bGwpLGdsLmZvckVhY2goVGQpLGJsLmZvckVhY2goVGQpfWZ1bmN0aW9uIEdpKGUsdCl7ZS5ibG9ja2VkT249PT10JiYoZS5ibG9ja2VkT249bnVsbCxob3x8KGhvPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LE1fKSkpfXZhciBYaT1udWxsO2Z1bmN0aW9uIEVkKGUpe1hpIT09ZSYmKFhpPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXtYaT09PWUmJihYaT1udWxsKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrPTMpe3ZhciBhPWVbdF0sbj1lW3QrMV0sbD1lW3QrMl07aWYodHlwZW9mIG4hPSJmdW5jdGlvbiIpe2lmKGZvKG58fGEpPT09bnVsbCljb250aW51ZTticmVha312YXIgaT1MYShhKTtpIT09bnVsbCYmKGUuc3BsaWNlKHQsMyksdC09MyxmYyhpLHtwZW5kaW5nOiEwLGRhdGE6bCxtZXRob2Q6YS5tZXRob2QsYWN0aW9uOm59LG4sbCkpfX0pKX1mdW5jdGlvbiBUbChlKXtmdW5jdGlvbiB0KHIpe3JldHVybiBHaShyLGUpfW1hIT09bnVsbCYmR2kobWEsZSksX2EhPT1udWxsJiZHaShfYSxlKSx2YSE9PW51bGwmJkdpKHZhLGUpLGdsLmZvckVhY2godCksYmwuZm9yRWFjaCh0KTtmb3IodmFyIGE9MDthPHlhLmxlbmd0aDthKyspe3ZhciBuPXlhW2FdO24uYmxvY2tlZE9uPT09ZSYmKG4uYmxvY2tlZE9uPW51bGwpfWZvcig7MDx5YS5sZW5ndGgmJihhPXlhWzBdLGEuYmxvY2tlZE9uPT09bnVsbCk7KVNkKGEpLGEuYmxvY2tlZE9uPT09bnVsbCYmeWEuc2hpZnQoKTtpZihhPShlLm93bmVyRG9jdW1lbnR8fGUpLiQkcmVhY3RGb3JtUmVwbGF5LGEhPW51bGwpZm9yKG49MDtuPGEubGVuZ3RoO24rPTMpe3ZhciBsPWFbbl0saT1hW24rMV0sdT1sW1dlXXx8bnVsbDtpZih0eXBlb2YgaT09ImZ1bmN0aW9uIil1fHxFZChhKTtlbHNlIGlmKHUpe3ZhciBjPW51bGw7aWYoaSYmaS5oYXNBdHRyaWJ1dGUoImZvcm1BY3Rpb24iKSl7aWYobD1pLHU9aVtXZV18fG51bGwpYz11LmZvcm1BY3Rpb247ZWxzZSBpZihmbyhsKSE9PW51bGwpY29udGludWV9ZWxzZSBjPXUuYWN0aW9uO3R5cGVvZiBjPT0iZnVuY3Rpb24iP2FbbisxXT1jOihhLnNwbGljZShuLDMpLG4tPTMpLEVkKGEpfX19ZnVuY3Rpb24gbW8oZSl7dGhpcy5faW50ZXJuYWxSb290PWV9UWkucHJvdG90eXBlLnJlbmRlcj1tby5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZih0PT09bnVsbCl0aHJvdyBFcnJvcihzKDQwOSkpO3ZhciBhPXQuY3VycmVudCxuPWZ0KCk7dmQoYSxuLGUsdCxudWxsLG51bGwpfSxRaS5wcm90b3R5cGUudW5tb3VudD1tby5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihlIT09bnVsbCl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO3ZkKGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLEFpKCksdFtCYV09bnVsbH19O2Z1bmN0aW9uIFFpKGUpe3RoaXMuX2ludGVybmFsUm9vdD1lfVFpLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1ZbygpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgYT0wO2E8eWEubGVuZ3RoJiZ0IT09MCYmdDx5YVthXS5wcmlvcml0eTthKyspO3lhLnNwbGljZShhLDAsZSksYT09PTAmJlNkKGUpfX07dmFyIEFkPWYudmVyc2lvbjtpZihBZCE9PSIxOS4xLjEiKXRocm93IEVycm9yKHMoNTI3LEFkLCIxOS4xLjEiKSk7Qy5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgdD1lLl9yZWFjdEludGVybmFscztpZih0PT09dm9pZCAwKXRocm93IHR5cGVvZiBlLnJlbmRlcj09ImZ1bmN0aW9uIj9FcnJvcihzKDE4OCkpOihlPU9iamVjdC5rZXlzKGUpLmpvaW4oIiwiKSxFcnJvcihzKDI2OCxlKSkpO3JldHVybiBlPUQodCksZT1lIT09bnVsbD9TKGUpOm51bGwsZT1lPT09bnVsbD9udWxsOmUuc3RhdGVOb2RlLGV9O3ZhciBPXz17YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjEuMSIscmVuZGVyZXJQYWNrYWdlTmFtZToicmVhY3QtZG9tIixjdXJyZW50RGlzcGF0Y2hlclJlZjp4LHJlY29uY2lsZXJWZXJzaW9uOiIxOS4xLjEifTtpZih0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fPCJ1Iil7dmFyIGtpPV9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztpZigha2kuaXNEaXNhYmxlZCYma2kuc3VwcG9ydHNGaWJlcil0cnl7em49a2kuaW5qZWN0KE9fKSxsdD1raX1jYXRjaHt9fXJldHVybiBBbC5jcmVhdGVSb290PWZ1bmN0aW9uKGUsdCl7aWYoIVQoZSkpdGhyb3cgRXJyb3IocygyOTkpKTt2YXIgYT0hMSxuPSIiLGw9WXIsaT1Mcix1PUdyLGM9bnVsbDtyZXR1cm4gdCE9bnVsbCYmKHQudW5zdGFibGVfc3RyaWN0TW9kZT09PSEwJiYoYT0hMCksdC5pZGVudGlmaWVyUHJlZml4IT09dm9pZCAwJiYobj10LmlkZW50aWZpZXJQcmVmaXgpLHQub25VbmNhdWdodEVycm9yIT09dm9pZCAwJiYobD10Lm9uVW5jYXVnaHRFcnJvciksdC5vbkNhdWdodEVycm9yIT09dm9pZCAwJiYoaT10Lm9uQ2F1Z2h0RXJyb3IpLHQub25SZWNvdmVyYWJsZUVycm9yIT09dm9pZCAwJiYodT10Lm9uUmVjb3ZlcmFibGVFcnJvciksdC51bnN0YWJsZV90cmFuc2l0aW9uQ2FsbGJhY2tzIT09dm9pZCAwJiYoYz10LnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MpKSx0PW1kKGUsMSwhMSxudWxsLG51bGwsYSxuLGwsaSx1LGMsbnVsbCksZVtCYV09dC5jdXJyZW50LCRjKGUpLG5ldyBtbyh0KX0sQWwuaHlkcmF0ZVJvb3Q9ZnVuY3Rpb24oZSx0LGEpe2lmKCFUKGUpKXRocm93IEVycm9yKHMoMjk5KSk7dmFyIG49ITEsbD0iIixpPVlyLHU9THIsYz1HcixyPW51bGwscD1udWxsO3JldHVybiBhIT1udWxsJiYoYS51bnN0YWJsZV9zdHJpY3RNb2RlPT09ITAmJihuPSEwKSxhLmlkZW50aWZpZXJQcmVmaXghPT12b2lkIDAmJihsPWEuaWRlbnRpZmllclByZWZpeCksYS5vblVuY2F1Z2h0RXJyb3IhPT12b2lkIDAmJihpPWEub25VbmNhdWdodEVycm9yKSxhLm9uQ2F1Z2h0RXJyb3IhPT12b2lkIDAmJih1PWEub25DYXVnaHRFcnJvciksYS5vblJlY292ZXJhYmxlRXJyb3IhPT12b2lkIDAmJihjPWEub25SZWNvdmVyYWJsZUVycm9yKSxhLnVuc3RhYmxlX3RyYW5zaXRpb25DYWxsYmFja3MhPT12b2lkIDAmJihyPWEudW5zdGFibGVfdHJhbnNpdGlvbkNhbGxiYWNrcyksYS5mb3JtU3RhdGUhPT12b2lkIDAmJihwPWEuZm9ybVN0YXRlKSksdD1tZChlLDEsITAsdCxhPz9udWxsLG4sbCxpLHUsYyxyLHApLHQuY29udGV4dD1fZChudWxsKSxhPXQuY3VycmVudCxuPWZ0KCksbj1sdShuKSxsPWVhKG4pLGwuY2FsbGJhY2s9bnVsbCx0YShhLGwsbiksYT1uLHQuY3VycmVudC5sYW5lcz1hLERuKHQsYSksT3QodCksZVtCYV09dC5jdXJyZW50LCRjKGUpLG5ldyBRaSh0KX0sQWwudmVyc2lvbj0iMTkuMS4xIixBbH12YXIgQ2Q7ZnVuY3Rpb24gR18oKXtpZihDZClyZXR1cm4gdm8uZXhwb3J0cztDZD0xO2Z1bmN0aW9uIG8oKXtpZighKHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18+InUifHx0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFIT0iZnVuY3Rpb24iKSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKG8pfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoZil9fXJldHVybiBvKCksdm8uZXhwb3J0cz1MXygpLHZvLmV4cG9ydHN9dmFyIFhfPUdfKCk7Y29uc3QgUV89Im1vZHVsZXByZWxvYWQiLGtfPWZ1bmN0aW9uKG8pe3JldHVybiIvdjIvIitvfSxxZD17fSx4bj1mdW5jdGlvbihmLG0scyl7bGV0IFQ9UHJvbWlzZS5yZXNvbHZlKCk7aWYobSYmbS5sZW5ndGg+MCl7bGV0IEQ9ZnVuY3Rpb24oUyl7cmV0dXJuIFByb21pc2UuYWxsKFMubWFwKE89PlByb21pc2UucmVzb2x2ZShPKS50aGVuKFY9Pih7c3RhdHVzOiJmdWxmaWxsZWQiLHZhbHVlOlZ9KSxWPT4oe3N0YXR1czoicmVqZWN0ZWQiLHJlYXNvbjpWfSkpKSl9O2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIik7Y29uc3Qgdz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJtZXRhW3Byb3BlcnR5PWNzcC1ub25jZV0iKSxFPXc/Lm5vbmNlfHx3Py5nZXRBdHRyaWJ1dGUoIm5vbmNlIik7VD1EKG0ubWFwKFM9PntpZihTPWtfKFMpLFMgaW4gcWQpcmV0dXJuO3FkW1NdPSEwO2NvbnN0IE89Uy5lbmRzV2l0aCgiLmNzcyIpLFY9Tz8nW3JlbD0ic3R5bGVzaGVldCJdJzoiIjtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9IiR7U30iXSR7Vn1gKSlyZXR1cm47Y29uc3QgSD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7aWYoSC5yZWw9Tz8ic3R5bGVzaGVldCI6UV8sT3x8KEguYXM9InNjcmlwdCIpLEguY3Jvc3NPcmlnaW49IiIsSC5ocmVmPVMsRSYmSC5zZXRBdHRyaWJ1dGUoIm5vbmNlIixFKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEgpLE8pcmV0dXJuIG5ldyBQcm9taXNlKChjZSxoZSk9PntILmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGNlKSxILmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+aGUobmV3IEVycm9yKGBVbmFibGUgdG8gcHJlbG9hZCBDU1MgZm9yICR7U31gKSkpfSl9KSl9ZnVuY3Rpb24gTSh3KXtjb25zdCBFPW5ldyBFdmVudCgidml0ZTpwcmVsb2FkRXJyb3IiLHtjYW5jZWxhYmxlOiEwfSk7aWYoRS5wYXlsb2FkPXcsd2luZG93LmRpc3BhdGNoRXZlbnQoRSksIUUuZGVmYXVsdFByZXZlbnRlZCl0aHJvdyB3fXJldHVybiBULnRoZW4odz0+e2Zvcihjb25zdCBFIG9mIHd8fFtdKUUuc3RhdHVzPT09InJlamVjdGVkIiYmTShFLnJlYXNvbik7cmV0dXJuIGYoKS5jYXRjaChNKX0pfTt2YXIgWT16bygpO2NvbnN0IFpfPXsic2hlbGwuc3dpdGNoX2xpZ2h0Ijoi5YiH5o2i5rWF6Imy5qih5byPIiwic2hlbGwuc3dpdGNoX2RhcmsiOiLliIfmjaLmt7HoibLmqKHlvI8iLCJzaGVsbC51cGRhdGVfYXZhaWxhYmxlIjoi5paw54mI5bey5bCx57uq77yM5Yi35paw5ZCO5L2/55So44CCIiwic2hlbGwucmVsb2FkIjoi5Yi35paw6aG16Z2iIiwiYXBwLm5hbWUiOiJRdWFudFN0cmF0ZWd5TGFiIiwibmF2Lm1haW4iOiLkuLvlr7zoiKoiLCJuYXYub3ZlcnZpZXciOiLmgLvop4giLCJuYXYucGVyZm9ybWFuY2UiOiLmlLbnm4rliIbmnpAiLCJuYXYuZGVjaXNpb25zIjoi5b6F5YqeIiwibmF2LmFjY291bnRzIjoi6LSm5oi3IiwibmF2LnN0cmF0ZWdpZXMiOiLnrZbnlaUiLCJuYXYuaGVhbHRoIjoi6L+Q6KGM54q25oCBIiwibmF2Lm1vcmUiOiLmm7TlpJoiLCJjb21tb24ubG9hZGluZyI6Iuato+WcqOivu+WPluKApiIsImNvbW1vbi5yZXRyeSI6IumHjeivlSIsImNvbW1vbi5jbG9zZSI6IuWFs+mXrSIsImNvbW1vbi5jYW5jZWwiOiLlj5bmtogiLCJjb21tb24uY29uZmlybSI6IuehruiupOe7p+e7rSIsImNvbW1vbi5zYXZlIjoi5L+d5a2YIiwiY29tbW9uLmVkaXQiOiLnvJbovpEiLCJjb21tb24uYmFjayI6Iui/lOWbniIsImNvbW1vbi5hbGwiOiLlhajpg6giLCJjb21tb24ubm9uZSI6IuaXoCIsImNvbW1vbi51bmtub3duIjoi5pyq55+lIiwiY29tbW9uLm5hIjoi4oCUIiwiY29tbW9uLmFzX29mIjoi5pWw5o2u5pel5pyfIHt2YWx1ZX0iLCJjb21tb24udXBkYXRlZF9hdCI6IuabtOaWsOS6jiB7dmFsdWV9IiwiY29tbW9uLnJlZnJlc2giOiLliLfmlrAiLCJjb21tb24ucmVmcmVzaGluZyI6Iuato+WcqOWIt+aWsOKApiIsImNvbW1vbi5jb3B5Ijoi5aSN5Yi2IiwiY29tbW9uLmNvcGllZCI6IuW3suWkjeWItiIsImNvbW1vbi52aWV3X2FsbCI6Iuafpeeci+WFqOmDqCIsImNvbW1vbi5sb2FkX21vcmUiOiLliqDovb3mm7TlpJoiLCJjb21tb24uZXhwYW5kIjoi5bGV5byAIiwiY29tbW9uLmNvbGxhcHNlIjoi5pS26LW3IiwiY29tbW9uLmFjY291bnQiOiLotKbmiLciLCJjb21tb24ucGxhdGZvcm0iOiLlubPlj7AiLCJjb21tb24uc3RyYXRlZ3kiOiLnrZbnlaUiLCJjb21tb24udGltZSI6IuaXtumXtCIsImNvbW1vbi5zdGF0dXMiOiLnirbmgIEiLCJjb21tb24uZGV0YWlscyI6IuivpuaDhSIsImNvbW1vbi5zeW50aGV0aWNfYmFkZ2UiOiLlkIjmiJDmvJTnpLoiLCJjb21tb24ucGFwZXJfYmFkZ2UiOiLmqKHmi58iLCJjb21tb24ucmVhZF9mYWlsZWRfYmFubmVyIjoi6YOo5YiG5pWw5o2u6K+75Y+W5aSx6LSl77yM6K+356iN5ZCO6YeN6K+V77yb6K+75Y+W5aSx6LSl5LiN5Luj6KGo5rKh5pyJ5YaF5a6544CCIiwiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiOiLmlL7lvIPmnKrkv53lrZjnmoTkv67mlLnvvJ8iLCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5Ijoi5b2T5YmN5pyJ5pyq5L+d5a2Y55qE5L+u5pS577yM56a75byA5ZCO5bCG5Lii5aSx44CCIiwic3RhdGUudW5rbm93bl9zdGF0dXMiOiLmnKrnn6XnirbmgIEiLCJzdGF0ZS5yZXZpZXciOiLlvoXlpI3moLgiLCJzdGF0ZS53YXRjaCI6IumcgOWFs+azqCIsInN0YXRlLmNyaXRpY2FsIjoi5Lil6YeNIiwic3RhdGUuYmxvY2tlZCI6Iui/kOihjOWPl+mYuyIsInN0YXRlLmZhaWxlZCI6Iui/kOihjOWksei0pSIsInN0YXRlLnJlYWRfaW5jb21wbGV0ZSI6Iuivu+WPluS4jeWujOaVtCIsInN0YXRlLmluc3VmZmljaWVudCI6Iui1hOaWmeS4jei2syIsInN0YXRlLnByZXZpZXdlZCI6IuW3sumihOiniCIsInN0YXRlLm5vX3N1Ym1pc3Npb24iOiLmnKrmj5DkuqTorqLljZUiLCJzdGF0ZS5ub19yZWJhbGFuY2UiOiLml6DpnIDosIPku5MiLCJzdGF0ZS5maWxsZWQiOiLlt7LmiJDkuqQiLCJzdGF0ZS5ub3RfZHVlIjoi5bCa5pyq5Yiw6L+Q6KGM5pe26Ze0Iiwic3RhdGUubWFya2V0X2Nsb3NlZCI6IuS8keW4giIsInN0YXRlLm91dHNpZGVfd2luZG93Ijoi5LiN5Zyo6L+Q6KGM5pe25q61Iiwic3RhdGUud2l0aGluX2dyYWNlIjoi5LuN5Zyo562J5b6F5pyfIiwic3RhdGUubWlzc2luZ19yZXBvcnQiOiLnvLrlsJHmiqXlkYoiLCJzdGF0ZS5lcnJvciI6Iui/kOihjOmUmeivryIsInN0YXRlLmhlYWx0aHkiOiLlgaXlurciLCJzdGF0ZS5ub19zaWduYWwiOiLml6Dkv6Hlj7ciLCJzdGF0ZS5vayI6Iuato+W4uCIsInN0YXRlLnBhcnRpYWwiOiLpg6jliIbmlbDmja4iLCJzdGF0ZS5zdGFsZSI6IuaVsOaNruWBj+aXpyIsInN0YXRlLm5vX2RhdGEiOiLmmoLml6DmlbDmja4iLCJzdGF0ZS5ub3RfY29ubmVjdGVkIjoi5pyq5o6l5YWlIiwic3RhdGUudW5hdmFpbGFibGUiOiLmmoLkuI3lj6/orqHnrpciLCJzdGF0ZS5yZWFkX2ZhaWxlZCI6Iuivu+WPluWksei0pSIsInJlYXNvbi5leHRlcm5hbF9jYXNoZmxvd19yZXF1aXJlZCI6Iue8uuWwkeWujOaVtOWHuuWFpemHkeiusOW9le+8jOmHkemineWPquiDveaMiei1hOS6p+WPmOWKqOWxleekuiIsInJlYXNvbi5maWxsc19ub3RfY29ubmVjdGVkIjoi5oiQ5Lqk6K6w5b2V5rqQ5pyq5o6l5YWlIiwicmVhc29uLmF2Z19jb3N0X21pc3NpbmciOiLnvLrlsJHmiJDmnKzku7fvvIzmnKrlrp7njrDnm4jkuo/mmoLkuI3lj6/orqHnrpciLCJyZWFzb24ubWl4ZWRfY3VycmVuY3kiOiLlpJrluIHnp43ml6Dms5XlkIjlubbkuLrljZXkuIDph5Hpop3vvJvmjInluIHnp43liIbliKvlsZXnpLoiLCJyZWFzb24uc25hcHNob3RfaGlzdG9yeV9taXNzaW5nIjoi57y65bCR5Y6G5Y+y6LWE5Lqn5b+r54WnIiwicmVhc29uLnNuYXBzaG90X21pc3NpbmciOiLnvLrlsJHotYTkuqflv6vnhaciLCJyZWFzb24ucHJldmlvdXNfc25hcHNob3RfbWlzc2luZyI6Iue8uuWwkeWJjeS4gOaXpeeahOi1hOS6p+W/q+eFpyIsInJlYXNvbi5ub25fdHJhZGluZ193ZWVrZW5kIjoi6Z2e5Lqk5piT5pelIiwicmVhc29uLmluY29tcGxldGVfbW9udGgiOiLlvZPmnIjmlbDmja7lsJrkuI3lrozmlbQiLCJyZWFzb24uaW5zdWZmaWNpZW50X29ic2VydmF0aW9ucyI6IuWOhuWPsuaVsOaNruS4jei2syIsInJlYXNvbi5pbnZhbGlkX3JldHVybl9wZXJpb2QiOiLljLrpl7Tnq6/ngrnml6DmlYgiLCJyZWFzb24ucG9zaXRpb25zX3BhcnRpYWxfY292ZXJhZ2UiOiLmjIHku5Pku4Xopobnm5bpg6jliIbotYTkuqciLCJyZWFzb24ucG9zaXRpb25zX25vdF9jb25uZWN0ZWQiOiLmjIHku5PmlbDmja7mupDmnKrmjqXlhaUiLCJyZWFzb24ucG9zaXRpb25zX3N0YWxlIjoi5oyB5LuT5pWw5o2u5YGP5penIiwicmVhc29uLmJlbmNobWFya19oaXN0b3J5X3VucmVhZGFibGUiOiLln7rlh4bmlbDmja7or7vlj5blpLHotKUiLCJyZWFzb24ucG9zaXRpb25fdmFsdWVfbWlzc2luZyI6Iue8uuWwkeaMgeS7k+W4guWAvCIsInJlYXNvbi5ub19jb21tb25fZGF0ZSI6IuS4juWfuuWHhuayoeacieWPr+Wvuem9kOeahOWFseWQjOaXpeacnyIsInJlYXNvbi5iZW5jaG1hcmtfaGlzdG9yeV9taXNzaW5nIjoi57y65bCR5Z+65YeG5Y6G5Y+y5pWw5o2uIiwicmVhc29uLnN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiOiLlrZjlgqjorrDlvZXor7vlj5blpLHotKUiLCJyZWFzb24uZWZmZWN0X3ZlcmlmaWNhdGlvbl9ub3RfcmVjb3JkZWQiOiLnlJ/mlYjnu5PmnpzmsqHmnInorrDlvZXmnaXmupAiLCJyZWFzb24uYm91bmRlZF9hdWRpdF9sb2ciOiLljoblj7LorrDlvZXmnInkv53nlZnkuIrpmZDvvIzlj6/og73kuI3lrozmlbQiLCJyZWFzb24ubm9fY2xvc2VkX3RyYWRlcyI6IuayoeacieW3suW5s+S7k+eahOS6pOaYkyIsInJlYXNvbi5ub3RpZmljYXRpb25fbG9nX25vdF9jb25uZWN0ZWQiOiLpgJrnn6Xlj5HpgIHorrDlvZXmupDmnKrmjqXlhaUiLCJyZWFzb24ucnVudGltZV9kYWlseV9ub3RfY29ubmVjdGVkIjoi6L+Q6KGM6K6w5b2V5rqQ5pyq5o6l5YWlIiwicmVhc29uLnRvZGF5X3JlY29yZF9taXNzaW5nIjoi5LuK5pel5pqC5peg6L+Q6KGM6K6w5b2VIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfc3RhbGUiOiLov5DooYzorrDlvZXlt7Lov4fmnJ8iLCJyZWFzb24ucnVudGltZV9kYWlseV9pbmNvbXBsZXRlIjoi6L+Q6KGM6K6w5b2V5LiN5a6M5pW0IiwicmVhc29uLnN0cmF0ZWd5X2hlYWx0aF9ub3RfY29ubmVjdGVkIjoi562W55Wl5YGl5bq35bqm5p2l5rqQ5pyq5o6l5YWlIiwicmVhc29uLmF2YWlsYWJsZSI6IuWPr+aTjeS9nCIsInJlYXNvbi5hZG1pbl9yZXF1aXJlZCI6IumcgOimgeeuoeeQhuWRmOadg+mZkCIsInJlYXNvbi5kaXNwYXRjaF91bmF2YWlsYWJsZSI6IuaJp+ihjOmAmumBk+aaguS4jeWPr+eUqCIsInJlYXNvbi5zdG9wX3BlbmRpbmdfb3JfaWRlbnRpdHlfdW5hdmFpbGFibGUiOiLlt7LmnInlgZznlKjor7fmsYLlvoXnoa7orqTmiJbouqvku73mmoLkuI3lj6/nlKgiLCJyZWFzb24uc3RyYXRlZ3lfYXBwbGljYXRpb25fbm90X2Nvbm5lY3RlZCI6IuetlueVpeW6lOeUqOmAmumBk+acquaOpeWFpSIsInJlYXNvbi5leGlzdGluZ19yZWNvdmVyeV9ub3RfYXZhaWxhYmxlIjoi5rKh5pyJ5Y+v55So55qE5pei5pyJ5oGi5aSN5rWB56iLIiwicmVhc29uLnJ1bnRpbWVfaW5zdGFuY2VzX25vdF9ib3VuZCI6Iui/kOihjOWunuS+i+acque7keWumiIsInJlYXNvbi5hY2NvdW50X3NldHRpbmdzX2lkZW50aXR5X2NvbmZsaWN0Ijoi6I2J5qGI57uR5a6a55qE5piv5pen6Lqr5Lu977yM6ZyA5YWI56Gu6K6kIiwicmVhc29uLnByb2ZpbGVfZHJhZnRfcmVxdWlyZWQiOiLpnIDopoHlvZPliY3ouqvku73nmoTojYnmoYgiLCJyZWFzb24ucHJvZmlsZV9vbmx5X3JlcXVpcmVkIjoi5LuF5pSv5oyB562W55Wl5qGj5qGI57G76I2J5qGIIiwicmVhc29uLnByb2ZpbGVfbm90X3NlbGVjdGFibGUiOiLor6XnrZbnlaXmoaPmoYjkuI3lj6/pgIkiLCJyZWFzb24ucnVudGltZV9yZWFkYmFja191bmF2YWlsYWJsZSI6Iui/kOihjOeKtuaAgeivu+WbnuS4jeWPr+eUqCIsInJlYXNvbi5ydW50aW1lX3RhcmdldF9ub3RfZGlzYWJsZWQiOiLov5DooYznm67moIflsJrmnKrlgZznlKgiLCJyZWFzb24uY3VycmVudF9wcm9maWxlX2NvbmZsaWN0Ijoi5b2T5YmN562W55Wl5qGj5qGI5Yay56qBIiwicmVhc29uLnByb2ZpbGVfYXBwbGljYXRpb25fcGVuZGluZyI6IuW3suacieW6lOeUqOivt+axguWkhOeQhuS4rSIsInJlYXNvbi5zeW50aGV0aWNfZ3VhcmRfYmxvY2tlZCI6IuWQiOaIkOa8lOekuueOr+Wig+S4jeaPkOS+m+ivpeaTjeS9nCIsInJlYXNvbi51bmtub3duIjoi5Y6f5Zug5pyq55+lIiwiYXV0aC5sb2dpbl90aXRsZSI6IueZu+W9leWQjue7p+e7reS9v+eUqCIsImF1dGgubG9naW5fYm9keSI6IueZu+W9leWQjuWPr+afpeeci+i0puaIt+aAu+iniOOAgeaUtuebiuWIhuaekOOAgeW+heWKnuS4jui/kOihjOeKtuaAgeOAgiIsImF1dGgubG9naW4iOiLnmbvlvZUiLCJhdXRoLmRlbmllZF90aXRsZSI6Iuayoeacieiuv+mXruadg+mZkCIsImF1dGguZGVuaWVkX2JvZHkiOiLlvZPliY3otKblj7fmnKrooqvlhYHorrjorr/pl67mraTmjqfliLblj7DjgIIiLCJhdXRoLmVycm9yX3RpdGxlIjoi5pqC5pe25peg5rOV6K+75Y+W5o6n5Yi25Y+wIiwiYXV0aC5lcnJvcl9ib2R5Ijoi5Lya6K+d5pyN5Yqh5pqC5pe25LiN5Y+v55So77yM6K+356iN5ZCO6YeN6K+V44CCIiwic2hlbGwuc2NvcGUiOiLotKbmiLfojIPlm7QiLCJzaGVsbC5zY29wZV9hbGwiOiLlhajpg6jotKbmiLciLCJzaGVsbC5zY29wZV9wYXBlcl9ncm91cCI6IuaooeaLn+i0puaItyIsInNoZWxsLmhpZGVfYW1vdW50cyI6IumakOiXj+mHkeminSIsInNoZWxsLnNob3dfYW1vdW50cyI6IuaYvuekuumHkeminSIsInNoZWxsLnVzZXJfbWVudSI6IueUqOaIt+iPnOWNlSIsInNoZWxsLnByZWZlcmVuY2VzIjoi5YGP5aW96K6+572uIiwic2hlbGwubG9nb3V0Ijoi6YCA5Ye655m75b2VIiwic2hlbGwuc2tpcF90b19jb250ZW50Ijoi6Lez5Yiw5Li76KaB5YaF5a65IiwicHJlZnMudGl0bGUiOiLlgY/lpb3orr7nva4iLCJwcmVmcy50aGVtZSI6IuS4u+mimCIsInByZWZzLnRoZW1lX2xpZ2h0Ijoi5rWF6ImyIiwicHJlZnMudGhlbWVfZGFyayI6Iua3seiJsiIsInByZWZzLnRoZW1lX3N5c3RlbSI6Iui3n+maj+ezu+e7nyIsInByZWZzLmxhbmd1YWdlIjoi6K+t6KiAIiwicHJlZnMudXBkb3duIjoi5rao6LeM6aKc6ImyIiwicHJlZnMudXBkb3duX2dyZWVuX3VwIjoi57u/5rao57qi6LeMIiwicHJlZnMudXBkb3duX3JlZF91cCI6Iue6oua2qOe7v+i3jCIsInByZWZzLmhpZGVfYW1vdW50cyI6Ium7mOiupOmakOiXj+mHkeminSIsInByZWZzLmRlZmF1bHRfcmFuZ2UiOiLpu5jorqTljLrpl7QiLCJwcmVmcy5ub3RlIjoi5YGP5aW95LuF5L+d5a2Y5Zyo5q2k5rWP6KeI5Zmo5Lit44CCIiwib3ZlcnZpZXcudG90YWxfYXNzZXRzIjoi5oC76LWE5LqnIiwib3ZlcnZpZXcucmFuZ2VfcmV0dXJuIjoi5Yy66Ze05pS255uKIHtyYW5nZX0iLCJvdmVydmlldy5sYXN0X2RheV9jaGFuZ2UiOiLmnIDov5HkuIDml6XotYTkuqflj5jliqgiLCJvdmVydmlldy50b2RvcyI6IuW+heWKniIsIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCI6Intjb3VudH0g57Sn5oClIiwib3ZlcnZpZXcucnVuc19vayI6Iui/kOihjCB7b2t9L3t0b3RhbH0g5q2j5bi4Iiwib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIjoi5pS255uK6LWw5Yq/Iiwib3ZlcnZpZXcudG9kb19wcmV2aWV3Ijoi5b6F5Yqe6aKE6KeIIiwib3ZlcnZpZXcubXlfYWNjb3VudHMiOiLmiJHnmoTotKbmiLciLCJvdmVydmlldy5hY2NvdW50X3N0cmF0ZWd5Ijoi562W55WlIiwib3ZlcnZpZXcuYWNjb3VudF9hc3NldHMiOiLotYTkuqciLCJvdmVydmlldy5hY2NvdW50X2Nhc2giOiLnjrDph5EiLCJvdmVydmlldy5ub19hY2NvdW50cyI6IuaaguaXoOi0puaItyIsIm92ZXJ2aWV3LnR3cl90YWciOiJUV1IiLCJvdmVydmlldy5vcGVuX3BlcmZvcm1hbmNlIjoi5omT5byA5pS255uK5YiG5p6QIiwib3ZlcnZpZXcub3Blbl9oZWFsdGgiOiLmiZPlvIDov5DooYznirbmgIEiLCJvdmVydmlldy5vcGVuX2RlY2lzaW9ucyI6IuaJk+W8gOW+heWKniIsInBlcmYudmFsdWVfa2luZF9wbmwiOiLnm4jkuo8iLCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIjoi6LWE5Lqn5Y+Y5YqoIiwicGVyZi5yYW5nZS4xTSI6IjHmnIgiLCJwZXJmLnJhbmdlLjNNIjoiM+aciCIsInBlcmYucmFuZ2UuWVREIjoi5bm05Yid6Iez5LuKIiwicGVyZi5yYW5nZS4xWSI6IjHlubQiLCJwZXJmLnJhbmdlLkFMTCI6IuWFqOmDqCIsInBlcmYucmFuZ2UubGFiZWwiOiLml7bpl7TljLrpl7QiLCJwZXJmLnJhbmdlLnJldHVybl9sYWJlbCI6IntyYW5nZX0g5pS255uKIiwicGVyZi5jYXJkLnR3ciI6Iue0r+iuoeaUtuebiu+8iFRXUu+8iSIsInBlcmYuY2FyZC5hbW91bnQiOiLnm4jkuo/ph5Hpop0iLCJwZXJmLmNhcmQuYW1vdW50X2Fzc2V0X2NoYW5nZSI6Iui1hOS6p+WPmOWKqCIsInBlcmYuY2FyZC5tYXhfZHJhd2Rvd24iOiLmnIDlpKflm57mkqQiLCJwZXJmLmNhcmQubWF4X2RyYXdkb3duX2RhdGVzIjoie3BlYWt9IOKGkiB7dHJvdWdofSIsInBlcmYuY2FyZC5leGNlc3MiOiLnm7jlr7nln7rlh4botoXpop0iLCJwZXJmLmNhcmQuYmVzdF9kYXkiOiLmnIDlpb3nmoTkuIDlpKkiLCJwZXJmLmNhcmQud29yc3RfZGF5Ijoi5pyA5beu55qE5LiA5aSpIiwicGVyZi5yZXR1cm5zX3RpdGxlIjoi5pS255uK546HIHZzIOWfuuWHhiIsInBlcmYucmV0dXJuc19jdW11bGF0aXZlIjoi57Sv56evIiwicGVyZi5yZXR1cm5zX2RhaWx5Ijoi5q+P5pelIiwicGVyZi5yZXR1cm5zX21haW5fc2VyaWVzIjoi5pys6IyD5Zu0IiwicGVyZi5ob3dfY2FsY3VsYXRlZCI6IuWmguS9leiuoeeul++8nyIsInBlcmYubWV0aG9kX3RpdGxlIjoi5pS255uK5aaC5L2V6K6h566XIiwicGVyZi5tZXRob2RfYm9keSI6IuaUtuebiueOh+aMieaXtumXtOWKoOadg++8iFRXUu+8ieiuoeeul++8muavj+aXpeaUtuebiuWFiOWBmui1hOmHkeWKoOadg++8jOWGjemAkOaXpeWkjeWIqe+8m+WMuumXtOi1t+eCueW9kumbtuOAguWHgOaKleWFpe+8iOWHuuWFpemHke+8ieS4jeiuoeWFpeebiOS6j+OAgue8uuWwkeWujOaVtOWHuuWFpemHkeiusOW9leaXtu+8jOWPquWxleekuuacque7j+i1hOmHkea1geiwg+aVtOeahOi1hOS6p+WPmOWKqOavlOS+i++8jFRXUiDkuI7lm57mkqTnlZnnqbrjgILln7rlh4bluo/liJfni6znq4vlr7npvZDliLDlhbHlkIzotbfngrnvvIzkuI3ku6PooajkuI7mnKzotKbmiLfnmoTlj6/mr5Tnu4TlkIjmlLbnm4rjgIIiLCJwZXJmLmFzc2V0c190aXRsZSI6IuaAu+i1hOS6pyIsInBlcmYuYXNzZXRzX25vdGUiOiLku4XlsZXnpLrlvZPliY3otKbmiLfojIPlm7TnmoTotYTkuqfvvIzkuI3lj6DliqDln7rlh4bjgIIiLCJwZXJmLmFzc2V0c19mbG93X21hcmsiOiLlh7rlhaXph5EiLCJwZXJmLmNhbGVuZGFyX3RpdGxlIjoi5pS255uK5pel5Y6GIiwicGVyZi5jYWxlbmRhcl9tb250aCI6IuaciCIsInBlcmYuY2FsZW5kYXJfeWVhciI6IuW5tCIsInBlcmYuY2FsZW5kYXJfZGVwb3NpdF9ub3RlIjoi5Ye65YWl6YeR5b2T5pel5LiN6K6h5YWl55uI5LqPIiwicGVyZi5ob2xkaW5nc190aXRsZSI6IuaMgeS7kyIsInBlcmYuaG9sZGluZ3Nfbm90ZSI6IuW9k+WJjeaMgeS7kyDCtyDmnKrlrp7njrDnm4jkuo8iLCJwZXJmLnJhbmtpbmdfdGl0bGUiOiLkuKrogqHnm4jkuo/mppwiLCJwZXJmLnRyYWRlc190aXRsZSI6IuaIkOS6pOe7n+iuoSIsInBlcmYudHJhZGVzX25vdF9jb25uZWN0ZWQiOiLmiJDkuqTnu5/orqHmnKrmjqXlhaXjgIIiLCJwZXJmLm1peGVkX2N1cnJlbmN5X3RpdGxlIjoi5aSa5biB56eN6K+05piOIiwicGVyZi5jb2wuc3ltYm9sIjoi5qCH55qEIiwicGVyZi5jb2wucXVhbnRpdHkiOiLmlbDph48iLCJwZXJmLmNvbC5tYXJrZXRfdmFsdWUiOiLluILlgLwiLCJwZXJmLmNvbC5jdXJyZW5jeSI6IuW4geenjSIsInBlcmYuY29sLmF2Z19jb3N0Ijoi5oiQ5pys5Lu3IiwicGVyZi5jb2wudW5yZWFsaXplZF9wbmwiOiLmnKrlrp7njrDnm4jkuo8iLCJwZXJmLmNvbC5hY2NvdW50Ijoi6LSm5oi3IiwicGVyZi5jb2wuZGF0ZSI6IuaXpeacnyIsInBlcmYuY29sLmFtb3VudCI6IumHkeminSIsInBlcmYuY29sLnJldHVybiI6IuaUtuebiueOhyIsImRlY2lzaW9ucy50aXRsZSI6IuW+heWKniIsImRlY2lzaW9ucy5maWx0ZXIuYWxsIjoi5YWo6YOoIiwiZGVjaXNpb25zLnRhYi5wZW5kaW5nIjoi5b6F5aSE55CGIiwiZGVjaXNpb25zLnRhYi5kZWNpZGVkIjoi5bey5aSE55CGIiwiY2F0ZWdvcnkucmVjb25jaWxpYXRpb25fcmVjb3ZlcnkiOiLlr7notKbmgaLlpI0iLCJjYXRlZ29yeS5zdHJhdGVneV9wcm9tb3Rpb24iOiLnrZbnlaXmmYvnuqciLCJjYXRlZ29yeS5vd25lcl9kZWNpc2lvbiI6Iui0n+i0o+S6uuWGs+WumiIsImNhdGVnb3J5LmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiLlh63or4Hnu7TmiqQiLCJjYXRlZ29yeS5wYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIjoi5qih5ouf6LSm5oi35bqU55SoIiwiZGVjaXNpb25zLnByaW9yaXR5LmhpZ2giOiLpq5giLCJkZWNpc2lvbnMucHJpb3JpdHkubWVkaXVtIjoi5LitIiwiZGVjaXNpb25zLnByaW9yaXR5Lm5vcm1hbCI6IuaZrumAmiIsImRlY2lzaW9ucy5zdGF0dXMucGVuZGluZyI6IuW+heWkhOeQhiIsImRlY2lzaW9ucy5zdGF0dXMuZGVjaWRlZCI6IuW3suWkhOeQhiIsImRlY2lzaW9ucy5zdGF0dXMuZXhwaXJlZCI6IuW3sui/h+acnyIsImRlY2lzaW9ucy5xdWVzdGlvbiI6IumcgOimgeS9oOWGs+WumiIsImRlY2lzaW9ucy5kaWZmX3RpdGxlIjoi5pS55YmNIOKGkiDmlLnlkI4iLCJkZWNpc2lvbnMuY29sLmZpZWxkIjoi5a2X5q61IiwiZGVjaXNpb25zLmNvbC5jdXJyZW50Ijoi546w5ZyoIiwiZGVjaXNpb25zLmNvbC5wcm9wb3NlZCI6IuW7uuiuriIsImRlY2lzaW9ucy5jb2wuYWZmZWN0c19saXZlIjoi5b2x5ZON5a6e55uYIiwiZGVjaXNpb25zLmFmZmVjdHNfbGl2ZV95ZXMiOiLmmK8iLCJkZWNpc2lvbnMuYWZmZWN0c19saXZlX25vIjoi5ZCmIiwiZGVjaXNpb25zLm1hdGVyaWFscyI6IuadkOaWmSIsImRlY2lzaW9ucy5hZG9wdF9pbnRlbnQiOiLorrDlvZXph4fnlKjmhI/lkJEiLCJkZWNpc2lvbnMuZGVjbGluZV9pbnRlbnQiOiLorrDlvZXkuI3ph4fnlKjmhI/lkJEiLCJkZWNpc2lvbnMuaW50ZW50X25vdGUiOiLlj6rorrDlvZXmhI/lkJHvvIzkuI3kvJrkuIvljZXmiJbmlLnlj5jku7vkvZXmnYPpmZDjgIIiLCJkZWNpc2lvbnMuY29uZmlybV9hZG9wdF90aXRsZSI6IuehruiupOiusOW9lemHh+eUqOaEj+WQke+8nyIsImRlY2lzaW9ucy5jb25maXJtX2RlY2xpbmVfdGl0bGUiOiLnoa7orqTorrDlvZXkuI3ph4fnlKjmhI/lkJHvvJ8iLCJkZWNpc2lvbnMuY29uZmlybV9ib2R5Ijoi5pys5qyh5Y+q6K6w5b2V5oSP5ZCR77yM5LiN5Lya5o+Q5Lqk6K6i5Y2V5oiW5pS55Y+Y5Lqk5piT5p2D6ZmQ44CCIiwiZGVjaXNpb25zLmhpc3RvcnlfdGl0bGUiOiLlpITnkIborrDlvZUiLCJkZWNpc2lvbnMuaGlzdG9yeS5lbXB0eSI6IuaaguaXoOWkhOeQhuiusOW9lSIsImRlY2lzaW9ucy5hY3Rpb24uYWRvcHRfaW50ZW50Ijoi6K6w5b2V6YeH55So5oSP5ZCRIiwiZGVjaXNpb25zLmFjdGlvbi5kZWNsaW5lX2ludGVudCI6IuiusOW9leS4jemHh+eUqOaEj+WQkSIsImRlY2lzaW9ucy5lbXB0eV9wZW5kaW5nIjoi5rKh5pyJ5b6F5aSE55CG55qE5LqL6aG5IiwiZGVjaXNpb25zLmFjY291bnRfZ2xvYmFsIjoi5YWo6YOo6LSm5oi3IiwiZGVjaXNpb25zLnJlZiI6Iue8luWPtyB7aWR9IiwiZGVjaXNpb25zLmV4cGlyZXNfYXQiOiLmiKrmraIge3ZhbHVlfSIsImRlY2lzaW9ucy5jcmVhdGVkX2F0Ijoi5Yib5bu65LqOIHt2YWx1ZX0iLCJkZWNpc2lvbnMucmVhZF9mYWlsZWQiOiLlvoXlip7or7vlj5blpLHotKXvvIzor7fph43or5XvvJvov5nkuI3ku6PooajmsqHmnInlvoXlip7jgIIiLCJkZWNpc2lvbnMuYXBwbGljYXRpb25fc3RhdHVzIjoi5bqU55So54q25oCB77yae3ZhbHVlfSIsImFjY291bnRzLnRpdGxlIjoi6LSm5oi3IiwiYWNjb3VudHMuY29sLmFsaWFzIjoi5Yir5ZCNIiwiYWNjb3VudHMuY29sLnBsYXRmb3JtIjoi5bmz5Y+wIiwiYWNjb3VudHMuY29sLnN0cmF0ZWd5Ijoi5b2T5YmN562W55WlIiwiYWNjb3VudHMuY29sLnJ1biI6Iui/kOihjCIsImFjY291bnRzLmNvbC5kcmFmdHMiOiLlvoXnlJ/mlYjojYnmoYgiLCJhY2NvdW50cy5jb2wudG9kb3MiOiLlvoXlip4iLCJhY2NvdW50cy5jb2wubGFzdF9jaGFuZ2UiOiLmnIDov5Hlj5jmm7QiLCJhY2NvdW50cy50YWIub3ZlcnZpZXciOiLmpoLop4giLCJhY2NvdW50cy50YWIuc3RyYXRlZ3kiOiLnrZbnlaXkuI7lj4LmlbAiLCJhY2NvdW50cy50YWIuY29udHJvbHMiOiLov5DooYzmjqfliLYiLCJhY2NvdW50cy50YWIuaGlzdG9yeSI6IuWPmOabtOiusOW9lSIsImFjY291bnRzLmZyZXNobmVzcyI6IuaVsOaNruaWsOmynOW6piIsImFjY291bnRzLnJ1bl9zdGF0ZSI6Iui/kOihjOeKtuaAgSIsImFjY291bnRzLmVkaXQiOiLnvJbovpEiLCJhY2NvdW50cy5jaGVja19jaGFuZ2VzIjoi5qOA5p+l5Y+Y5pu0IiwiYWNjb3VudHMudmlld2luZyI6Iuafpeeci+aAgSIsImFjY291bnRzLmVkaXRpbmciOiLnvJbovpHkuK0iLCJhY2NvdW50cy5kaWZmX2RpYWxvZ190aXRsZSI6IuehruiupOiNieahiOWPmOabtCIsImFjY291bnRzLmNvbC5kcmFmdCI6IuiNieahiCIsImFjY291bnRzLmFja19saXZlIjoi5oiR5bey5LqG6Kej6L+Z5Lqb5L+u5pS55b2x5ZON5a6e55uYIiwiYWNjb3VudHMuc2F2ZV9kcmFmdCI6IuS/neWtmOiNieahiCIsImFjY291bnRzLmRyYWZ0X3NhdmVkIjoi6I2J5qGI5bey5L+d5a2Y44CCIiwiYWNjb3VudHMuZHJhZnRfbm90ZSI6IuS/neWtmOiNieahiOS4jeS8muS4i+WNleOAgeWQr+eUqOi0puaIt+aIluaUueWPmOS6pOaYk+adg+mZkO+8m+W9k+WJjeeUn+aViOmFjee9ruS/neaMgeS4jeWPmOOAgiIsImFjY291bnRzLmNvbmZsaWN0Ijoi54mI5pys5Yay56qB77ya6I2J5qGI5bey6KKr5YW25LuW5Lq65L+u5pS544CC6K+35Yi35paw56Gu6K6k5pyA5paw5beu5byC5ZCO6YeN6K+V44CCIiwiYWNjb3VudHMuaWRlbnRpdHlfY29uZmxpY3QiOiLojYnmoYjnu5HlrprnmoTotKbmiLfouqvku73lt7Llj5jljJbvvIzor7flhYjliLfmlrDnoa7orqTjgIIiLCJhY2NvdW50cy5ub19jaGFuZ2VzIjoi5rKh5pyJ5L+u5pS5IiwiYWNjb3VudHMuaGlzdG9yeS5lbXB0eSI6IuaaguaXoOWPmOabtOiusOW9lSIsImFjY291bnRzLmV2ZW50LmRyYWZ0X3NhdmVkIjoi6I2J5qGI5L+d5a2YIiwiYWNjb3VudHMuZXZlbnQuYXBwcm92ZWQiOiLmibnlh4YiLCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIjoi5pyq6K6w5b2VIiwiYWNjb3VudHMuaGlzdG9yeS5ub3RlIjoi5Y+Y5pu06K6w5b2V5pyJ5L+d55WZ5LiK6ZmQ77yb5om55YeG5oiW5L+d5a2Y5LiN5Luj6KGo5bey55Sf5pWI44CCIiwiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iOiLojYnmoYjniYjmnKwge3ZhbHVlfSIsImNvbnRyb2xzLnRpdGxlIjoi6L+Q6KGM5o6n5Yi2IiwiY29udHJvbHMuZGFuZ2VyX25vdGUiOiLku6XkuIvmk43kvZzlvbHlk43lrp7nm5jov5DooYzvvIzor7fnoa7orqTlkI7miafooYzjgIIiLCJjb250cm9scy5lbmFibGUiOiLlkK/nlKgiLCJjb250cm9scy5zdG9wIjoi5YGc5q2iIiwiY29udHJvbHMucmVzdW1lIjoi5oGi5aSNIiwiY29udHJvbHMuYXBwcm92ZV9hcHBsaWNhdGlvbiI6IuaJueWHhuW6lOeUqCIsImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSI6IuWBnOatouWPqumYu+atouaWsOeahOinpuWPke+8jOS4jeS8muaSpOWNleOAgeW5s+S7k+aIlua4hemZpOWcqOmAlOivt+axguOAgiIsImNvbnRyb2xzLnJlc3VtZV9zdW1tYXJ5Ijoi5oGi5aSN5pei5pyJ6L+Q6KGM55uu5qCH77yM5LiN5L+u5pS5562W55Wl5oiW6LWE6YeR5Y+C5pWw44CCIiwiY29udHJvbHMuYXBwcm92ZV9zdW1tYXJ5Ijoi5om55YeG5bqU55So5b2T5YmN562W55Wl5qGj5qGI6I2J5qGI77yb5o+Q5Lqk5ZCO6ZyA56Gu6K6k5a6e6ZmF55Sf5pWI54q25oCB77yM5LiN5Lya55u05o6l5LiL5Y2V44CCIiwiY29udHJvbHMuZW5hYmxlX3N1bW1hcnkiOiLlkK/nlKjov5DooYznm67moIfvvIzkvb/ml6LmnInosIPluqbmgaLlpI3op6blj5HjgIIiLCJjb250cm9scy5zdG9wX2NvbmZpcm1fdGl0bGUiOiLnoa7orqTlgZzmraLov5DooYznm67moIciLCJjb250cm9scy5zdG9wX3R5cGVfYWxpYXMiOiLovpPlhaXotKbmiLfliKvlkI0ge2FsaWFzfSDku6Xnoa7orqTlgZzmraIiLCJjb250cm9scy5hbGlhc19taXNtYXRjaCI6Iui+k+WFpeeahOWIq+WQjeS4jeS4gOiHtCIsImNvbnRyb2xzLnN1Ym1pdHRlZCI6Iuivt+axguW3suaPkOS6pO+8m+e7k+aenOmcgOivu+WbnuehruiupO+8jOivt+WLv+mHjeWkjeaPkOS6pOOAgiIsImNvbnRyb2xzLnN1Ym1pdF9mYWlsZWQiOiLmj5DkuqTmnKrlrozmiJDvvJvor7fnoa7orqTlvZPliY3nirbmgIHlkI7lho3lhrPlrprvvIzpgb/lhY3ph43lpI3mj5DkuqTjgIIiLCJjb250cm9scy51bmtub3duX3Jlc3VsdCI6IuS4iuasoeaPkOS6pOe7k+aenOacquefpe+8jOW3sumUgeWumu+8m+ivt+WFiOWIt+aWsOehruiupOOAgiIsImNvbnRyb2xzLnVuYXZhaWxhYmxlIjoi5LiN5Y+v55So77yae3JlYXNvbn0iLCJzdHJhdGVnaWVzLnRpdGxlIjoi562W55WlIiwic3RyYXRlZ2llcy5kb21haW4iOiLluILlnLoiLCJzdHJhdGVnaWVzLm1vZGVzIjoi5paw5aKe5ZCv55So77yP5YiH5o2i5pa55byPIiwic3RyYXRlZ2llcy5hY2NvdW50c191c2luZyI6IuW3sumFjee9rui0puaItyIsInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iOiLotKbmiLfmiafooYzmqKHlvI8iLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5sZWdhY3lfbGl2ZSI6IuWunuebmCDCtyDmsr/nlKjml6LmnInotKbmiLciLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5saXZlIjoi5a6e55uYIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGl2ZV91bmtub3duIjoi5a6e55uY55uu5qCHIMK3IOa8lOe7g+eKtuaAgeacquefpSIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLnBhcGVyIjoi5qih5oufIiwic3RyYXRlZ2llcy5leGVjdXRpb24uZHJ5X3J1biI6Iua8lOe7gyDCtyDkuI3kuIvljZUiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi51bmtub3duIjoi5omn6KGM5qih5byP5pyq55+lIiwic3RyYXRlZ2llcy5saXZlX2V4cG9zdXJlIjoi5a6e55uY6YWN572u5raJ5Y+K55yf5a6e6LWE6YeR44CC5LiK5pa555uu5b2V5pa55byP5LuF57qm5p2f5paw5aKe5ZCv55So77yP5YiH5o2i44CCIiwic3RyYXRlZ2llcy5leGVjdXRpb25fc291cmNlIjoi5qih5byP5p2l6Ieq6LSm5oi36YWN572u77yb5pyA6L+R6L+Q6KGM5Y+K5oiQ5Lqk54q25oCB5pyq6aqM6K+B44CCIiwic3RyYXRlZ2llcy5oZWFsdGgiOiLlgaXlurfluqYiLCJzdHJhdGVnaWVzLmhlYWx0aF9zY29yZSI6IuivhOWIhiB7dmFsdWV9Iiwic3RyYXRlZ2llcy5sYXN0X3Byb21vdGlvbiI6IuacgOi/keaZi+e6pyIsInN0cmF0ZWdpZXMucGFyYW1zX3N1bW1hcnkiOiLlj4LmlbDmkZjopoEiLCJzdHJhdGVnaWVzLnByb21vdGlvbl90aW1lbGluZSI6IuaZi+e6p+aXtumXtOe6vyIsInN0cmF0ZWdpZXMuZW1wdHkiOiLmmoLml6DnrZbnlaUiLCJzdHJhdGVnaWVzLnRhYi5jYXRhbG9nIjoi562W55Wl55uu5b2VIiwic3RyYXRlZ2llcy50YWIucmVzZWFyY2giOiLnoJTnqbbnur/ntKIiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX29ubHkiOiLku4XnoJTnqbbvvIzkuI3kuIvljZUiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX25vdF9jb25uZWN0ZWQiOiLnoJTnqbbnur/ntKLmnKrmjqXlhaXjgIIiLCJoZWFsdGgudGl0bGUiOiLov5DooYznirbmgIEiLCJoZWFsdGguc3RhdC50b2RheV9ydW5zIjoi5LuK5pel6L+Q6KGMIHtva30ve3RvdGFsfSIsImhlYWx0aC5zdGF0Lm9ic2VydmVkIjoi5bey6KeC5rWLIHtvYnNlcnZlZH0ve2NvbmZpZ3VyZWR9IiwiaGVhbHRoLnN0YXQuY3JlZGVudGlhbHMiOiLlh63or4Ege2NvdW50fSDpobnpnIDlhbPms6giLCJoZWFsdGguc3RhdC5yZWNlbnRfZmFpbHVyZSI6IuacgOi/keWksei0pSB7Y291bnR9IiwiaGVhbHRoLmdyaWRfdGl0bGUiOiLov5EgMTQg5Liq57q957qm5Lia5Yqh5pelIiwiaGVhbHRoLmdyaWQub2siOiLmiJDlip8iLCJoZWFsdGguZ3JpZC5mYWlsZWQiOiLlpLHotKUiLCJoZWFsdGguZ3JpZC5ub3RfcnVuIjoi5pyq6L+Q6KGMIiwiaGVhbHRoLmdyaWQubm9fcmVjb3JkIjoi5peg6K6w5b2VIiwiaGVhbHRoLmRheV9kZXRhaWwiOiLlvZPml6XorrDlvZUiLCJoZWFsdGguZnJlc2huZXNzX3RpdGxlIjoi5pWw5o2u5paw6bKc5bqmIiwiaGVhbHRoLmNyZWRlbnRpYWxzX3RpdGxlIjoi5Yet6K+B5Yiw5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfaWJrcl9yZXBvcnQiOiJJQktSIOaKpeihqOWHreivgSIsImhlYWx0aC5jcmVkZW50aWFsX290aGVyIjoi6LSm5oi35Yet6K+BIiwiaGVhbHRoLnRhYmxlX3Njcm9sbF9oaW50Ijoi5bem5Y+z5ruR5Yqo5p+l55yL5a6M5pW06KGo5qC8IiwiaGVhbHRoLmdyaWRfc2Nyb2xsX2hpbnQiOiLlt6blj7Pmu5Hliqjmn6XnnIvlhajpg6jml6XmnJ/vvIzotKbmiLfliJfkv53mjIHlj6/op4EiLCJoZWFsdGguY3JlZGVudGlhbF9leHBpcmVzIjoi5Yiw5pyfIHt2YWx1ZX0iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5leHBpcmVkIjoi5bey6L+H5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfcGhhc2UuMzAiOiIzMCDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS43IjoiNyDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS4xIjoiMSDlpKnlhoXliLDmnJ8iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5ub3RfZHVlIjoi5pyq5Yiw5qOA5p+l5ZGo5pyfIiwiaGVhbHRoLmNyZWRlbnRpYWxfcGhhc2UudW5rbm93biI6IuacquefpSIsImhlYWx0aC5ub3RpZmljYXRpb25zX3RpdGxlIjoi6YCa55+l6K6w5b2VIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfbm90X2Nvbm5lY3RlZCI6IumAmuefpeWPkemAgeiusOW9leacquaOpeWFpeOAgiIsImhlYWx0aC5hY3Rpdml0eSI6Iua0u+WKqCIsImhlYWx0aC5ydW5fY291bnQiOiLov5DooYzmrKHmlbAiLCJoZWFsdGguY29sLmFjY291bnQiOiLotKbmiLciLCJoZWFsdGguY29sLnNvdXJjZSI6Iuadpea6kCIsImhlYWx0aC5jb2wuc3RhdHVzIjoi54q25oCBIiwiaGVhbHRoLmNvbC5hc19vZiI6IuaVsOaNruaXtumXtCIsImVycm9yLmdlbmVyaWMiOiLor7fmsYLmnKrlrozmiJDvvJvor7fliLfmlrDlubbnoa7orqTlvZPliY3nirbmgIHjgIIiLCJlcnJvci5zZXNzaW9uX2V4cGlyZWQiOiLkvJror53lt7LlpLHmlYjvvIzor7fph43mlrDnmbvlvZXjgIIiLCJlcnJvci5hY2Nlc3NfZGVuaWVkIjoi6K6/6Zeu6KKr5ouS57ud44CCIiwiZXJyb3IuY29uZmxpY3QiOiLniYjmnKzlhrLnqoHvvJvlvZPliY3nvJbovpHlt7Lkv53nlZnvvIzor7fliLfmlrDnoa7orqTjgIIifSxWXz17InNoZWxsLnN3aXRjaF9saWdodCI6IlN3aXRjaCB0byBsaWdodCBtb2RlIiwic2hlbGwuc3dpdGNoX2RhcmsiOiJTd2l0Y2ggdG8gZGFyayBtb2RlIiwic2hlbGwudXBkYXRlX2F2YWlsYWJsZSI6IkEgbmV3IHZlcnNpb24gaXMgcmVhZHkuIFJlZnJlc2ggdG8gdXNlIGl0LiIsInNoZWxsLnJlbG9hZCI6IlJlZnJlc2ggcGFnZSIsImFwcC5uYW1lIjoiUXVhbnRTdHJhdGVneUxhYiIsIm5hdi5tYWluIjoiTWFpbiBuYXZpZ2F0aW9uIiwibmF2Lm92ZXJ2aWV3IjoiT3ZlcnZpZXciLCJuYXYucGVyZm9ybWFuY2UiOiJQZXJmb3JtYW5jZSIsIm5hdi5kZWNpc2lvbnMiOiJUby1kb3MiLCJuYXYuYWNjb3VudHMiOiJBY2NvdW50cyIsIm5hdi5zdHJhdGVnaWVzIjoiU3RyYXRlZ2llcyIsIm5hdi5oZWFsdGgiOiJSdW4gc3RhdHVzIiwibmF2Lm1vcmUiOiJNb3JlIiwiY29tbW9uLmxvYWRpbmciOiJMb2FkaW5n4oCmIiwiY29tbW9uLnJldHJ5IjoiUmV0cnkiLCJjb21tb24uY2xvc2UiOiJDbG9zZSIsImNvbW1vbi5jYW5jZWwiOiJDYW5jZWwiLCJjb21tb24uY29uZmlybSI6IkNvbmZpcm0iLCJjb21tb24uc2F2ZSI6IlNhdmUiLCJjb21tb24uZWRpdCI6IkVkaXQiLCJjb21tb24uYmFjayI6IkJhY2siLCJjb21tb24uYWxsIjoiQWxsIiwiY29tbW9uLm5vbmUiOiJOb25lIiwiY29tbW9uLnVua25vd24iOiJVbmtub3duIiwiY29tbW9uLm5hIjoi4oCUIiwiY29tbW9uLmFzX29mIjoiQXMgb2Yge3ZhbHVlfSIsImNvbW1vbi51cGRhdGVkX2F0IjoiVXBkYXRlZCB7dmFsdWV9IiwiY29tbW9uLnJlZnJlc2giOiJSZWZyZXNoIiwiY29tbW9uLnJlZnJlc2hpbmciOiJSZWZyZXNoaW5n4oCmIiwiY29tbW9uLmNvcHkiOiJDb3B5IiwiY29tbW9uLmNvcGllZCI6IkNvcGllZCIsImNvbW1vbi52aWV3X2FsbCI6IlZpZXcgYWxsIiwiY29tbW9uLmxvYWRfbW9yZSI6IkxvYWQgbW9yZSIsImNvbW1vbi5leHBhbmQiOiJFeHBhbmQiLCJjb21tb24uY29sbGFwc2UiOiJDb2xsYXBzZSIsImNvbW1vbi5hY2NvdW50IjoiQWNjb3VudCIsImNvbW1vbi5wbGF0Zm9ybSI6IlBsYXRmb3JtIiwiY29tbW9uLnN0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJjb21tb24udGltZSI6IlRpbWUiLCJjb21tb24uc3RhdHVzIjoiU3RhdHVzIiwiY29tbW9uLmRldGFpbHMiOiJEZXRhaWxzIiwiY29tbW9uLnN5bnRoZXRpY19iYWRnZSI6IlN5bnRoZXRpYyBkZW1vIiwiY29tbW9uLnBhcGVyX2JhZGdlIjoiUGFwZXIiLCJjb21tb24ucmVhZF9mYWlsZWRfYmFubmVyIjoiU29tZSBkYXRhIGZhaWxlZCB0byBsb2FkLiBBIGZhaWxlZCByZWFkIGRvZXMgbm90IG1lYW4gdGhlcmUgaXMgbm90aGluZyB0byBzaG93OyBwbGVhc2UgcmV0cnkuIiwiY29tbW9uLnVuc2F2ZWRfZ3VhcmRfdGl0bGUiOiJEaXNjYXJkIHVuc2F2ZWQgY2hhbmdlcz8iLCJjb21tb24udW5zYXZlZF9ndWFyZF9ib2R5IjoiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBsb3N0IGlmIHlvdSBsZWF2ZS4iLCJzdGF0ZS51bmtub3duX3N0YXR1cyI6IlVua25vd24gc3RhdHVzIiwic3RhdGUucmV2aWV3IjoiTmVlZHMgcmV2aWV3Iiwic3RhdGUud2F0Y2giOiJXYXRjaCIsInN0YXRlLmNyaXRpY2FsIjoiQ3JpdGljYWwiLCJzdGF0ZS5ibG9ja2VkIjoiQmxvY2tlZCIsInN0YXRlLmZhaWxlZCI6IkZhaWxlZCIsInN0YXRlLnJlYWRfaW5jb21wbGV0ZSI6IlJlYWQgaW5jb21wbGV0ZSIsInN0YXRlLmluc3VmZmljaWVudCI6Ikluc3VmZmljaWVudCBkYXRhIiwic3RhdGUucHJldmlld2VkIjoiUHJldmlld2VkIiwic3RhdGUubm9fc3VibWlzc2lvbiI6Ik5vIG9yZGVyIHN1Ym1pdHRlZCIsInN0YXRlLm5vX3JlYmFsYW5jZSI6Ik5vIHJlYmFsYW5jZSIsInN0YXRlLmZpbGxlZCI6IkZpbGxlZCIsInN0YXRlLm5vdF9kdWUiOiJOb3QgZHVlIHlldCIsInN0YXRlLm1hcmtldF9jbG9zZWQiOiJNYXJrZXQgY2xvc2VkIiwic3RhdGUub3V0c2lkZV93aW5kb3ciOiJPdXRzaWRlIHJ1biB3aW5kb3ciLCJzdGF0ZS53aXRoaW5fZ3JhY2UiOiJXaXRoaW4gZ3JhY2UgcGVyaW9kIiwic3RhdGUubWlzc2luZ19yZXBvcnQiOiJSZXBvcnQgbWlzc2luZyIsInN0YXRlLmVycm9yIjoiUnVuIGVycm9yIiwic3RhdGUuaGVhbHRoeSI6IkhlYWx0aHkiLCJzdGF0ZS5ub19zaWduYWwiOiJObyBzaWduYWwiLCJzdGF0ZS5vayI6Ik9LIiwic3RhdGUucGFydGlhbCI6IlBhcnRpYWwiLCJzdGF0ZS5zdGFsZSI6IlN0YWxlIiwic3RhdGUubm9fZGF0YSI6Ik5vIGRhdGEiLCJzdGF0ZS5ub3RfY29ubmVjdGVkIjoiTm90IGNvbm5lY3RlZCIsInN0YXRlLnVuYXZhaWxhYmxlIjoiVW5hdmFpbGFibGUiLCJzdGF0ZS5yZWFkX2ZhaWxlZCI6IlJlYWQgZmFpbGVkIiwicmVhc29uLmV4dGVybmFsX2Nhc2hmbG93X3JlcXVpcmVkIjoiV2l0aG91dCBjb21wbGV0ZSBjYXNoLWZsb3cgcmVjb3JkcywgYW1vdW50cyBhcmUgc2hvd24gYXMgYXNzZXQgY2hhbmdlIiwicmVhc29uLmZpbGxzX25vdF9jb25uZWN0ZWQiOiJUaGUgZmlsbCBzb3VyY2UgaXMgbm90IGNvbm5lY3RlZCIsInJlYXNvbi5hdmdfY29zdF9taXNzaW5nIjoiQXZlcmFnZSBjb3N0IGlzIG1pc3NpbmcsIHNvIHVucmVhbGl6ZWQgUC9MIGNhbm5vdCBiZSBjYWxjdWxhdGVkIiwicmVhc29uLm1peGVkX2N1cnJlbmN5IjoiTWl4ZWQgY3VycmVuY2llcyBjYW5ub3QgYmUgY29tYmluZWQgaW50byBvbmUgYW1vdW50OyBlYWNoIGN1cnJlbmN5IGlzIHNob3duIHNlcGFyYXRlbHkiLCJyZWFzb24uc25hcHNob3RfaGlzdG9yeV9taXNzaW5nIjoiSGlzdG9yaWNhbCBhc3NldCBzbmFwc2hvdHMgYXJlIG1pc3NpbmciLCJyZWFzb24uc25hcHNob3RfbWlzc2luZyI6IkFzc2V0IHNuYXBzaG90IGlzIG1pc3NpbmciLCJyZWFzb24ucHJldmlvdXNfc25hcHNob3RfbWlzc2luZyI6IlRoZSBwcmV2aW91cyBkYXkncyBhc3NldCBzbmFwc2hvdCBpcyBtaXNzaW5nIiwicmVhc29uLm5vbl90cmFkaW5nX3dlZWtlbmQiOiJOb24tdHJhZGluZyBkYXkiLCJyZWFzb24uaW5jb21wbGV0ZV9tb250aCI6IlRoZSBtb250aCBpcyBzdGlsbCBpbmNvbXBsZXRlIiwicmVhc29uLmluc3VmZmljaWVudF9vYnNlcnZhdGlvbnMiOiJOb3QgZW5vdWdoIGhpc3RvcnkiLCJyZWFzb24uaW52YWxpZF9yZXR1cm5fcGVyaW9kIjoiSW52YWxpZCByYW5nZSBlbmRwb2ludHMiLCJyZWFzb24ucG9zaXRpb25zX3BhcnRpYWxfY292ZXJhZ2UiOiJQb3NpdGlvbnMgY292ZXIgb25seSBwYXJ0IG9mIHRoZSBhc3NldHMiLCJyZWFzb24ucG9zaXRpb25zX25vdF9jb25uZWN0ZWQiOiJUaGUgcG9zaXRpb24gc291cmNlIGlzIG5vdCBjb25uZWN0ZWQiLCJyZWFzb24ucG9zaXRpb25zX3N0YWxlIjoiUG9zaXRpb24gZGF0YSBpcyBzdGFsZSIsInJlYXNvbi5iZW5jaG1hcmtfaGlzdG9yeV91bnJlYWRhYmxlIjoiQmVuY2htYXJrIGRhdGEgZmFpbGVkIHRvIGxvYWQiLCJyZWFzb24ucG9zaXRpb25fdmFsdWVfbWlzc2luZyI6IlBvc2l0aW9uIG1hcmtldCB2YWx1ZSBpcyBtaXNzaW5nIiwicmVhc29uLm5vX2NvbW1vbl9kYXRlIjoiTm8gY29tbW9uIGRhdGUgdG8gYWxpZ24gd2l0aCB0aGUgYmVuY2htYXJrIiwicmVhc29uLmJlbmNobWFya19oaXN0b3J5X21pc3NpbmciOiJCZW5jaG1hcmsgaGlzdG9yeSBpcyBtaXNzaW5nIiwicmVhc29uLnN0b3JlZF9yZWNvcmRzX3VucmVhZGFibGUiOiJTdG9yZWQgcmVjb3JkcyBjb3VsZCBub3QgYmUgcmVhZCIsInJlYXNvbi5lZmZlY3RfdmVyaWZpY2F0aW9uX25vdF9yZWNvcmRlZCI6Ik5vIHNvdXJjZSByZWNvcmRzIHRoZSBhcHBsaWVkIGVmZmVjdCIsInJlYXNvbi5ib3VuZGVkX2F1ZGl0X2xvZyI6Ikhpc3RvcnkgcmV0ZW50aW9uIGlzIGJvdW5kZWQgYW5kIG1heSBiZSBpbmNvbXBsZXRlIiwicmVhc29uLm5vX2Nsb3NlZF90cmFkZXMiOiJObyBjbG9zZWQgdHJhZGVzIiwicmVhc29uLm5vdGlmaWNhdGlvbl9sb2dfbm90X2Nvbm5lY3RlZCI6IlRoZSBub3RpZmljYXRpb24gbG9nIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfbm90X2Nvbm5lY3RlZCI6IlRoZSBydW4tcmVjb3JkIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLnRvZGF5X3JlY29yZF9taXNzaW5nIjoiTm8gcnVuIHJlY29yZCBmb3IgdG9kYXkiLCJyZWFzb24ucnVudGltZV9kYWlseV9zdGFsZSI6IlRoZSBydW4gcmVjb3JkIGlzIHN0YWxlIiwicmVhc29uLnJ1bnRpbWVfZGFpbHlfaW5jb21wbGV0ZSI6IlRoZSBydW4gcmVjb3JkIGlzIGluY29tcGxldGUiLCJyZWFzb24uc3RyYXRlZ3lfaGVhbHRoX25vdF9jb25uZWN0ZWQiOiJUaGUgc3RyYXRlZ3kgaGVhbHRoIHNvdXJjZSBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLmF2YWlsYWJsZSI6IkF2YWlsYWJsZSIsInJlYXNvbi5hZG1pbl9yZXF1aXJlZCI6IkFkbWluIHBlcm1pc3Npb24gcmVxdWlyZWQiLCJyZWFzb24uZGlzcGF0Y2hfdW5hdmFpbGFibGUiOiJEaXNwYXRjaCBpcyB1bmF2YWlsYWJsZSIsInJlYXNvbi5zdG9wX3BlbmRpbmdfb3JfaWRlbnRpdHlfdW5hdmFpbGFibGUiOiJBIHN0b3AgcmVxdWVzdCBpcyBwZW5kaW5nIG9yIGlkZW50aXR5IGlzIHVuYXZhaWxhYmxlIiwicmVhc29uLnN0cmF0ZWd5X2FwcGxpY2F0aW9uX25vdF9jb25uZWN0ZWQiOiJUaGUgc3RyYXRlZ3kgYXBwbGljYXRpb24gY2hhbm5lbCBpcyBub3QgY29ubmVjdGVkIiwicmVhc29uLmV4aXN0aW5nX3JlY292ZXJ5X25vdF9hdmFpbGFibGUiOiJObyBleGlzdGluZyByZWNvdmVyeSBmbG93IGlzIGF2YWlsYWJsZSIsInJlYXNvbi5ydW50aW1lX2luc3RhbmNlc19ub3RfYm91bmQiOiJSdW50aW1lIGluc3RhbmNlcyBhcmUgbm90IGJvdW5kIiwicmVhc29uLmFjY291bnRfc2V0dGluZ3NfaWRlbnRpdHlfY29uZmxpY3QiOiJUaGUgZHJhZnQgaXMgYm91bmQgdG8gYW4gb2xkZXIgaWRlbnRpdHk7IHJlY29uY2lsZSBmaXJzdCIsInJlYXNvbi5wcm9maWxlX2RyYWZ0X3JlcXVpcmVkIjoiQSBkcmFmdCBib3VuZCB0byB0aGUgY3VycmVudCBpZGVudGl0eSBpcyByZXF1aXJlZCIsInJlYXNvbi5wcm9maWxlX29ubHlfcmVxdWlyZWQiOiJPbmx5IHN0cmF0ZWd5LXByb2ZpbGUgZHJhZnRzIGFyZSBzdXBwb3J0ZWQiLCJyZWFzb24ucHJvZmlsZV9ub3Rfc2VsZWN0YWJsZSI6IlRoaXMgc3RyYXRlZ3kgcHJvZmlsZSBjYW5ub3QgYmUgc2VsZWN0ZWQiLCJyZWFzb24ucnVudGltZV9yZWFkYmFja191bmF2YWlsYWJsZSI6IlJ1bnRpbWUgcmVhZGJhY2sgaXMgdW5hdmFpbGFibGUiLCJyZWFzb24ucnVudGltZV90YXJnZXRfbm90X2Rpc2FibGVkIjoiVGhlIHJ1bnRpbWUgdGFyZ2V0IGlzIG5vdCBkaXNhYmxlZCB5ZXQiLCJyZWFzb24uY3VycmVudF9wcm9maWxlX2NvbmZsaWN0IjoiVGhlIGN1cnJlbnQgc3RyYXRlZ3kgcHJvZmlsZSBjb25mbGljdHMiLCJyZWFzb24ucHJvZmlsZV9hcHBsaWNhdGlvbl9wZW5kaW5nIjoiQW4gYXBwbGljYXRpb24gcmVxdWVzdCBpcyBhbHJlYWR5IHBlbmRpbmciLCJyZWFzb24uc3ludGhldGljX2d1YXJkX2Jsb2NrZWQiOiJUaGlzIGFjdGlvbiBpcyBub3Qgb2ZmZXJlZCBpbiB0aGUgc3ludGhldGljIGRlbW8iLCJyZWFzb24udW5rbm93biI6IlVua25vd24gcmVhc29uIiwiYXV0aC5sb2dpbl90aXRsZSI6IlNpZ24gaW4gdG8gY29udGludWUiLCJhdXRoLmxvZ2luX2JvZHkiOiJTaWduIGluIHRvIHZpZXcgb3ZlcnZpZXcsIHBlcmZvcm1hbmNlLCB0by1kb3MgYW5kIHJ1biBzdGF0dXMuIiwiYXV0aC5sb2dpbiI6IlNpZ24gaW4iLCJhdXRoLmRlbmllZF90aXRsZSI6Ik5vIGFjY2VzcyIsImF1dGguZGVuaWVkX2JvZHkiOiJUaGlzIGFjY291bnQgaXMgbm90IGFsbG93ZWQgdG8gdXNlIHRoZSBjb25zb2xlLiIsImF1dGguZXJyb3JfdGl0bGUiOiJDb25zb2xlIHVuYXZhaWxhYmxlIiwiYXV0aC5lcnJvcl9ib2R5IjoiVGhlIHNlc3Npb24gc2VydmljZSBpcyB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4gUGxlYXNlIHJldHJ5IGxhdGVyLiIsInNoZWxsLnNjb3BlIjoiQWNjb3VudCBzY29wZSIsInNoZWxsLnNjb3BlX2FsbCI6IkFsbCBhY2NvdW50cyIsInNoZWxsLnNjb3BlX3BhcGVyX2dyb3VwIjoiUGFwZXIgYWNjb3VudHMiLCJzaGVsbC5oaWRlX2Ftb3VudHMiOiJIaWRlIGFtb3VudHMiLCJzaGVsbC5zaG93X2Ftb3VudHMiOiJTaG93IGFtb3VudHMiLCJzaGVsbC51c2VyX21lbnUiOiJVc2VyIG1lbnUiLCJzaGVsbC5wcmVmZXJlbmNlcyI6IlByZWZlcmVuY2VzIiwic2hlbGwubG9nb3V0IjoiU2lnbiBvdXQiLCJzaGVsbC5za2lwX3RvX2NvbnRlbnQiOiJTa2lwIHRvIGNvbnRlbnQiLCJwcmVmcy50aXRsZSI6IlByZWZlcmVuY2VzIiwicHJlZnMudGhlbWUiOiJUaGVtZSIsInByZWZzLnRoZW1lX2xpZ2h0IjoiTGlnaHQiLCJwcmVmcy50aGVtZV9kYXJrIjoiRGFyayIsInByZWZzLnRoZW1lX3N5c3RlbSI6IlN5c3RlbSIsInByZWZzLmxhbmd1YWdlIjoiTGFuZ3VhZ2UiLCJwcmVmcy51cGRvd24iOiJVcC9kb3duIGNvbG9ycyIsInByZWZzLnVwZG93bl9ncmVlbl91cCI6IkdyZWVuIHVwIC8gcmVkIGRvd24iLCJwcmVmcy51cGRvd25fcmVkX3VwIjoiUmVkIHVwIC8gZ3JlZW4gZG93biIsInByZWZzLmhpZGVfYW1vdW50cyI6IkhpZGUgYW1vdW50cyBieSBkZWZhdWx0IiwicHJlZnMuZGVmYXVsdF9yYW5nZSI6IkRlZmF1bHQgcmFuZ2UiLCJwcmVmcy5ub3RlIjoiUHJlZmVyZW5jZXMgYXJlIHN0b3JlZCBvbmx5IGluIHRoaXMgYnJvd3Nlci4iLCJvdmVydmlldy50b3RhbF9hc3NldHMiOiJUb3RhbCBhc3NldHMiLCJvdmVydmlldy5yYW5nZV9yZXR1cm4iOiJSYW5nZSByZXR1cm4ge3JhbmdlfSIsIm92ZXJ2aWV3Lmxhc3RfZGF5X2NoYW5nZSI6IkxhdGVzdCBkYWlseSBhc3NldCBjaGFuZ2UiLCJvdmVydmlldy50b2RvcyI6IlRvLWRvcyIsIm92ZXJ2aWV3LnRvZG9zX3VyZ2VudCI6Intjb3VudH0gdXJnZW50Iiwib3ZlcnZpZXcucnVuc19vayI6IlJ1bnMge29rfS97dG90YWx9IE9LIiwib3ZlcnZpZXcuZXF1aXR5X3RyZW5kIjoiUmV0dXJuIHRyZW5kIiwib3ZlcnZpZXcudG9kb19wcmV2aWV3IjoiVG8tZG8gcHJldmlldyIsIm92ZXJ2aWV3Lm15X2FjY291bnRzIjoiTXkgYWNjb3VudHMiLCJvdmVydmlldy5hY2NvdW50X3N0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJvdmVydmlldy5hY2NvdW50X2Fzc2V0cyI6IkFzc2V0cyIsIm92ZXJ2aWV3LmFjY291bnRfY2FzaCI6IkNhc2giLCJvdmVydmlldy5ub19hY2NvdW50cyI6Ik5vIGFjY291bnRzIHlldCIsIm92ZXJ2aWV3LnR3cl90YWciOiJUV1IiLCJvdmVydmlldy5vcGVuX3BlcmZvcm1hbmNlIjoiT3BlbiBwZXJmb3JtYW5jZSIsIm92ZXJ2aWV3Lm9wZW5faGVhbHRoIjoiT3BlbiBydW4gc3RhdHVzIiwib3ZlcnZpZXcub3Blbl9kZWNpc2lvbnMiOiJPcGVuIHRvLWRvcyIsInBlcmYudmFsdWVfa2luZF9wbmwiOiJQL0wiLCJwZXJmLnZhbHVlX2tpbmRfYXNzZXRfY2hhbmdlIjoiQXNzZXQgY2hhbmdlIiwicGVyZi5yYW5nZS4xTSI6IjFNIiwicGVyZi5yYW5nZS4zTSI6IjNNIiwicGVyZi5yYW5nZS5ZVEQiOiJZVEQiLCJwZXJmLnJhbmdlLjFZIjoiMVkiLCJwZXJmLnJhbmdlLkFMTCI6IkFsbCIsInBlcmYucmFuZ2UubGFiZWwiOiJUaW1lIHJhbmdlIiwicGVyZi5yYW5nZS5yZXR1cm5fbGFiZWwiOiJ7cmFuZ2V9IHJldHVybiIsInBlcmYuY2FyZC50d3IiOiJDdW11bGF0aXZlIHJldHVybiAoVFdSKSIsInBlcmYuY2FyZC5hbW91bnQiOiJQL0wgYW1vdW50IiwicGVyZi5jYXJkLmFtb3VudF9hc3NldF9jaGFuZ2UiOiJBc3NldCBjaGFuZ2UiLCJwZXJmLmNhcmQubWF4X2RyYXdkb3duIjoiTWF4IGRyYXdkb3duIiwicGVyZi5jYXJkLm1heF9kcmF3ZG93bl9kYXRlcyI6IntwZWFrfSDihpIge3Ryb3VnaH0iLCJwZXJmLmNhcmQuZXhjZXNzIjoiRXhjZXNzIHZzIGJlbmNobWFyayIsInBlcmYuY2FyZC5iZXN0X2RheSI6IkJlc3QgZGF5IiwicGVyZi5jYXJkLndvcnN0X2RheSI6IldvcnN0IGRheSIsInBlcmYucmV0dXJuc190aXRsZSI6IlJldHVybnMgdnMgYmVuY2htYXJrcyIsInBlcmYucmV0dXJuc19jdW11bGF0aXZlIjoiQ3VtdWxhdGl2ZSIsInBlcmYucmV0dXJuc19kYWlseSI6IkRhaWx5IiwicGVyZi5yZXR1cm5zX21haW5fc2VyaWVzIjoiU2VsZWN0ZWQgc2NvcGUiLCJwZXJmLmhvd19jYWxjdWxhdGVkIjoiSG93IGlzIHRoaXMgY2FsY3VsYXRlZD8iLCJwZXJmLm1ldGhvZF90aXRsZSI6IkhvdyByZXR1cm5zIGFyZSBjYWxjdWxhdGVkIiwicGVyZi5tZXRob2RfYm9keSI6IlJldHVybnMgYXJlIHRpbWUtd2VpZ2h0ZWQgKFRXUik6IGRhaWx5IHJldHVybnMgYXJlIGNhcGl0YWwtd2VpZ2h0ZWQsIHRoZW4gY29tcG91bmRlZDsgZXZlcnkgcmFuZ2Ugc3RhcnRzIGF0IHplcm8uIE5ldCBkZXBvc2l0cyBhbmQgd2l0aGRyYXdhbHMgZG8gbm90IGNvdW50IGFzIFAvTC4gV2l0aG91dCBjb21wbGV0ZSBjYXNoLWZsb3cgcmVjb3JkcyBvbmx5IHRoZSB1bmFkanVzdGVkIGFzc2V0LWNoYW5nZSByYXRpbyBpcyBzaG93biwgYW5kIFRXUiBhbmQgZHJhd2Rvd24gc3RheSBlbXB0eS4gQmVuY2htYXJrcyBhcmUgYWxpZ25lZCBpbmRlcGVuZGVudGx5IHRvIHRoZSBjb21tb24gc3RhcnQgYW5kIGFyZSBub3QgYSBjb21wYXJhYmxlIGNvbWJpbmVkIHBvcnRmb2xpbyByZXR1cm4uIiwicGVyZi5hc3NldHNfdGl0bGUiOiJUb3RhbCBhc3NldHMiLCJwZXJmLmFzc2V0c19ub3RlIjoiU2hvd3MgYXNzZXRzIG9mIHRoZSBzZWxlY3RlZCBzY29wZSBvbmx5OyBubyBiZW5jaG1hcmtzLiIsInBlcmYuYXNzZXRzX2Zsb3dfbWFyayI6IkNhc2ggZmxvdyIsInBlcmYuY2FsZW5kYXJfdGl0bGUiOiJSZXR1cm4gY2FsZW5kYXIiLCJwZXJmLmNhbGVuZGFyX21vbnRoIjoiTW9udGgiLCJwZXJmLmNhbGVuZGFyX3llYXIiOiJZZWFyIiwicGVyZi5jYWxlbmRhcl9kZXBvc2l0X25vdGUiOiJDYXNoLWZsb3cgZGF5cyBkbyBub3QgY291bnQgYXMgUC9MIiwicGVyZi5ob2xkaW5nc190aXRsZSI6IkhvbGRpbmdzIiwicGVyZi5ob2xkaW5nc19ub3RlIjoiQ3VycmVudCBob2xkaW5ncyDCtyB1bnJlYWxpemVkIiwicGVyZi5yYW5raW5nX3RpdGxlIjoiU3ltYm9sIFAvTCByYW5raW5nIiwicGVyZi50cmFkZXNfdGl0bGUiOiJUcmFkZSBzdGF0aXN0aWNzIiwicGVyZi50cmFkZXNfbm90X2Nvbm5lY3RlZCI6IlRyYWRlIHN0YXRpc3RpY3MgYXJlIG5vdCBjb25uZWN0ZWQuIiwicGVyZi5taXhlZF9jdXJyZW5jeV90aXRsZSI6Ik1peGVkIGN1cnJlbmNpZXMiLCJwZXJmLmNvbC5zeW1ib2wiOiJTeW1ib2wiLCJwZXJmLmNvbC5xdWFudGl0eSI6IlF1YW50aXR5IiwicGVyZi5jb2wubWFya2V0X3ZhbHVlIjoiTWFya2V0IHZhbHVlIiwicGVyZi5jb2wuY3VycmVuY3kiOiJDdXJyZW5jeSIsInBlcmYuY29sLmF2Z19jb3N0IjoiQXZnIGNvc3QiLCJwZXJmLmNvbC51bnJlYWxpemVkX3BubCI6IlVucmVhbGl6ZWQgUC9MIiwicGVyZi5jb2wuYWNjb3VudCI6IkFjY291bnQiLCJwZXJmLmNvbC5kYXRlIjoiRGF0ZSIsInBlcmYuY29sLmFtb3VudCI6IkFtb3VudCIsInBlcmYuY29sLnJldHVybiI6IlJldHVybiIsImRlY2lzaW9ucy50aXRsZSI6IlRvLWRvcyIsImRlY2lzaW9ucy5maWx0ZXIuYWxsIjoiQWxsIiwiZGVjaXNpb25zLnRhYi5wZW5kaW5nIjoiUGVuZGluZyIsImRlY2lzaW9ucy50YWIuZGVjaWRlZCI6IkRlY2lkZWQiLCJjYXRlZ29yeS5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI6IlJlY29uY2lsaWF0aW9uIHJlY292ZXJ5IiwiY2F0ZWdvcnkuc3RyYXRlZ3lfcHJvbW90aW9uIjoiU3RyYXRlZ3kgcHJvbW90aW9uIiwiY2F0ZWdvcnkub3duZXJfZGVjaXNpb24iOiJPd25lciBkZWNpc2lvbiIsImNhdGVnb3J5LmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiJDcmVkZW50aWFsIG1haW50ZW5hbmNlIiwiY2F0ZWdvcnkucGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiI6IlBhcGVyIGFjY291bnQgYXBwbGljYXRpb24iLCJkZWNpc2lvbnMucHJpb3JpdHkuaGlnaCI6IkhpZ2giLCJkZWNpc2lvbnMucHJpb3JpdHkubWVkaXVtIjoiTWVkaXVtIiwiZGVjaXNpb25zLnByaW9yaXR5Lm5vcm1hbCI6Ik5vcm1hbCIsImRlY2lzaW9ucy5zdGF0dXMucGVuZGluZyI6IlBlbmRpbmciLCJkZWNpc2lvbnMuc3RhdHVzLmRlY2lkZWQiOiJEZWNpZGVkIiwiZGVjaXNpb25zLnN0YXR1cy5leHBpcmVkIjoiRXhwaXJlZCIsImRlY2lzaW9ucy5xdWVzdGlvbiI6IllvdXIgZGVjaXNpb24iLCJkZWNpc2lvbnMuZGlmZl90aXRsZSI6IkJlZm9yZSDihpIgYWZ0ZXIiLCJkZWNpc2lvbnMuY29sLmZpZWxkIjoiRmllbGQiLCJkZWNpc2lvbnMuY29sLmN1cnJlbnQiOiJDdXJyZW50IiwiZGVjaXNpb25zLmNvbC5wcm9wb3NlZCI6IlByb3Bvc2VkIiwiZGVjaXNpb25zLmNvbC5hZmZlY3RzX2xpdmUiOiJBZmZlY3RzIGxpdmUiLCJkZWNpc2lvbnMuYWZmZWN0c19saXZlX3llcyI6IlllcyIsImRlY2lzaW9ucy5hZmZlY3RzX2xpdmVfbm8iOiJObyIsImRlY2lzaW9ucy5tYXRlcmlhbHMiOiJNYXRlcmlhbHMiLCJkZWNpc2lvbnMuYWRvcHRfaW50ZW50IjoiUmVjb3JkIGFkb3B0IGludGVudCIsImRlY2lzaW9ucy5kZWNsaW5lX2ludGVudCI6IlJlY29yZCBkZWNsaW5lIGludGVudCIsImRlY2lzaW9ucy5pbnRlbnRfbm90ZSI6Ik9ubHkgeW91ciBpbnRlbnQgaXMgcmVjb3JkZWQuIE5vIG9yZGVyIGlzIHBsYWNlZCBhbmQgbm8gcGVybWlzc2lvbiBjaGFuZ2VzLiIsImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X3RpdGxlIjoiUmVjb3JkIGFkb3B0IGludGVudD8iLCJkZWNpc2lvbnMuY29uZmlybV9kZWNsaW5lX3RpdGxlIjoiUmVjb3JkIGRlY2xpbmUgaW50ZW50PyIsImRlY2lzaW9ucy5jb25maXJtX2JvZHkiOiJPbmx5IHlvdXIgaW50ZW50IGlzIHJlY29yZGVkLiBObyBvcmRlciBpcyBzdWJtaXR0ZWQgYW5kIG5vIHRyYWRpbmcgcGVybWlzc2lvbiBjaGFuZ2VzLiIsImRlY2lzaW9ucy5oaXN0b3J5X3RpdGxlIjoiSGlzdG9yeSIsImRlY2lzaW9ucy5oaXN0b3J5LmVtcHR5IjoiTm8gaGlzdG9yeSB5ZXQiLCJkZWNpc2lvbnMuYWN0aW9uLmFkb3B0X2ludGVudCI6IkFkb3B0IGludGVudCIsImRlY2lzaW9ucy5hY3Rpb24uZGVjbGluZV9pbnRlbnQiOiJEZWNsaW5lIGludGVudCIsImRlY2lzaW9ucy5lbXB0eV9wZW5kaW5nIjoiTm90aGluZyBwZW5kaW5nIiwiZGVjaXNpb25zLmFjY291bnRfZ2xvYmFsIjoiQWxsIGFjY291bnRzIiwiZGVjaXNpb25zLnJlZiI6IlJlZiB7aWR9IiwiZGVjaXNpb25zLmV4cGlyZXNfYXQiOiJEdWUge3ZhbHVlfSIsImRlY2lzaW9ucy5jcmVhdGVkX2F0IjoiQ3JlYXRlZCB7dmFsdWV9IiwiZGVjaXNpb25zLnJlYWRfZmFpbGVkIjoiVG8tZG9zIGZhaWxlZCB0byBsb2FkLiBUaGlzIGRvZXMgbm90IG1lYW4gdGhlcmUgaXMgbm90aGluZyBwZW5kaW5nOyBwbGVhc2UgcmV0cnkuIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3N0YXR1cyI6IkFwcGxpY2F0aW9uIHN0YXR1czoge3ZhbHVlfSIsImFjY291bnRzLnRpdGxlIjoiQWNjb3VudHMiLCJhY2NvdW50cy5jb2wuYWxpYXMiOiJBbGlhcyIsImFjY291bnRzLmNvbC5wbGF0Zm9ybSI6IlBsYXRmb3JtIiwiYWNjb3VudHMuY29sLnN0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJhY2NvdW50cy5jb2wucnVuIjoiUnVuIiwiYWNjb3VudHMuY29sLmRyYWZ0cyI6IlBlbmRpbmcgZHJhZnRzIiwiYWNjb3VudHMuY29sLnRvZG9zIjoiVG8tZG9zIiwiYWNjb3VudHMuY29sLmxhc3RfY2hhbmdlIjoiTGFzdCBjaGFuZ2UiLCJhY2NvdW50cy50YWIub3ZlcnZpZXciOiJPdmVydmlldyIsImFjY291bnRzLnRhYi5zdHJhdGVneSI6IlN0cmF0ZWd5ICYgcGFyYW1ldGVycyIsImFjY291bnRzLnRhYi5jb250cm9scyI6IlJ1biBjb250cm9scyIsImFjY291bnRzLnRhYi5oaXN0b3J5IjoiQ2hhbmdlIGhpc3RvcnkiLCJhY2NvdW50cy5mcmVzaG5lc3MiOiJEYXRhIGZyZXNobmVzcyIsImFjY291bnRzLnJ1bl9zdGF0ZSI6IlJ1biBzdGF0ZSIsImFjY291bnRzLmVkaXQiOiJFZGl0IiwiYWNjb3VudHMuY2hlY2tfY2hhbmdlcyI6IlJldmlldyBjaGFuZ2VzIiwiYWNjb3VudHMudmlld2luZyI6IlZpZXdpbmciLCJhY2NvdW50cy5lZGl0aW5nIjoiRWRpdGluZyIsImFjY291bnRzLmRpZmZfZGlhbG9nX3RpdGxlIjoiQ29uZmlybSBkcmFmdCBjaGFuZ2VzIiwiYWNjb3VudHMuY29sLmRyYWZ0IjoiRHJhZnQiLCJhY2NvdW50cy5hY2tfbGl2ZSI6IkkgdW5kZXJzdGFuZCB0aGVzZSBjaGFuZ2VzIGFmZmVjdCBsaXZlIHRyYWRpbmciLCJhY2NvdW50cy5zYXZlX2RyYWZ0IjoiU2F2ZSBkcmFmdCIsImFjY291bnRzLmRyYWZ0X3NhdmVkIjoiRHJhZnQgc2F2ZWQuIiwiYWNjb3VudHMuZHJhZnRfbm90ZSI6IlNhdmluZyBhIGRyYWZ0IHBsYWNlcyBubyBvcmRlcnMsIGVuYWJsZXMgbm8gYWNjb3VudCwgYW5kIGNoYW5nZXMgbm8gdHJhZGluZyBwZXJtaXNzaW9ucy4gVGhlIGVmZmVjdGl2ZSBzZXR0aW5ncyBzdGF5IHVuY2hhbmdlZC4iLCJhY2NvdW50cy5jb25mbGljdCI6IlJldmlzaW9uIGNvbmZsaWN0OiB0aGUgZHJhZnQgd2FzIGNoYW5nZWQgZWxzZXdoZXJlLiBSZWZyZXNoIGFuZCByZXZpZXcgdGhlIGxhdGVzdCBkaWZmIGJlZm9yZSByZXRyeWluZy4iLCJhY2NvdW50cy5pZGVudGl0eV9jb25mbGljdCI6IlRoZSBhY2NvdW50IGlkZW50aXR5IGJlaGluZCB0aGUgZHJhZnQgaGFzIGNoYW5nZWQuIFJlZnJlc2ggYW5kIHJlY29uY2lsZSBmaXJzdC4iLCJhY2NvdW50cy5ub19jaGFuZ2VzIjoiTm8gY2hhbmdlcyIsImFjY291bnRzLmhpc3RvcnkuZW1wdHkiOiJObyBjaGFuZ2VzIHJlY29yZGVkIiwiYWNjb3VudHMuZXZlbnQuZHJhZnRfc2F2ZWQiOiJEcmFmdCBzYXZlZCIsImFjY291bnRzLmV2ZW50LmFwcHJvdmVkIjoiQXBwcm92ZWQiLCJhY2NvdW50cy5ldmVudC51bnJlY29yZGVkIjoiTm90IHJlY29yZGVkIiwiYWNjb3VudHMuaGlzdG9yeS5ub3RlIjoiSGlzdG9yeSByZXRlbnRpb24gaXMgYm91bmRlZDsgYSBzYXZlIG9yIGFwcHJvdmFsIGRvZXMgbm90IHByb3ZlIHRoZSBjaGFuZ2UgdG9vayBlZmZlY3QuIiwiYWNjb3VudHMuZHJhZnRfcmV2aXNpb24iOiJEcmFmdCByZXZpc2lvbiB7dmFsdWV9IiwiY29udHJvbHMudGl0bGUiOiJSdW4gY29udHJvbHMiLCJjb250cm9scy5kYW5nZXJfbm90ZSI6IlRoZXNlIGFjdGlvbnMgYWZmZWN0IGxpdmUgcnVucy4gUmV2aWV3IGJlZm9yZSBleGVjdXRpbmcuIiwiY29udHJvbHMuZW5hYmxlIjoiRW5hYmxlIiwiY29udHJvbHMuc3RvcCI6IlN0b3AiLCJjb250cm9scy5yZXN1bWUiOiJSZXN1bWUiLCJjb250cm9scy5hcHByb3ZlX2FwcGxpY2F0aW9uIjoiQXBwcm92ZSBhcHBsaWNhdGlvbiIsImNvbnRyb2xzLnN0b3Bfc3VtbWFyeSI6IlN0b3BwaW5nIG9ubHkgYmxvY2tzIG5ldyB0cmlnZ2Vycy4gSXQgZG9lcyBub3QgY2FuY2VsIG9yZGVycywgY2xvc2UgcG9zaXRpb25zLCBvciBjbGVhciBpbi1mbGlnaHQgcmVxdWVzdHMuIiwiY29udHJvbHMucmVzdW1lX3N1bW1hcnkiOiJSZXN1bWUgdGhlIGV4aXN0aW5nIHJ1bnRpbWUgdGFyZ2V0LiBObyBzdHJhdGVneSBvciBmdW5kaW5nIHBhcmFtZXRlcnMgY2hhbmdlLiIsImNvbnRyb2xzLmFwcHJvdmVfc3VtbWFyeSI6IkFwcHJvdmUgYXBwbHlpbmcgdGhlIGN1cnJlbnQgc3RyYXRlZ3ktcHJvZmlsZSBkcmFmdC4gVmVyaWZ5IHRoZSBlZmZlY3RpdmUgc3RhdGUgYWZ0ZXIgc3VibWlzc2lvbjsgdGhpcyBkb2VzIG5vdCBkaXJlY3RseSBwbGFjZSBvcmRlcnMuIiwiY29udHJvbHMuZW5hYmxlX3N1bW1hcnkiOiJFbmFibGUgdGhlIHJ1bnRpbWUgdGFyZ2V0IHNvIHRoZSBleGlzdGluZyBzY2hlZHVsZSByZXN1bWVzIHRyaWdnZXJpbmcuIiwiY29udHJvbHMuc3RvcF9jb25maXJtX3RpdGxlIjoiQ29uZmlybSBzdG9wcGluZyB0aGUgcnVudGltZSB0YXJnZXQiLCJjb250cm9scy5zdG9wX3R5cGVfYWxpYXMiOiJUeXBlIHRoZSBhY2NvdW50IGFsaWFzIHthbGlhc30gdG8gY29uZmlybSB0aGUgc3RvcCIsImNvbnRyb2xzLmFsaWFzX21pc21hdGNoIjoiVGhlIGFsaWFzIGRvZXMgbm90IG1hdGNoIiwiY29udHJvbHMuc3VibWl0dGVkIjoiUmVxdWVzdCBzdWJtaXR0ZWQ7IHRoZSByZXN1bHQgbmVlZHMgcmVhZC1iYWNrLiBEbyBub3QgcmVzdWJtaXQuIiwiY29udHJvbHMuc3VibWl0X2ZhaWxlZCI6IlN1Ym1pc3Npb24gZGlkIG5vdCBjb21wbGV0ZS4gVmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlIGJlZm9yZSBkZWNpZGluZzsgYXZvaWQgcmVzdWJtaXR0aW5nIGJsaW5kbHkuIiwiY29udHJvbHMudW5rbm93bl9yZXN1bHQiOiJUaGUgcHJldmlvdXMgc3VibWlzc2lvbidzIHJlc3VsdCBpcyB1bmtub3duIGFuZCBsb2NrZWQuIFJlZnJlc2ggYW5kIHZlcmlmeSBmaXJzdC4iLCJjb250cm9scy51bmF2YWlsYWJsZSI6IlVuYXZhaWxhYmxlOiB7cmVhc29ufSIsInN0cmF0ZWdpZXMudGl0bGUiOiJTdHJhdGVnaWVzIiwic3RyYXRlZ2llcy5kb21haW4iOiJNYXJrZXQiLCJzdHJhdGVnaWVzLm1vZGVzIjoiTmV3IGFjdGl2YXRpb24gLyBzd2l0Y2ggbW9kZXMiLCJzdHJhdGVnaWVzLmFjY291bnRzX3VzaW5nIjoiQ29uZmlndXJlZCBhY2NvdW50cyIsInN0cmF0ZWdpZXMuYWNjb3VudF9leGVjdXRpb24iOiJBY2NvdW50IGV4ZWN1dGlvbiBtb2RlIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGVnYWN5X2xpdmUiOiJMaXZlIMK3IGxlZ2FjeSBhY2NvdW50IGNvbnRpbnVhdGlvbiIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLmxpdmUiOiJMaXZlIiwic3RyYXRlZ2llcy5leGVjdXRpb24ubGl2ZV91bmtub3duIjoiTGl2ZSB0YXJnZXQgwrcgZHJ5LXJ1biBzdGF0dXMgdW5rbm93biIsInN0cmF0ZWdpZXMuZXhlY3V0aW9uLnBhcGVyIjoiUGFwZXIiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi5kcnlfcnVuIjoiRHJ5IHJ1biDCtyBubyBvcmRlcnMiLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbi51bmtub3duIjoiRXhlY3V0aW9uIG1vZGUgdW5rbm93biIsInN0cmF0ZWdpZXMubGl2ZV9leHBvc3VyZSI6IkxpdmUgY29uZmlndXJhdGlvbiBleHBvc2VzIHJlYWwgbW9uZXkuIENhdGFsb2cgbW9kZXMgYWJvdmUgYXBwbHkgb25seSB0byBuZXcgYWN0aXZhdGlvbnMgLyBzd2l0Y2hlcy4iLCJzdHJhdGVnaWVzLmV4ZWN1dGlvbl9zb3VyY2UiOiJNb2RlcyBjb21lIGZyb20gYWNjb3VudCBjb25maWd1cmF0aW9uOyByZWNlbnQgcnVucyBhbmQgZmlsbHMgYXJlIHVudmVyaWZpZWQuIiwic3RyYXRlZ2llcy5oZWFsdGgiOiJIZWFsdGgiLCJzdHJhdGVnaWVzLmhlYWx0aF9zY29yZSI6IlNjb3JlIHt2YWx1ZX0iLCJzdHJhdGVnaWVzLmxhc3RfcHJvbW90aW9uIjoiTGFzdCBwcm9tb3Rpb24iLCJzdHJhdGVnaWVzLnBhcmFtc19zdW1tYXJ5IjoiUGFyYW1ldGVyIHN1bW1hcnkiLCJzdHJhdGVnaWVzLnByb21vdGlvbl90aW1lbGluZSI6IlByb21vdGlvbiB0aW1lbGluZSIsInN0cmF0ZWdpZXMuZW1wdHkiOiJObyBzdHJhdGVnaWVzIHlldCIsInN0cmF0ZWdpZXMudGFiLmNhdGFsb2ciOiJDYXRhbG9nIiwic3RyYXRlZ2llcy50YWIucmVzZWFyY2giOiJSZXNlYXJjaCBsZWFkcyIsInN0cmF0ZWdpZXMucmVzZWFyY2hfb25seSI6IlJlc2VhcmNoIG9ubHk7IG5vIG9yZGVycyIsInN0cmF0ZWdpZXMucmVzZWFyY2hfbm90X2Nvbm5lY3RlZCI6IlJlc2VhcmNoIGxlYWRzIGFyZSBub3QgY29ubmVjdGVkLiIsImhlYWx0aC50aXRsZSI6IlJ1biBzdGF0dXMiLCJoZWFsdGguc3RhdC50b2RheV9ydW5zIjoiVG9kYXkge29rfS97dG90YWx9IiwiaGVhbHRoLnN0YXQub2JzZXJ2ZWQiOiJPYnNlcnZlZCB7b2JzZXJ2ZWR9L3tjb25maWd1cmVkfSIsImhlYWx0aC5zdGF0LmNyZWRlbnRpYWxzIjoie2NvdW50fSBjcmVkZW50aWFsKHMpIG5lZWQgYXR0ZW50aW9uIiwiaGVhbHRoLnN0YXQucmVjZW50X2ZhaWx1cmUiOiJSZWNlbnQgZmFpbHVyZXMge2NvdW50fSIsImhlYWx0aC5ncmlkX3RpdGxlIjoiTGFzdCAxNCBOZXcgWW9yayBidXNpbmVzcyBkYXlzIiwiaGVhbHRoLmdyaWQub2siOiJTdWNjZWVkZWQiLCJoZWFsdGguZ3JpZC5mYWlsZWQiOiJGYWlsZWQiLCJoZWFsdGguZ3JpZC5ub3RfcnVuIjoiTm90IHJ1biIsImhlYWx0aC5ncmlkLm5vX3JlY29yZCI6Ik5vIHJlY29yZCIsImhlYWx0aC5kYXlfZGV0YWlsIjoiRGF5IGRldGFpbCIsImhlYWx0aC5mcmVzaG5lc3NfdGl0bGUiOiJEYXRhIGZyZXNobmVzcyIsImhlYWx0aC5jcmVkZW50aWFsc190aXRsZSI6IkNyZWRlbnRpYWwgZXhwaXJ5IiwiaGVhbHRoLmNyZWRlbnRpYWxfaWJrcl9yZXBvcnQiOiJJQktSIHJlcG9ydCBjcmVkZW50aWFsIiwiaGVhbHRoLmNyZWRlbnRpYWxfb3RoZXIiOiJBY2NvdW50IGNyZWRlbnRpYWwiLCJoZWFsdGgudGFibGVfc2Nyb2xsX2hpbnQiOiJTY3JvbGwgaG9yaXpvbnRhbGx5IHRvIHNlZSB0aGUgZnVsbCB0YWJsZSIsImhlYWx0aC5ncmlkX3Njcm9sbF9oaW50IjoiU2Nyb2xsIGZvciBhbGwgZGF0ZXM7IGFjY291bnRzIHN0YXkgdmlzaWJsZSIsImhlYWx0aC5jcmVkZW50aWFsX2V4cGlyZXMiOiJFeHBpcmVzIHt2YWx1ZX0iLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5leHBpcmVkIjoiRXhwaXJlZCIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLjMwIjoiRXhwaXJlcyB3aXRoaW4gMzAgZGF5cyIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLjciOiJFeHBpcmVzIHdpdGhpbiA3IGRheXMiLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS4xIjoiRXhwaXJlcyB3aXRoaW4gMSBkYXkiLCJoZWFsdGguY3JlZGVudGlhbF9waGFzZS5ub3RfZHVlIjoiTm90IGR1ZSIsImhlYWx0aC5jcmVkZW50aWFsX3BoYXNlLnVua25vd24iOiJVbmtub3duIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfdGl0bGUiOiJOb3RpZmljYXRpb25zIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfbm90X2Nvbm5lY3RlZCI6IlRoZSBub3RpZmljYXRpb24gbG9nIGlzIG5vdCBjb25uZWN0ZWQuIiwiaGVhbHRoLmFjdGl2aXR5IjoiQWN0aXZpdHkiLCJoZWFsdGgucnVuX2NvdW50IjoiUnVuIGNvdW50IiwiaGVhbHRoLmNvbC5hY2NvdW50IjoiQWNjb3VudCIsImhlYWx0aC5jb2wuc291cmNlIjoiU291cmNlIiwiaGVhbHRoLmNvbC5zdGF0dXMiOiJTdGF0dXMiLCJoZWFsdGguY29sLmFzX29mIjoiQXMgb2YiLCJlcnJvci5nZW5lcmljIjoiVGhlIHJlcXVlc3QgZGlkIG5vdCBjb21wbGV0ZS4gUmVmcmVzaCBhbmQgdmVyaWZ5IHRoZSBjdXJyZW50IHN0YXRlLiIsImVycm9yLnNlc3Npb25fZXhwaXJlZCI6IlNlc3Npb24gZXhwaXJlZC4gUGxlYXNlIHNpZ24gaW4gYWdhaW4uIiwiZXJyb3IuYWNjZXNzX2RlbmllZCI6IkFjY2VzcyBkZW5pZWQuIiwiZXJyb3IuY29uZmxpY3QiOiJSZXZpc2lvbiBjb25mbGljdC4gWW91ciBlZGl0cyBhcmUga2VwdDsgcmVmcmVzaCBhbmQgdmVyaWZ5LiJ9LEtfPXsib3ZlcnZpZXcucnVudGltZV90YXJnZXQiOiLov5DooYznm67moIciLCJvdmVydmlldy5ydW50aW1lX2VuYWJsZWQiOiLlt7LlkK/nlKgiLCJvdmVydmlldy5ydW50aW1lX2Rpc2FibGVkIjoi5bey5YGc55SoIn0sSl89eyJvdmVydmlldy5ydW50aW1lX3RhcmdldCI6IlJ1bnRpbWUgdGFyZ2V0Iiwib3ZlcnZpZXcucnVudGltZV9lbmFibGVkIjoiRW5hYmxlZCIsIm92ZXJ2aWV3LnJ1bnRpbWVfZGlzYWJsZWQiOiJTdG9wcGVkIn0sJF89eyJwZXJmLmhpc3RvcnlfaW5jb21wbGV0ZSI6IuWOhuWPsuimhuebluS4jeWujOaVtCIsInBlcmYuaGlzdG9yeV9zdGFsZSI6IuWOhuWPsuaVsOaNruWBj+aXpyIsInBlcmYuaGlzdG9yeV9jb3ZlcmFnZV9ub3RlIjoi5Y6G5Y+y5puy57q/5Y+v6IO95LuF5ZCr6YOo5YiG6LSm5oi344CC57y65aSx6LSm5oi35LiN6K6h5YWl5bCP6K6h77yb5YmN5YC85aGr5YWF5rK/55So5YWI5YmN5Lyw5YC877yM5LiN5Luj6KGo5b2T5pel5paw5Lyw5YC844CCIiwicGVyZi5oaXN0b3J5X2FmZmVjdGVkX2FjY291bnRzIjoi5Y6G5Y+y57y65aSx5oiW5L2/55So5YmN5YC855qE6LSm5oi377yae2FjY291bnRzfSIsInBlcmYuY3VycmVuY3lfZXhjbHVkZWRfYWNjb3VudHMiOiLlj6bmnIkge2NvdW50fSDkuKrotKbmiLfnmoTluIHnp43miJbph5Hpop3mnKrnoa7orqTjgIIiLCJwZXJmLmRyYXdkb3duX3R3cl90aXRsZSI6IlRXUiDmnIDlpKflm57mkqQiLCJwZXJmLm5hdGl2ZV90b3RhbHNfbm90ZSI6IuaMieWOn+W4geenjeWIhuWIq+Wxleekuu+8jOS4jeaNouaxh++8m+S4jeWQjOS8sOWAvOaXpeacn+eahOi0puaIt+S4jeebuOWKoOOAgiIsInBlcmYuY3VycmVuY3lfc3VidG90YWwiOiJ7Y3VycmVuY3l9IOW3suingua1i+Wwj+iuoSIsInBlcmYuY3VycmVuY3lfdG90YWwiOiJ7Y3VycmVuY3l9IOi1hOS6p+aAu+minSIsInBlcmYuY3VycmVuY3lfYWNjb3VudHMiOiLnurPlhaUge2NvdW50fSAvIHtleHBlY3RlZH0g5Liq6LSm5oi3IiwicGVyZi5mcmVzaG5lc3NfY291bnRzIjoi6LSm5oi35pWw5o2u77ya5paw6bKcIHtmcmVzaH0gwrcg5YGP5penIHtzdGFsZX0gwrcg5pyq55+lIHt1bmtub3dufSIsInBlcmYuZnJlc2huZXNzX3RocmVzaG9sZCI6IuaMieWQhOi0puaIt+aXtumXtOWIhuWIq+WIpOaWre+8jOaXtuaViOmYiOWAvCB7aG91cnN9IOWwj+aXtuOAgiIsInJlYXNvbi5ub19jYXNoZmxvd19kYXRhIjoi57y65bCR5a6M5pW05Ye65YWl6YeR6K6w5b2V77yM5peg5rOV6K6h566XIFRXUiDlj4rlhbblm57mkqTjgIIiLCJyZWFzb24uaW5zdWZmaWNpZW50X2hpc3RvcnkiOiLoh7PlsJHpnIDopoHkuKTku73mnInmlYjkvLDlgLzorrDlvZXjgIIiLCJyZWFzb24ubm9fc25hcHNob3QiOiLmsqHmnInlj6/nlKjnmoTotKbmiLfkvLDlgLzlv6vnhafjgIIiLCJyZWFzb24uc25hcHNob3Rfc3RhbGUiOiLor6XotKbmiLflv6vnhaflt7LotoXov4fml7bmlYjpmIjlgLzjgIIiLCJyZWFzb24udmFsdWF0aW9uX2RhdGVfbWlzbWF0Y2giOiLotKbmiLfkvLDlgLzml6XmnJ/kuI3lkIzvvIzku4XlsZXnpLrmnIDmlrDml6XmnJ/nmoTlt7Lop4LmtYvlsI/orqHjgIIiLCJyZWFzb24uaW5jb21wbGV0ZV9hY2NvdW50X2NvdmVyYWdlIjoi6LSm5oi35pWw5o2u6KaG55uW5LiN5a6M5pW077yb5q2k6YeR6aKd5LuF5Li65bey6KeC5rWL5bCP6K6h44CCIiwicGVyZi5iZW5jaG1hcmtfc3A1MDAiOiLmoIfmma41MDAiLCJwZXJmLmJlbmNobWFya19uYXNkYXExMDAiOiLnurPmlq/ovr7lhYsxMDAiLCJwZXJmLmJlbmNobWFya19kb3ciOiLpgZPnkLzmlq/lt6XkuJrlubPlnYfmjIfmlbAiLCJwZXJmLmJlbmNobWFya19ydXNzZWxsMjAwMCI6Iue9l+e0oDIwMDAiLCJwZXJmLmJlbmNobWFya191bmtub3duIjoi5Z+65YeGIiwicGVyZm9ybWFuY2UuY3VycmVudF9ob2xkaW5nc191bnJlYWxpemVkIjoi5b2T5YmN5oyB5LuTIMK3IOacquWunueOsOebiOS6jyIsInBlcmYucmV0dXJuX2tpbmRfdHdyIjoi5pe26Ze05Yqg5p2D5pS255uK546H77yIVFdS77yJIiwicGVyZi5tZXRob2RfZGlldHpfYXBwcm94IjoiTW9kaWZpZWQgRGlldHrvvIjov5HkvLzvvIkiLCJwZXJmLm1ldGhvZF91bmtub3duIjoi5pS255uK5Y+j5b6E5pyq55+lIiwicGVyZi5jYXJkLnJldHVybl92YWx1ZSI6Iue0r+iuoeaUtuebiiIsInBlcmYuZHJhd2Rvd25fcGxhaW5fdGl0bGUiOiLmnIDlpKflm57mkqQiLCJwZXJmLm1ldGhvZF9ib2R5X3Vua25vd24iOiLmlLbnm4rmlbDlgLznmoTorqHnrpflj6PlvoTmnKrog73or4bliKvvvJrmjqXlj6Pov5Tlm57kuobmnKrnn6XmiJbkuI3kuIDoh7TnmoTmlrnms5XlhYPmlbDmja7jgILmlbDlgLzmjInlkI7nq6/ov5Tlm57ljp/moLflsZXnpLrvvIzkuI3og73op4bkuLrnsr7noa7nmoTml7bpl7TliqDmnYPmlLbnm4rvvIhUV1LvvInvvJvmnKrnn6XkuI3kvJrooqvlvZPkvZwgMCDmiJblkIjmoLzmlLbnm4rjgIIiLCJwZXJmLm1ldGhvZF9ib2R5X2RpZXR6Ijoi5pS255uK546H5oyJ5pe26Ze05Yqg5p2D77yIVFdS77yJ6K6h566X77ya5q+P5pel5pS255uK5YWI5YGa6LWE6YeR5Yqg5p2D77yM5YaN6YCQ5pel5aSN5Yip77yb5Yy66Ze06LW354K55b2S6Zu244CC5YeA5oqV5YWl77yI5Ye65YWl6YeR77yJ5LiN6K6h5YWl55uI5LqP44CC5pyJ5Ye65YWl6YeR6K6w5b2V5L2G5peg5rOV6YCQ5pel57K+56Gu5Yqg5p2D5pe277yM55u45bqU5pWw5YC85LulIE1vZGlmaWVkIERpZXR6IOi/keS8vOazleiuoeeul++8jOW5tuagh+azqOOAjOi/keS8vOOAjeOAgue8uuWwkeWujOaVtOWHuuWFpemHkeiusOW9leaXtu+8jOWPquWxleekuuacque7j+i1hOmHkea1geiwg+aVtOeahOi1hOS6p+WPmOWKqOavlOS+i++8jFRXUiDkuI7lm57mkqTnlZnnqbrjgILln7rlh4bluo/liJfni6znq4vlr7npvZDliLDlhbHlkIzotbfngrnvvIzkuI3ku6PooajkuI7mnKzotKbmiLfnmoTlj6/mr5Tnu4TlkIjmlLbnm4rjgIIiLCJwZXJmLnJldHVybl9raW5kX3VuYWRqdXN0ZWQiOiLmnKrnu4/lh7rlhaXph5HosIPmlbTnmoTotYTkuqflj5jliqjmr5TkvovvvIjpnZ4gVFdS77yJIiwicGVyZi5wZXJfY3VycmVuY3lfbm90ZSI6IuWkmuW4geenjeaXoOazleWQiOW5tuS4uuWQjOS4gOadoeabsue6v++8m+S7peS4i+aMieW4geenjeWIhuWIq+iuoeeul++8jOS4jeS7o+ihqOe7hOWQiOaVtOS9k+aUtuebiuOAgiIsInBlcmYuaG9sZGluZ3NfY292ZXJhZ2VfYWNjb3VudHMiOiLopobnm5botKbmiLfvvJp7dmFsdWV9IiwicGVyZi5yYW5raW5nX25vdGUiOiLmjInmnKrlrp7njrDnm4jkuo/ph5Hpop3mjpLluo/vvJvmr5TkvovkuLrnm7jlr7nmiJDmnKzku7fnmoTnm4jkuo/vvIznvLrlsJHmiJDmnKzku7fnmoTmjIHku5PkuI3lj4LkuI7mjpLooYzjgIIiLCJwZXJmLnJhbmtpbmdfd2lubmVycyI6IuebiOWIqemdoOWJjSIsInBlcmYucmFua2luZ19sb3NlcnMiOiLkuo/mjZ/pnaDliY0ifSxXXz17InBlcmYuaGlzdG9yeV9pbmNvbXBsZXRlIjoiSW5jb21wbGV0ZSBoaXN0b3J5IiwicGVyZi5oaXN0b3J5X3N0YWxlIjoiSGlzdG9yeSBpcyBzdGFsZSIsInBlcmYuaGlzdG9yeV9jb3ZlcmFnZV9ub3RlIjoiSGlzdG9yeSBtYXkgY292ZXIgb25seSBzb21lIGFjY291bnRzLiBNaXNzaW5nIGFjY291bnRzIGFyZSBleGNsdWRlZCBmcm9tIHN1YnRvdGFscy4gRm9yd2FyZC1maWxsZWQgdmFsdWVzIGNhcnJ5IGFuIGVhcmxpZXIgb2JzZXJ2YXRpb24sIG5vdCBhIG5ldyB2YWx1YXRpb24gZm9yIHRoYXQgZGF0ZS4iLCJwZXJmLmhpc3RvcnlfYWZmZWN0ZWRfYWNjb3VudHMiOiJBY2NvdW50cyB3aXRoIG1pc3Npbmcgb3IgY2FycmllZCBoaXN0b3J5OiB7YWNjb3VudHN9IiwicGVyZi5jdXJyZW5jeV9leGNsdWRlZF9hY2NvdW50cyI6IkN1cnJlbmN5IG9yIGJhbGFuY2UgaXMgdW5jb25maXJtZWQgZm9yIHtjb3VudH0gYWRkaXRpb25hbCBhY2NvdW50cy4iLCJwZXJmLmRyYXdkb3duX3R3cl90aXRsZSI6Ik1heGltdW0gVFdSIGRyYXdkb3duIiwicGVyZi5uYXRpdmVfdG90YWxzX25vdGUiOiJTaG93biBzZXBhcmF0ZWx5IGluIG5hdGl2ZSBjdXJyZW5jaWVzLCB3aXRob3V0IEZYIGNvbnZlcnNpb24uIEFjY291bnRzIHdpdGggZGlmZmVyZW50IHZhbHVhdGlvbiBkYXRlcyBhcmUgbm90IGFkZGVkLiIsInBlcmYuY3VycmVuY3lfc3VidG90YWwiOiJ7Y3VycmVuY3l9IG9ic2VydmVkIHN1YnRvdGFsIiwicGVyZi5jdXJyZW5jeV90b3RhbCI6IntjdXJyZW5jeX0gdG90YWwgYXNzZXRzIiwicGVyZi5jdXJyZW5jeV9hY2NvdW50cyI6IkluY2x1ZGVzIHtjb3VudH0gLyB7ZXhwZWN0ZWR9IGFjY291bnRzIiwicGVyZi5mcmVzaG5lc3NfY291bnRzIjoiQWNjb3VudCBkYXRhOiBmcmVzaCB7ZnJlc2h9IMK3IHN0YWxlIHtzdGFsZX0gwrcgdW5rbm93biB7dW5rbm93bn0iLCJwZXJmLmZyZXNobmVzc190aHJlc2hvbGQiOiJFYWNoIGFjY291bnQgaXMgY2hlY2tlZCBzZXBhcmF0ZWx5IGFnYWluc3QgYSB7aG91cnN9LWhvdXIgdGhyZXNob2xkLiIsInJlYXNvbi5ub19jYXNoZmxvd19kYXRhIjoiQ29tcGxldGUgY2FzaC1mbG93IHJlY29yZHMgYXJlIG1pc3Npbmc7IFRXUiBhbmQgaXRzIGRyYXdkb3duIGNhbm5vdCBiZSBjYWxjdWxhdGVkLiIsInJlYXNvbi5pbnN1ZmZpY2llbnRfaGlzdG9yeSI6IkF0IGxlYXN0IHR3byB2YWxpZCB2YWx1YXRpb24gb2JzZXJ2YXRpb25zIGFyZSByZXF1aXJlZC4iLCJyZWFzb24ubm9fc25hcHNob3QiOiJObyB1c2FibGUgYWNjb3VudCB2YWx1YXRpb24gc25hcHNob3QgaXMgYXZhaWxhYmxlLiIsInJlYXNvbi5zbmFwc2hvdF9zdGFsZSI6IlRoaXMgYWNjb3VudCBzbmFwc2hvdCBleGNlZWRzIHRoZSBmcmVzaG5lc3MgdGhyZXNob2xkLiIsInJlYXNvbi52YWx1YXRpb25fZGF0ZV9taXNtYXRjaCI6IkFjY291bnQgdmFsdWF0aW9uIGRhdGVzIGRpZmZlcjsgb25seSB0aGUgb2JzZXJ2ZWQgc3VidG90YWwgZm9yIHRoZSBsYXRlc3QgZGF0ZSBpcyBzaG93bi4iLCJyZWFzb24uaW5jb21wbGV0ZV9hY2NvdW50X2NvdmVyYWdlIjoiQWNjb3VudCBjb3ZlcmFnZSBpcyBpbmNvbXBsZXRlOyB0aGlzIGFtb3VudCBpcyBhbiBvYnNlcnZlZCBzdWJ0b3RhbC4iLCJwZXJmLmJlbmNobWFya19zcDUwMCI6IlMmUCA1MDAiLCJwZXJmLmJlbmNobWFya19uYXNkYXExMDAiOiJOYXNkYXEtMTAwIiwicGVyZi5iZW5jaG1hcmtfZG93IjoiRG93IEpvbmVzIEluZHVzdHJpYWwgQXZlcmFnZSIsInBlcmYuYmVuY2htYXJrX3J1c3NlbGwyMDAwIjoiUnVzc2VsbCAyMDAwIiwicGVyZi5iZW5jaG1hcmtfdW5rbm93biI6IkJlbmNobWFyayIsInBlcmZvcm1hbmNlLmN1cnJlbnRfaG9sZGluZ3NfdW5yZWFsaXplZCI6IkN1cnJlbnQgaG9sZGluZ3MgwrcgdW5yZWFsaXplZCBQL0wiLCJwZXJmLnJldHVybl9raW5kX3R3ciI6IlRpbWUtd2VpZ2h0ZWQgcmV0dXJuIChUV1IpIiwicGVyZi5tZXRob2RfZGlldHpfYXBwcm94IjoiTW9kaWZpZWQgRGlldHogKGFwcHJveGltYXRlKSIsInBlcmYubWV0aG9kX3Vua25vd24iOiJSZXR1cm4gbWV0aG9kIHVua25vd24iLCJwZXJmLmNhcmQucmV0dXJuX3ZhbHVlIjoiQ3VtdWxhdGl2ZSByZXR1cm4iLCJwZXJmLmRyYXdkb3duX3BsYWluX3RpdGxlIjoiTWF4aW11bSBkcmF3ZG93biIsInBlcmYubWV0aG9kX2JvZHlfdW5rbm93biI6IlRoZSBjYWxjdWxhdGlvbiBtZXRob2QgZm9yIHRoZXNlIHJldHVybnMgY291bGQgbm90IGJlIGlkZW50aWZpZWQ6IHRoZSBBUEkgcmV0dXJuZWQgdW5rbm93biBvciBpbmNvbnNpc3RlbnQgbWV0aG9kIG1ldGFkYXRhLiBWYWx1ZXMgYXJlIHNob3duIGV4YWN0bHkgYXMgcmV0dXJuZWQgYW5kIG11c3Qgbm90IGJlIHJlYWQgYXMgYW4gZXhhY3QgdGltZS13ZWlnaHRlZCByZXR1cm4gKFRXUik7IHVua25vd24gaXMgbmV2ZXIgdHJlYXRlZCBhcyB6ZXJvIG9yIGFzIGEgcXVhbGlmaWVkIHJldHVybi4iLCJwZXJmLm1ldGhvZF9ib2R5X2RpZXR6IjoiUmV0dXJucyBhcmUgdGltZS13ZWlnaHRlZCAoVFdSKTogZGFpbHkgcmV0dXJucyBhcmUgY2FwaXRhbC13ZWlnaHRlZCwgdGhlbiBjb21wb3VuZGVkOyBldmVyeSByYW5nZSBzdGFydHMgYXQgemVyby4gTmV0IGRlcG9zaXRzIGFuZCB3aXRoZHJhd2FscyBkbyBub3QgY291bnQgYXMgUC9MLiBXaGVuIGNhc2gtZmxvdyByZWNvcmRzIGV4aXN0IGJ1dCBleGFjdCBkYWlseSB3ZWlnaHRpbmcgaXMgbm90IHBvc3NpYmxlLCB0aGUgYWZmZWN0ZWQgZmlndXJlcyB1c2UgdGhlIE1vZGlmaWVkIERpZXR6IGFwcHJveGltYXRpb24gYW5kIGFyZSBsYWJlbGVkIGFzIGFwcHJveGltYXRlLiBXaXRob3V0IGNvbXBsZXRlIGNhc2gtZmxvdyByZWNvcmRzIG9ubHkgdGhlIHVuYWRqdXN0ZWQgYXNzZXQtY2hhbmdlIHJhdGlvIGlzIHNob3duLCBhbmQgVFdSIGFuZCBkcmF3ZG93biBzdGF5IGVtcHR5LiBCZW5jaG1hcmtzIGFyZSBhbGlnbmVkIGluZGVwZW5kZW50bHkgdG8gdGhlIGNvbW1vbiBzdGFydCBhbmQgYXJlIG5vdCBhIGNvbXBhcmFibGUgY29tYmluZWQgcG9ydGZvbGlvIHJldHVybi4iLCJwZXJmLnJldHVybl9raW5kX3VuYWRqdXN0ZWQiOiJBc3NldC1jaGFuZ2UgcmF0aW8gdW5hZGp1c3RlZCBmb3IgY2FzaCBmbG93cyAobm90IFRXUikiLCJwZXJmLnBlcl9jdXJyZW5jeV9ub3RlIjoiTWl4ZWQgY3VycmVuY2llcyBjYW5ub3QgYmUgbWVyZ2VkIGludG8gb25lIGN1cnZlOyBlYWNoIGN1cnJlbmN5IGJlbG93IGlzIGNvbXB1dGVkIHNlcGFyYXRlbHkgYW5kIGlzIG5vdCBhIGNvbWJpbmVkIHBvcnRmb2xpbyByZXR1cm4uIiwicGVyZi5ob2xkaW5nc19jb3ZlcmFnZV9hY2NvdW50cyI6IkNvdmVyZWQgYWNjb3VudHM6IHt2YWx1ZX0iLCJwZXJmLnJhbmtpbmdfbm90ZSI6IlJhbmtlZCBieSB1bnJlYWxpemVkIFAvTCBhbW91bnQ7IHBlcmNlbnRhZ2VzIGFyZSByZWxhdGl2ZSB0byBjb3N0IGJhc2lzLiBIb2xkaW5ncyB3aXRob3V0IGEgY29zdCBiYXNpcyBhcmUgbm90IHJhbmtlZC4iLCJwZXJmLnJhbmtpbmdfd2lubmVycyI6IlRvcCBnYWluZXJzIiwicGVyZi5yYW5raW5nX2xvc2VycyI6IlRvcCBsb3NlcnMifSxGXz17InJlY29uY2lsaWF0aW9uLnRpdGxlIjoi5a+56LSm5p2Q5paZ5LiO5b2T5YmN6KeC5a+fIiwicmVjb25jaWxpYXRpb24uY3VycmVudCI6IuW9k+WJjeWvuei0puinguWvnyIsInJlY29uY2lsaWF0aW9uLm5vdF9jb25uZWN0ZWQiOiLmnKrmjqXlhaUgLyDmnKrnn6UiLCJyZWNvbmNpbGlhdGlvbi5oaXN0b3J5X25vdGljZSI6IuaBouWkjeWuoeaJueadkOaWmeS4jeS7o+ihqOS7iuWkqeeahOWvuei0pueKtuaAgeOAgiIsInJlY29uY2lsaWF0aW9uLm1hdGVyaWFscyI6IuaBouWkjeWuoeaJueadkOaWmSIsInJlY29uY2lsaWF0aW9uLnN0YWxlIjoi5oGi5aSN5p2Q5paZ5bey6L+H5pyf77yM6K+35p+l55yL5Y6f5aeL5pel5pyf44CCIiwicmVjb25jaWxpYXRpb24ucmVhZF91bmtub3duIjoi5oGi5aSN5p2Q5paZ5oiW5Yaz5a6a54q25oCB5bCa5pyq5qC45a6eIiwicmVjb25jaWxpYXRpb24uZW1wdHkiOiLmsqHmnInlj6/mmL7npLrnmoTmgaLlpI3orrDlvZXjgIIiLCJyZWNvbmNpbGlhdGlvbi51bm5hbWVkX3N0cmF0ZWd5Ijoi5pyq5ZG95ZCN562W55WlIiwicmVjb25jaWxpYXRpb24uZGVjaXNpb25fc3RhdHVzIjoi5Yaz5a6a54q25oCBIiwicmVjb25jaWxpYXRpb24uZGVjaXNpb25fdW5rbm93biI6IuWGs+WumueKtuaAgeacquefpSIsInJlY29uY2lsaWF0aW9uLmZyZXNobmVzcyI6IuadkOaWmeaWsOmynOW6piIsInJlY29uY2lsaWF0aW9uLm9ic2VydmVkX2F0Ijoi5Y6f5aeL6KeC5rWL5pe26Ze0IiwicmVjb25jaWxpYXRpb24uZ2VuZXJhdGVkX2F0Ijoi5p2Q5paZ55Sf5oiQ5pe26Ze0IiwicmVjb25jaWxpYXRpb24uY29tcHV0ZWRfYXQiOiLmnZDmlpnorqHnrpfml7bpl7QiLCJpbmJveC5jb3VudF91bmtub3duIjoi5b6F5Yqe5ZKM5a6h5om55pWw6YeP5bCa5pyq56Gu6K6k44CCIiwiaW5ib3guZXJyb3IucXVvdGFfZXhoYXVzdGVkLnRpdGxlIjoi5b6F5Yqe55uu5b2V6YWN6aKd5bey55So5bC9IiwiaW5ib3guZXJyb3IucXVvdGFfZXhoYXVzdGVkLmRldGFpbCI6IuWQjuWPsOaJq+aPj+W+heWKnuebruW9lemBh+WIsOavj+aXpemFjeminemZkOWItu+8jOWujOaVtOW+heWKnuaaguS4jeWPr+eUqOOAgiIsImluYm94LmVycm9yLnVuYXV0aG9yaXplZC50aXRsZSI6IuW+heWKnuiuv+mXruWPl+mZkCIsImluYm94LmVycm9yLnVuYXV0aG9yaXplZC5kZXRhaWwiOiLnmbvlvZXlt7LlpLHmlYjmiJblvZPliY3otKbmiLfmsqHmnInor7vlj5bmnYPpmZDjgIIiLCJpbmJveC5lcnJvci5pbmRleF9taXNzaW5nLnRpdGxlIjoi5b6F5Yqe55uu5b2V5bCa5pyq5bu656uLIiwiaW5ib3guZXJyb3IuaW5kZXhfbWlzc2luZy5kZXRhaWwiOiLlsJrml6DlrozmlbTnm67lvZXvvIzml6Dms5Xnoa7orqTlvoXlip7lkozlrqHmibnmlbDph4/jgIIiLCJpbmJveC5lcnJvci5pbmRleF9pbmNvbXBsZXRlLnRpdGxlIjoi5b6F5Yqe55uu5b2V5bCa5pyq5pu05paw5a6M5oiQIiwiaW5ib3guZXJyb3IuaW5kZXhfaW5jb21wbGV0ZS5kZXRhaWwiOiLml6forrDlvZXlsJrmnKrlhajpg6jnurPlhaXnm67lvZXvvIzlvZPliY3ml6Dms5Xnoa7orqTlhajpg6jlvoXlip7lkozlrqHmibnjgIIiLCJpbmJveC5lcnJvci5pbmRleF91bmF2YWlsYWJsZS50aXRsZSI6IuW+heWKnuebruW9leaaguS4jeWPr+eUqCIsImluYm94LmVycm9yLmluZGV4X3VuYXZhaWxhYmxlLmRldGFpbCI6IueOsOacieebruW9leaXoOazleWujOaVtOivu+WPlu+8jOmcgOimgee7tOaKpOS6uuWRmOajgOafpeebruW9leeKtuaAgeOAgiIsImluYm94LmVycm9yLnVua25vd24udGl0bGUiOiLlvoXlip7mmoLml6Dms5Xor7vlj5YiLCJpbmJveC5lcnJvci51bmtub3duLmRldGFpbCI6IuacquiDveehruiupOWFt+S9k+WOn+WboO+8jOivt+eojeWQjumHjeaWsOivu+WPlu+8m+iLpeaMgee7reWksei0pe+8jOivt+iBlOezu+e7tOaKpOS6uuWRmOOAgiIsImluYm94LnJldHJ5X2F0Ijoi55uu5b2V57u05oqk5pyA5pep6YeN6K+V5pe26Ze077yae3ZhbHVlfe+8jOS4jeS7o+ihqOWxiuaXtuS4gOWumuaBouWkjeOAgiIsImluYm94LmF1dGhfaGludCI6Iuivt+S9v+eUqOW3suacieivu+WPluadg+mZkOeahOi0puaIt+mHjeaWsOeZu+W9leOAgiIsImluYm94LnJldHJ5X2hpbnQiOiLnqI3lkI7lj6/ph43mlrDor7vlj5bnjrDmnInnm67lvZXvvIzmraTmk43kvZzkuI3kvJrmiavmj4/miJbph43lu7rnm67lvZXjgILlpLHotKXnu5Pmnpzlj6/og73kv53nlZnkuIDliIbpkp/jgIIiLCJpbmJveC5yZXRyeSI6IumHjeaWsOivu+WPluW+heWKniIsInN0YXRlLmZyZXNoIjoi5pyA5pawIiwic3RhdGUudW5rbm93biI6IuacquefpSIsImRlY2lzaW9ucy5wYXJ0aWFsX3NvdXJjZXMiOiLpg6jliIbmnaXmupDmnKrlsLHnu6rvvJp7dmFsdWV9IiwiZGVjaXNpb25zLm1hdGVyaWFsX2ZyZXNobmVzcyI6IuadkOaWmeaWsOmynOW6pu+8mnt2YWx1ZX0iLCJkZWNpc2lvbnMuc3RhbGVfaGludCI6IuWIm+W7uui+g+aXqe+8jOadkOaWmeWPr+iDveW3sumZiOaXpyIsImRlY2lzaW9ucy5pbnRlbnRfcmVjb3JkZWQiOiLmhI/lkJHlt7LorrDlvZXjgIIiLCJkZWNpc2lvbnMubWF0ZXJpYWxfY2hhbmdlZCI6IuadkOaWmeW3suabtOaWsO+8jOivt+mHjeaWsOafpeeci+ivpuaDheWQjuWGjeehruiupOOAgiIsImRlY2lzaW9ucy5pbnRlbnRfbm90X3BlbmRpbmciOiLor6Xkuovpobnlt7LkuI3lnKjlvoXlpITnkIbnirbmgIHjgIIiLCJkZWNpc2lvbnMuaW50ZW50X3VuYXZhaWxhYmxlIjoi5pqC5peg5rOV56Gu6K6k5p2Q5paZ77yM5peg5rOV6K6w5b2V5oSP5ZCR77yb6K+35Yi35paw5ZCO6YeN6K+V44CCIiwiZGVjaXNpb25zLnJlY29uY2lsaWF0aW9uX3JlY292ZXJ5Ijoi5a+56LSm5oGi5aSN56Gu6K6kIiwiZGVjaXNpb25zLnN0cmF0ZWd5X3Byb21vdGlvbiI6IuetlueVpeaZi+e6p+aWueahiCIsImRlY2lzaW9ucy5vd25lcl9kZWNpc2lvbiI6Iui0n+i0o+S6uuWGs+WumiIsImRlY2lzaW9ucy5wYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIjoi5qih5ouf6LSm5oi35bqU55SoIiwiZGVjaXNpb25zLmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiLlh63or4Hnu7TmiqQiLCJkZWNpc2lvbnMuc3RyYXRlZ3kiOiLnrZbnlaUiLCJkZWNpc2lvbnMudmVyc2lvbiI6IueJiOacrCIsImRlY2lzaW9ucy5wYXJhbWV0ZXJzIjoi5Y+C5pWwIiwiZGVjaXNpb25zLnNoYWRvd19wYXNzZWQiOiLmqKHmi5/op4Llr5/pgJrov4ciLCJkZWNpc2lvbnMuc2hhZG93Ijoi5qih5ouf6KeC5a+f5oyH5qCHIiwiZGVjaXNpb25zLnByb21wdC5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI6IuaYr+WQpumHh+eUqOi/meS7veaBouWkjeaWueahiO+8n+iusOW9leaEj+WQkeS4jeS8muebtOaOpeWQr+eUqOi0puaIt+OAgiIsImRlY2lzaW9ucy5wcm9tcHQuc3RyYXRlZ3lfcHJvbW90aW9uIjoi5piv5ZCm6YeH55So6L+Z6aG5562W55Wl5pmL57qn5pa55qGI77yfIiwiZGVjaXNpb25zLnByb21wdC5vd25lcl9kZWNpc2lvbiI6IuaYr+WQpumHh+eUqOi/meS4quetlueVpeWAmemAie+8nyIsImRlY2lzaW9ucy5wcm9tcHQucGFwZXJfYWNjb3VudF9hcHBsaWNhdGlvbiI6IuaYr+WQpuWwhui/meS4quaWueahiOW6lOeUqOWIsOaooeaLn+i0puaIt++8nyIsImRlY2lzaW9ucy5wcm9tcHQuY3JlZGVudGlhbF9tYWludGVuYW5jZSI6IuWHreivgemcgOimgee7tOaKpO+8jOivt+WcqOi/kOihjOeKtuaAgemhteWkhOeQhuOAgiIsImRlY2lzaW9ucy5zZWxlY3RfcHJvbXB0Ijoi5LuO5bem5L6n6YCJ5oup5LiA5p2h5LqL6aG55p+l55yL6K+m5oOF44CCIiwiZGVjaXNpb25zLnNlbGVjdF9hY2NvdW50Ijoi55uu5qCH6LSm5oi3IiwiZGVjaXNpb25zLm5vX2FjY291bnRfb3B0aW9ucyI6IuaaguaXoOWPr+eUqOeahOaooeaLn+i0puaIt+mAiemhue+8jOaXoOazleaPkOS6pOW6lOeUqOOAgiIsImRlY2lzaW9ucy5hcHBseV9ub3RlIjoi5Y+q5o+Q5Lqk5qih5ouf6LSm5oi35bqU55So6K+35rGC77yM5LiN5Lya6Ieq5Yqo5ZCv55So562W55Wl5oiW5LiL5Y2V44CCIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3N1Ym1pdHRlZCI6IuW6lOeUqOivt+axguW3suaPkOS6pO+8m+e7k+aenOmcgOivu+WbnuehruiupO+8jOivt+WLv+mHjeWkjeaPkOS6pOOAgiIsImRlY2lzaW9ucy5hcHBsaWNhdGlvbl91bmNlcnRhaW4iOiLlt7LmnInlupTnlKjor7fmsYLnu5PmnpzlvoXnoa7orqTvvIzor7fli7/ph43lpI3mj5DkuqTjgIIiLCJkZWNpc2lvbnMub3Blbl9oZWFsdGgiOiLliY3lvoDov5DooYznirbmgIEiLCJkZWNpc2lvbnMuc3VibWl0dGluZyI6Iuato+WcqOaPkOS6pOKApiIsImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X2xhYmVsIjoi56Gu6K6k6YeH55SoIiwiZGVjaXNpb25zLmNvbmZpcm1fZGVjbGluZV9sYWJlbCI6IuehruiupOS4jemHh+eUqCIsImRlY2lzaW9ucy5mcmVzaG5lc3MucmVhZHkiOiLlsLHnu6oiLCJkZWNpc2lvbnMuc291cmNlLm93bmVyIjoi6LSf6LSj5Lq65Yaz5a6aIiwiZGVjaXNpb25zLnNvdXJjZS5wcm9tb3Rpb24iOiLnrZbnlaXmmYvnuqciLCJkZWNpc2lvbnMuc291cmNlLnJlY292ZXJ5Ijoi5a+56LSm5oGi5aSNIiwiZGVjaXNpb25zLnNvdXJjZS5jcmVkZW50aWFsIjoi5Yet6K+BIn0sUF89eyJyZWNvbmNpbGlhdGlvbi50aXRsZSI6IlJlY29uY2lsaWF0aW9uIG1hdGVyaWFscyBhbmQgY3VycmVudCBvYnNlcnZhdGlvbiIsInJlY29uY2lsaWF0aW9uLmN1cnJlbnQiOiJDdXJyZW50IHJlY29uY2lsaWF0aW9uIG9ic2VydmF0aW9uIiwicmVjb25jaWxpYXRpb24ubm90X2Nvbm5lY3RlZCI6Ik5vdCBjb25uZWN0ZWQgLyB1bmtub3duIiwicmVjb25jaWxpYXRpb24uaGlzdG9yeV9ub3RpY2UiOiJSZWNvdmVyeSBhcHByb3ZhbCBtYXRlcmlhbCBkb2VzIG5vdCBlc3RhYmxpc2ggdG9kYXkncyByZWNvbmNpbGlhdGlvbiBzdGF0dXMuIiwicmVjb25jaWxpYXRpb24ubWF0ZXJpYWxzIjoiUmVjb3ZlcnkgYXBwcm92YWwgbWF0ZXJpYWwiLCJyZWNvbmNpbGlhdGlvbi5zdGFsZSI6IlJlY292ZXJ5IG1hdGVyaWFsIGlzIHN0YWxlLiBDaGVjayB0aGUgb3JpZ2luYWwgZGF0ZXMuIiwicmVjb25jaWxpYXRpb24ucmVhZF91bmtub3duIjoiUmVjb3ZlcnkgbWF0ZXJpYWwgb3IgZGVjaXNpb24gc3RhdHVzIGhhcyBub3QgYmVlbiB2ZXJpZmllZCIsInJlY29uY2lsaWF0aW9uLmVtcHR5IjoiVGhlcmUgYXJlIG5vIHJlY292ZXJ5IHJlY29yZHMgdG8gZGlzcGxheS4iLCJyZWNvbmNpbGlhdGlvbi51bm5hbWVkX3N0cmF0ZWd5IjoiVW5uYW1lZCBzdHJhdGVneSIsInJlY29uY2lsaWF0aW9uLmRlY2lzaW9uX3N0YXR1cyI6IkRlY2lzaW9uIHN0YXR1cyIsInJlY29uY2lsaWF0aW9uLmRlY2lzaW9uX3Vua25vd24iOiJEZWNpc2lvbiBzdGF0dXMgdW5rbm93biIsInJlY29uY2lsaWF0aW9uLmZyZXNobmVzcyI6Ik1hdGVyaWFsIGZyZXNobmVzcyIsInJlY29uY2lsaWF0aW9uLm9ic2VydmVkX2F0IjoiT3JpZ2luYWwgb2JzZXJ2YXRpb24gdGltZSIsInJlY29uY2lsaWF0aW9uLmdlbmVyYXRlZF9hdCI6Ik1hdGVyaWFsIGdlbmVyYXRlZCBhdCIsInJlY29uY2lsaWF0aW9uLmNvbXB1dGVkX2F0IjoiTWF0ZXJpYWwgY29tcHV0ZWQgYXQiLCJpbmJveC5jb3VudF91bmtub3duIjoiVG9kbyBhbmQgYXBwcm92YWwgY291bnRzIGFyZSB1bmtub3duLiIsImluYm94LmVycm9yLnF1b3RhX2V4aGF1c3RlZC50aXRsZSI6IlRvZG8gZGlyZWN0b3J5IHF1b3RhIGV4aGF1c3RlZCIsImluYm94LmVycm9yLnF1b3RhX2V4aGF1c3RlZC5kZXRhaWwiOiJBIGJhY2tncm91bmQgZGlyZWN0b3J5IHNjYW4gcmVhY2hlZCBpdHMgZGFpbHkgcXVvdGEuIFRoZSBjb21wbGV0ZSBpbmJveCBpcyB1bmF2YWlsYWJsZS4iLCJpbmJveC5lcnJvci51bmF1dGhvcml6ZWQudGl0bGUiOiJUb2RvIGFjY2VzcyByZXN0cmljdGVkIiwiaW5ib3guZXJyb3IudW5hdXRob3JpemVkLmRldGFpbCI6IllvdXIgc2Vzc2lvbiBoYXMgZXhwaXJlZCBvciB0aGlzIGFjY291bnQgbGFja3MgcmVhZCBhY2Nlc3MuIiwiaW5ib3guZXJyb3IuaW5kZXhfbWlzc2luZy50aXRsZSI6IlRvZG8gaW5kZXggbm90IGluaXRpYWxpemVkIiwiaW5ib3guZXJyb3IuaW5kZXhfbWlzc2luZy5kZXRhaWwiOiJBIGNvbXBsZXRlIGluZGV4IGlzIG5vdCBhdmFpbGFibGUsIHNvIHRvZG8gYW5kIGFwcHJvdmFsIGNvdW50cyBhcmUgdW5rbm93bi4iLCJpbmJveC5lcnJvci5pbmRleF9pbmNvbXBsZXRlLnRpdGxlIjoiVG9kbyBpbmRleCB1cGRhdGUgaW5jb21wbGV0ZSIsImluYm94LmVycm9yLmluZGV4X2luY29tcGxldGUuZGV0YWlsIjoiU29tZSBsZWdhY3kgcmVjb3JkcyBoYXZlIG5vdCBiZWVuIGluZGV4ZWQgeWV0LiBDb21wbGV0ZSB0b2RvIGFuZCBhcHByb3ZhbCBjb3ZlcmFnZSBpcyB1bmtub3duLiIsImluYm94LmVycm9yLmluZGV4X3VuYXZhaWxhYmxlLnRpdGxlIjoiVG9kbyBpbmRleCB1bmF2YWlsYWJsZSIsImluYm94LmVycm9yLmluZGV4X3VuYXZhaWxhYmxlLmRldGFpbCI6IlRoZSBleGlzdGluZyBpbmRleCBjb3VsZCBub3QgYmUgcmVhZCBjb21wbGV0ZWx5LiBBIG1haW50YWluZXIgbmVlZHMgdG8gY2hlY2sgaXRzIHN0YXR1cy4iLCJpbmJveC5lcnJvci51bmtub3duLnRpdGxlIjoiVG9kb3MgY291bGQgbm90IGJlIHJlYWQiLCJpbmJveC5lcnJvci51bmtub3duLmRldGFpbCI6IlRoZSBjYXVzZSBpcyB1bmtub3duLiBUcnkgcmVhZGluZyBhZ2FpbiBsYXRlcjsgY29udGFjdCBhIG1haW50YWluZXIgaWYgdGhlIHByb2JsZW0gcGVyc2lzdHMuIiwiaW5ib3gucmV0cnlfYXQiOiJFYXJsaWVzdCBkaXJlY3RvcnkgbWFpbnRlbmFuY2UgcmV0cnk6IHt2YWx1ZX0uIFJlY292ZXJ5IGJ5IHRoYXQgdGltZSBpcyBub3QgZ3VhcmFudGVlZC4iLCJpbmJveC5hdXRoX2hpbnQiOiJTaWduIGluIGFnYWluIHdpdGggYW4gYWNjb3VudCB0aGF0IGFscmVhZHkgaGFzIHJlYWQgYWNjZXNzLiIsImluYm94LnJldHJ5X2hpbnQiOiJSZWFkIHRoZSBleGlzdGluZyBpbmRleCBhZ2FpbiBsYXRlci4gVGhpcyBkb2VzIG5vdCBzY2FuIG9yIHJlYnVpbGQgdGhlIGRpcmVjdG9yeS4gRmFpbGVkIHJlc3VsdHMgbWF5IGJlIGNhY2hlZCBmb3Igb25lIG1pbnV0ZS4iLCJpbmJveC5yZXRyeSI6IlJlYWQgdG9kb3MgYWdhaW4iLCJzdGF0ZS5mcmVzaCI6IkZyZXNoIiwic3RhdGUudW5rbm93biI6IlVua25vd24iLCJkZWNpc2lvbnMucGFydGlhbF9zb3VyY2VzIjoiU29tZSBzb3VyY2VzIGFyZSBub3QgcmVhZHk6IHt2YWx1ZX0iLCJkZWNpc2lvbnMubWF0ZXJpYWxfZnJlc2huZXNzIjoiTWF0ZXJpYWwgZnJlc2huZXNzOiB7dmFsdWV9IiwiZGVjaXNpb25zLnN0YWxlX2hpbnQiOiJDcmVhdGVkIGEgd2hpbGUgYWdvOyB0aGUgbWF0ZXJpYWwgbWF5IGJlIHN0YWxlIiwiZGVjaXNpb25zLmludGVudF9yZWNvcmRlZCI6IkludGVudCByZWNvcmRlZC4iLCJkZWNpc2lvbnMubWF0ZXJpYWxfY2hhbmdlZCI6IlRoZSBtYXRlcmlhbCBoYXMgY2hhbmdlZC4gUmV2aWV3IHRoZSByZWZyZXNoZWQgZGV0YWlscyBiZWZvcmUgY29uZmlybWluZyBhZ2Fpbi4iLCJkZWNpc2lvbnMuaW50ZW50X25vdF9wZW5kaW5nIjoiVGhpcyBpdGVtIGlzIG5vIGxvbmdlciBwZW5kaW5nLiIsImRlY2lzaW9ucy5pbnRlbnRfdW5hdmFpbGFibGUiOiJUaGUgbWF0ZXJpYWwgY2Fubm90IGJlIHZlcmlmaWVkIHJpZ2h0IG5vdzsgcmVmcmVzaCBhbmQgdHJ5IGFnYWluLiIsImRlY2lzaW9ucy5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI6IlJlY29uY2lsaWF0aW9uIHJlY292ZXJ5IiwiZGVjaXNpb25zLnN0cmF0ZWd5X3Byb21vdGlvbiI6IlN0cmF0ZWd5IHByb21vdGlvbiIsImRlY2lzaW9ucy5vd25lcl9kZWNpc2lvbiI6Ik93bmVyIGRlY2lzaW9uIiwiZGVjaXNpb25zLnBhcGVyX2FjY291bnRfYXBwbGljYXRpb24iOiJQYXBlciBhY2NvdW50IGFwcGxpY2F0aW9uIiwiZGVjaXNpb25zLmNyZWRlbnRpYWxfbWFpbnRlbmFuY2UiOiJDcmVkZW50aWFsIG1haW50ZW5hbmNlIiwiZGVjaXNpb25zLnN0cmF0ZWd5IjoiU3RyYXRlZ3kiLCJkZWNpc2lvbnMudmVyc2lvbiI6IlZlcnNpb24iLCJkZWNpc2lvbnMucGFyYW1ldGVycyI6IlBhcmFtZXRlciIsImRlY2lzaW9ucy5zaGFkb3dfcGFzc2VkIjoiU2hhZG93IGNoZWNrIHBhc3NlZCIsImRlY2lzaW9ucy5zaGFkb3ciOiJTaGFkb3cgbWV0cmljIiwiZGVjaXNpb25zLnByb21wdC5yZWNvbmNpbGlhdGlvbl9yZWNvdmVyeSI6IkFkb3B0IHRoaXMgcmVjb3ZlcnkgcGxhbj8gUmVjb3JkaW5nIGludGVudCBkb2VzIG5vdCBlbmFibGUgdGhlIGFjY291bnQuIiwiZGVjaXNpb25zLnByb21wdC5zdHJhdGVneV9wcm9tb3Rpb24iOiJBZG9wdCB0aGlzIHN0cmF0ZWd5IHByb21vdGlvbj8iLCJkZWNpc2lvbnMucHJvbXB0Lm93bmVyX2RlY2lzaW9uIjoiQWRvcHQgdGhpcyBzdHJhdGVneSBjYW5kaWRhdGU/IiwiZGVjaXNpb25zLnByb21wdC5wYXBlcl9hY2NvdW50X2FwcGxpY2F0aW9uIjoiQXBwbHkgdGhpcyBwcm9wb3NhbCB0byBhIHBhcGVyIGFjY291bnQ/IiwiZGVjaXNpb25zLnByb21wdC5jcmVkZW50aWFsX21haW50ZW5hbmNlIjoiVGhpcyBjcmVkZW50aWFsIG5lZWRzIG1haW50ZW5hbmNlOyBoYW5kbGUgaXQgb24gdGhlIEhlYWx0aCBwYWdlLiIsImRlY2lzaW9ucy5zZWxlY3RfcHJvbXB0IjoiU2VsZWN0IGFuIGl0ZW0gb24gdGhlIGxlZnQgdG8gc2VlIGRldGFpbHMuIiwiZGVjaXNpb25zLnNlbGVjdF9hY2NvdW50IjoiVGFyZ2V0IGFjY291bnQiLCJkZWNpc2lvbnMubm9fYWNjb3VudF9vcHRpb25zIjoiTm8gcGFwZXIgYWNjb3VudCBvcHRpb24gaXMgYXZhaWxhYmxlLCBzbyBubyBhcHBsaWNhdGlvbiBjYW4gYmUgc3VibWl0dGVkLiIsImRlY2lzaW9ucy5hcHBseV9ub3RlIjoiVGhpcyBvbmx5IHN1Ym1pdHMgYSBwYXBlciBhY2NvdW50IGFwcGxpY2F0aW9uIHJlcXVlc3Q7IGl0IGRvZXMgbm90IGVuYWJsZSB0aGUgc3RyYXRlZ3kgb3IgcGxhY2Ugb3JkZXJzLiIsImRlY2lzaW9ucy5hcHBsaWNhdGlvbl9zdWJtaXR0ZWQiOiJBcHBsaWNhdGlvbiByZXF1ZXN0IHN1Ym1pdHRlZDsgdGhlIHJlc3VsdCBuZWVkcyByZWFkLWJhY2sgY29uZmlybWF0aW9uLiBEbyBub3QgcmVzdWJtaXQuIiwiZGVjaXNpb25zLmFwcGxpY2F0aW9uX3VuY2VydGFpbiI6IkFuIGVhcmxpZXIgYXBwbGljYXRpb24gcmVxdWVzdCBzdGlsbCBuZWVkcyBjb25maXJtYXRpb24uIERvIG5vdCByZXN1Ym1pdC4iLCJkZWNpc2lvbnMub3Blbl9oZWFsdGgiOiJPcGVuIEhlYWx0aCIsImRlY2lzaW9ucy5zdWJtaXR0aW5nIjoiU3VibWl0dGluZ+KApiIsImRlY2lzaW9ucy5jb25maXJtX2Fkb3B0X2xhYmVsIjoiQ29uZmlybSBhZG9wdCIsImRlY2lzaW9ucy5jb25maXJtX2RlY2xpbmVfbGFiZWwiOiJDb25maXJtIGRlY2xpbmUiLCJkZWNpc2lvbnMuZnJlc2huZXNzLnJlYWR5IjoiUmVhZHkiLCJkZWNpc2lvbnMuc291cmNlLm93bmVyIjoiT3duZXIgZGVjaXNpb25zIiwiZGVjaXNpb25zLnNvdXJjZS5wcm9tb3Rpb24iOiJTdHJhdGVneSBwcm9tb3Rpb25zIiwiZGVjaXNpb25zLnNvdXJjZS5yZWNvdmVyeSI6IlJlY29uY2lsaWF0aW9uIHJlY292ZXJ5IiwiZGVjaXNpb25zLnNvdXJjZS5jcmVkZW50aWFsIjoiQ3JlZGVudGlhbHMifSxJXz17ImFjY291bnRzLnVuYXNzaWduZWRfbm90ZSI6IuWPpuaciSB7Y291bnR9IOadoeW+heWKnuacque7keWumuWIsOWFt+S9k+i0puaItyIsImFjY291bnRzLnNlbGVjdF9hY2NvdW50Ijoi6YCJ5oup5LiA5Liq6LSm5oi35p+l55yL6K+m5oOFIiwiYWNjb3VudHMuc2VsZWN0X2FjY291bnRfaGludCI6IuS7jui0puaIt+WIl+ihqOS4remAieaLqeimgeafpeeci+eahOi0puaIt+OAgiIsImFjY291bnRzLmJhY2tfdG9fbGlzdCI6Iui/lOWbnui0puaIt+WIl+ihqCIsImFjY291bnRzLmRyYWZ0X3ZhbHVlIjoi6I2J5qGI77yae3ZhbHVlfSIsImFjY291bnRzLnNlY3Rpb24uc3RyYXRlZ3kiOiLnrZbnlaUiLCJhY2NvdW50cy5zZWN0aW9uLmRjYSI6IuWumuaKlSIsImFjY291bnRzLnNlY3Rpb24uY2FzaF9yZXNlcnZlIjoi6LWE6YeR6aKE55WZIiwiYWNjb3VudHMuc2VjdGlvbi5pbmNvbWVfbGF5ZXIiOiLmlLblhaXlsYIiLCJhY2NvdW50cy5zZWN0aW9uLm9wdGlvbnNfbGF5ZXIiOiLmnJ/mnYPlsYIiLCJhY2NvdW50cy5maWVsZC5zdHJhdGVneV9wcm9maWxlIjoi562W55Wl5qGj5qGIIiwiYWNjb3VudHMuZmllbGQuZGNhX21vZGUiOiLlrprmipXmqKHlvI8iLCJhY2NvdW50cy5maWVsZC5kY2FfYmFzZV9pbnZlc3RtZW50X3VzZCI6IuWumuaKleWfuuWHhumHkemine+8iFVTRO+8iSIsImFjY291bnRzLmZpZWxkLnJlc2VydmVkX2Nhc2hfZmxvb3IiOiLpooTnlZnnjrDph5HkuIvpmZDvvIhVU0TvvIkiLCJhY2NvdW50cy5maWVsZC5yZXNlcnZlZF9jYXNoX3JhdGlvIjoi6aKE55WZ546w6YeR5q+U5L6LIiwiYWNjb3VudHMuZmllbGQuaW5jb21lX2xheWVyX2VuYWJsZWQiOiLmlLblhaXlsYIiLCJhY2NvdW50cy5maWVsZC5vcHRpb25fb3ZlcmxheV9lbmFibGVkIjoi5pyf5p2D5bGCIiwiYWNjb3VudHMuYm9vbC5vbiI6IuW8gOWQryIsImFjY291bnRzLmJvb2wub2ZmIjoi5YWz6ZetIiwiYWNjb3VudHMuZGNhX21vZGUuZml4ZWQiOiLlrprpop3lrprmipUiLCJhY2NvdW50cy5kY2FfbW9kZS5zbWFydCI6IuaZuuiDveWumuaKlSIsImFjY291bnRzLmZvcm0uaW5oZXJpdCI6Iui3n+maj+W9k+WJjeWAvCIsImFjY291bnRzLmZvcm0uY2xlYXJfb3ZlcnJpZGUiOiLmuIXpmaTopobnm5YiLCJhY2NvdW50cy5mb3JtLnVuZG8iOiLmkqTplIDkv67mlLkiLCJhY2NvdW50cy5mb3JtLnNlbGVjdF9wcm9maWxlIjoi6K+36YCJ5oup562W55Wl5qGj5qGIIiwiYWNjb3VudHMuZm9ybS5kY2FfcGFpcl9yZXF1aXJlZCI6IuWumuaKleaooeW8j+S4jumHkeminemcgOimgeS4gOi1t+Whq+WGmSIsImFjY291bnRzLmZvcm0uaW52YWxpZF9kZWNpbWFsIjoi6ZyA6KaB5piv5LiN5bCP5LqOIDAg55qE5pWw5a2XIiwiYWNjb3VudHMuZm9ybS5pbnZhbGlkX3JhdGlvIjoi5q+U5L6L6ZyA6KaB5ZyoIDAg5YiwIDEg5LmL6Ze077yM5L6L5aaCIDAuMTUiLCJhY2NvdW50cy5mb3JtLmludmFsaWRfZGNhX2Ftb3VudCI6IuWumuaKlemHkeminemcgOS4uuWkp+S6jiAwIOeahOaVsOWtlyIsImFjY291bnRzLmNoZWNraW5nIjoi5q2j5Zyo6K+75Y+W5pyA5paw5beu5byC4oCmIiwiYWNjb3VudHMuc2F2aW5nIjoi5q2j5Zyo5L+d5a2Y4oCmIiwiYWNjb3VudHMuc2F2ZV91bmtub3duIjoi5L+d5a2Y57uT5p6c5pyq55+l77yb6K+35Yi35paw5bm256Gu6K6k6I2J5qGI54mI5pys77yM56Gu6K6k5LmL5YmN5LiN6KaB6YeN5aSN5o+Q5Lqk44CCIiwiY29udHJvbHMuc3VibWl0dGluZyI6Iuato+WcqOaPkOS6pOKApiIsImNvbnRyb2xzLmNvbmZpcm0uZW5hYmxlX3RpdGxlIjoi56Gu6K6k5ZCv55So6L+Q6KGM55uu5qCHIiwiY29udHJvbHMuY29uZmlybS5yZXN1bWVfdGl0bGUiOiLnoa7orqTmgaLlpI3ov5DooYznm67moIciLCJjb250cm9scy5jb25maXJtLmFwcHJvdmVfdGl0bGUiOiLnoa7orqTmibnlh4bnrZbnlaXlupTnlKgiLCJjb250cm9scy5lbmFibGVfbm90ZSI6IuW9k+WJjemhtemdouaaguS4jeaUr+aMgeaPkOS6pOWQr+eUqOivt+axgu+8m+i/kOihjOebruagh+eKtuaAgeS/neaMgeS4jeWPmOOAgiIsImNvbnRyb2xzLmFwcHJvdmVfbm90X3JlYWR5Ijoi5b2T5YmN5rKh5pyJ5Y+v5om55YeG55qE57qv562W55Wl5qGj5qGI6I2J5qGI77yb6K+35Yi35paw56Gu6K6k44CCIiwiY29udHJvbHMuc3RvcF9jb25zZXF1ZW5jZSI6IuWBnOatouWPqumYu+atouaWsOeahOinpuWPke+8m+S4jeS8muaSpOWNleOAgeW5s+S7k+aIlua4hemZpOWcqOmAlOivt+axguOAgiJ9LGV2PXsiYWNjb3VudHMudW5hc3NpZ25lZF9ub3RlIjoie2NvdW50fSBtb3JlIHRvLWRvKHMpIGFyZSBub3QgYm91bmQgdG8gYSBzcGVjaWZpYyBhY2NvdW50IiwiYWNjb3VudHMuc2VsZWN0X2FjY291bnQiOiJTZWxlY3QgYW4gYWNjb3VudCB0byBzZWUgZGV0YWlscyIsImFjY291bnRzLnNlbGVjdF9hY2NvdW50X2hpbnQiOiJQaWNrIGFuIGFjY291bnQgZnJvbSB0aGUgbGlzdC4iLCJhY2NvdW50cy5iYWNrX3RvX2xpc3QiOiJCYWNrIHRvIGFjY291bnRzIiwiYWNjb3VudHMuZHJhZnRfdmFsdWUiOiJEcmFmdDoge3ZhbHVlfSIsImFjY291bnRzLnNlY3Rpb24uc3RyYXRlZ3kiOiJTdHJhdGVneSIsImFjY291bnRzLnNlY3Rpb24uZGNhIjoiRENBIiwiYWNjb3VudHMuc2VjdGlvbi5jYXNoX3Jlc2VydmUiOiJDYXNoIHJlc2VydmUiLCJhY2NvdW50cy5zZWN0aW9uLmluY29tZV9sYXllciI6IkluY29tZSBsYXllciIsImFjY291bnRzLnNlY3Rpb24ub3B0aW9uc19sYXllciI6Ik9wdGlvbnMgbGF5ZXIiLCJhY2NvdW50cy5maWVsZC5zdHJhdGVneV9wcm9maWxlIjoiU3RyYXRlZ3kgcHJvZmlsZSIsImFjY291bnRzLmZpZWxkLmRjYV9tb2RlIjoiRENBIG1vZGUiLCJhY2NvdW50cy5maWVsZC5kY2FfYmFzZV9pbnZlc3RtZW50X3VzZCI6IkRDQSBiYXNlIGFtb3VudCAoVVNEKSIsImFjY291bnRzLmZpZWxkLnJlc2VydmVkX2Nhc2hfZmxvb3IiOiJSZXNlcnZlZCBjYXNoIGZsb29yIChVU0QpIiwiYWNjb3VudHMuZmllbGQucmVzZXJ2ZWRfY2FzaF9yYXRpbyI6IlJlc2VydmVkIGNhc2ggcmF0aW8iLCJhY2NvdW50cy5maWVsZC5pbmNvbWVfbGF5ZXJfZW5hYmxlZCI6IkluY29tZSBsYXllciIsImFjY291bnRzLmZpZWxkLm9wdGlvbl9vdmVybGF5X2VuYWJsZWQiOiJPcHRpb24gb3ZlcmxheSIsImFjY291bnRzLmJvb2wub24iOiJPbiIsImFjY291bnRzLmJvb2wub2ZmIjoiT2ZmIiwiYWNjb3VudHMuZGNhX21vZGUuZml4ZWQiOiJGaXhlZCBhbW91bnQiLCJhY2NvdW50cy5kY2FfbW9kZS5zbWFydCI6IlNtYXJ0IiwiYWNjb3VudHMuZm9ybS5pbmhlcml0IjoiSW5oZXJpdCBjdXJyZW50IHZhbHVlIiwiYWNjb3VudHMuZm9ybS5jbGVhcl9vdmVycmlkZSI6IkNsZWFyIG92ZXJyaWRlIiwiYWNjb3VudHMuZm9ybS51bmRvIjoiVW5kbyIsImFjY291bnRzLmZvcm0uc2VsZWN0X3Byb2ZpbGUiOiJTZWxlY3QgYSBzdHJhdGVneSBwcm9maWxlIiwiYWNjb3VudHMuZm9ybS5kY2FfcGFpcl9yZXF1aXJlZCI6IkRDQSBtb2RlIGFuZCBhbW91bnQgbXVzdCBiZSBwcm92aWRlZCB0b2dldGhlciIsImFjY291bnRzLmZvcm0uaW52YWxpZF9kZWNpbWFsIjoiTXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCIsImFjY291bnRzLmZvcm0uaW52YWxpZF9yYXRpbyI6IlJhdGlvIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxLCBlLmcuIDAuMTUiLCJhY2NvdW50cy5mb3JtLmludmFsaWRfZGNhX2Ftb3VudCI6IkRDQSBhbW91bnQgbXVzdCBiZSBhIG51bWJlciBncmVhdGVyIHRoYW4gMCIsImFjY291bnRzLmNoZWNraW5nIjoiTG9hZGluZyB0aGUgbGF0ZXN0IGRpZmbigKYiLCJhY2NvdW50cy5zYXZpbmciOiJTYXZpbmfigKYiLCJhY2NvdW50cy5zYXZlX3Vua25vd24iOiJUaGUgc2F2ZSByZXN1bHQgaXMgdW5rbm93bi4gUmVmcmVzaCBhbmQgdmVyaWZ5IHRoZSBkcmFmdCByZXZpc2lvbiBiZWZvcmUgcmV0cnlpbmc7IGRvIG5vdCByZXNlbmQgYmxpbmRseS4iLCJjb250cm9scy5zdWJtaXR0aW5nIjoiU3VibWl0dGluZ+KApiIsImNvbnRyb2xzLmNvbmZpcm0uZW5hYmxlX3RpdGxlIjoiQ29uZmlybSBlbmFibGluZyB0aGUgcnVudGltZSB0YXJnZXQiLCJjb250cm9scy5jb25maXJtLnJlc3VtZV90aXRsZSI6IkNvbmZpcm0gcmVzdW1pbmcgdGhlIHJ1bnRpbWUgdGFyZ2V0IiwiY29udHJvbHMuY29uZmlybS5hcHByb3ZlX3RpdGxlIjoiQ29uZmlybSBhcHByb3ZpbmcgdGhlIHN0cmF0ZWd5IGFwcGxpY2F0aW9uIiwiY29udHJvbHMuZW5hYmxlX25vdGUiOiJUaGlzIHBhZ2UgY2Fubm90IHN1Ym1pdCBhbiBlbmFibGUgcmVxdWVzdCB5ZXQuIFRoZSBydW50aW1lIHRhcmdldCBzdGF0ZSBzdGF5cyB1bmNoYW5nZWQuIiwiY29udHJvbHMuYXBwcm92ZV9ub3RfcmVhZHkiOiJUaGVyZSBpcyBubyBwcm9maWxlLW9ubHkgZHJhZnQgdG8gYXBwcm92ZSByaWdodCBub3cuIFJlZnJlc2ggYW5kIHZlcmlmeS4iLCJjb250cm9scy5zdG9wX2NvbnNlcXVlbmNlIjoiU3RvcHBpbmcgb25seSBibG9ja3MgbmV3IHRyaWdnZXJzOyBpdCBkb2VzIG5vdCBjYW5jZWwgb3JkZXJzLCBjbG9zZSBwb3NpdGlvbnMsIG9yIGNsZWFyIGluLWZsaWdodCByZXF1ZXN0cy4ifSx0dj17InN0cmF0ZWdpZXMuZGV0YWlscyI6Iuivpue7huS/oeaBryIsInN0cmF0ZWdpZXMucmVzZWFyY2hfdW5hdmFpbGFibGUiOiLnoJTnqbbotYTmlpnmmoLkuI3lj6/nlKjjgIIiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX3NvdXJjZXMiOiLmnaXmupDvvJp7dmFsdWV9Iiwic3RyYXRlZ2llcy5yZXNlYXJjaF9hc19vZiI6Iui1hOaWmeaXpeacn++8mnt2YWx1ZX0iLCJzdHJhdGVnaWVzLnJlc2VhcmNoX2V4cGlyZXMiOiLmnInmlYjmnJ/oh7Mge3ZhbHVlfSIsInJlc2VhcmNoLnN0YXRlLmNvbnRleHRfb25seSI6IuS7heS9nOiDjOaZryIsInJlc2VhcmNoLnN0YXRlLmNhbmRpZGF0ZSI6IueglOeptuWAmemAiSIsInJlc2VhcmNoLnN0YXRlLnNvdXJjZV92ZXJpZmljYXRpb25fcmVxdWlyZWQiOiLmnaXmupDlvoXmoLjlrp4iLCJyZXNlYXJjaC5zdGF0ZS5kZWZlcnJlZCI6Iuaague8k+eglOeptiIsInN0YXRlLnVua25vd24iOiLmnKrnn6UiLCJzdHJhdGVnaWVzLnJlc2VhcmNoX2VtcHR5Ijoi5pqC5peg56CU56m257q/57Si44CCIn0sYXY9eyJzdHJhdGVnaWVzLmRldGFpbHMiOiJEZXRhaWxzIiwic3RyYXRlZ2llcy5yZXNlYXJjaF91bmF2YWlsYWJsZSI6IlJlc2VhcmNoIGRhdGEgdW5hdmFpbGFibGUuIiwic3RyYXRlZ2llcy5yZXNlYXJjaF9zb3VyY2VzIjoiU291cmNlczoge3ZhbHVlfSIsInN0cmF0ZWdpZXMucmVzZWFyY2hfYXNfb2YiOiJEYXRhIGFzIG9mOiB7dmFsdWV9Iiwic3RyYXRlZ2llcy5yZXNlYXJjaF9leHBpcmVzIjoiRXhwaXJlcyB7dmFsdWV9IiwicmVzZWFyY2guc3RhdGUuY29udGV4dF9vbmx5IjoiQ29udGV4dCBvbmx5IiwicmVzZWFyY2guc3RhdGUuY2FuZGlkYXRlIjoiUmVzZWFyY2ggY2FuZGlkYXRlIiwicmVzZWFyY2guc3RhdGUuc291cmNlX3ZlcmlmaWNhdGlvbl9yZXF1aXJlZCI6IlNvdXJjZSB2ZXJpZmljYXRpb24gcmVxdWlyZWQiLCJyZXNlYXJjaC5zdGF0ZS5kZWZlcnJlZCI6IlJlc2VhcmNoIGRlZmVycmVkIiwic3RhdGUudW5rbm93biI6IlVua25vd24iLCJzdHJhdGVnaWVzLnJlc2VhcmNoX2VtcHR5IjoiTm8gcmVzZWFyY2ggbGVhZHMgeWV0LiJ9LG52PXsiaGVhbHRoLmZhaWx1cmVfYXRfbGVhc3QiOiLoh7PlsJEge2NvdW50fSIsImhlYWx0aC5mYWlsdXJlX3dpbmRvdyI6IntkYXRlfe+8iOe6vee6puaXtumXtO+8jOWQq+Wkj+S7pOaXtu+8ie+8m+S7hee7n+iuoeS7iuaXpe+8jOS4jeWQq+S4i+aWuSAxNCDml6Xljoblj7IiLCJoZWFsdGguZmFpbHVyZV9pbmNvbXBsZXRlIjoi6KaG55uW5LiN5a6M5pW077yM5peg5rOV56Gu6K6k5aSx6LSl5oC75pWwIiwiaGVhbHRoLmtwaS50b2RheV9ydW5zIjoi5a6M5pW05pWw5o2u6LSm5oi3IiwiaGVhbHRoLmtwaS50b2RheV9ydW5zX25vdGUiOiLmnKrmjqXlhaUge25vdF9jb25uZWN0ZWR9IMK3IOaaguaXoOaVsOaNriB7bm9fZGF0YX3vvJvov5nkuKTnsbvkuI3mmK/lpLHotKUiLCJoZWFsdGgua3BpLm9ic2VydmVkIjoi5LuK5pel5pyJ6K6w5b2V6LSm5oi3IiwiaGVhbHRoLmtwaS5jcmVkZW50aWFscyI6IuWHreivgSIsImhlYWx0aC5rcGkucmVjZW50X2ZhaWx1cmUiOiLku4rml6XlpLHotKXotKbmiLciLCJoZWFsdGguZ3JpZF9yZWFkX2ZhaWxlZF9ub3RlIjoi6YOo5YiG5pel5pyf55qE5Y6G5Y+y6K+75Y+W5aSx6LSl77yM5a+55bqU5Y2V5YWD5qC85pi+56S66K+75Y+W5aSx6LSl77yb6L+Z5LiN5Luj6KGo5b2T5aSp5rKh5pyJ6L+Q6KGM44CCIiwiaGVhbHRoLmdyaWQuaW5jb21wbGV0ZSI6IuacquWujOaIkCIsImhlYWx0aC5jb2wuY3JlZGVudGlhbCI6IuWHreivgSIsImhlYWx0aC5jb2wucGhhc2UiOiLpmLbmrrUiLCJoZWFsdGguY29sLmV4cGlyZXMiOiLliLDmnJ/ml7bpl7QiLCJoZWFsdGguY29sLmNoYW5uZWwiOiLmuKDpgZMiLCJoZWFsdGguY29sLnN1bW1hcnkiOiLlhoXlrrkiLCJoZWFsdGguZGV0YWlsLnN0YXJ0ZWQiOiLlvIDlp4siLCJoZWFsdGguZGV0YWlsLmZpbmlzaGVkIjoi57uT5p2fIiwiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iOiJ7Y291bnR9L3t0b3RhbH0iLCJoZWFsdGguc3RhdGVfY291bnRzIjoi5LuK5pel6LSm5oi354q25oCB77yI5bey6KeC5rWL77yJIiwiaGVhbHRoLnJ1bl9zdGF0ZS5zdWNjZWVkZWQiOiLmiJDlip8iLCJoZWFsdGgucnVuX3N0YXRlLmZhaWxlZCI6IuWksei0pSIsImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCI6Iuiiq+aLpuaIqiIsImhlYWx0aC5ydW5fc3RhdGUubm9fZGF0YSI6IuaaguaXoOaVsOaNriIsImhlYWx0aC5ydW5fc3RhdGUubm90X2Nvbm5lY3RlZCI6IuacquaOpeWFpSIsImhlYWx0aC5ydW5fc3RhdGUubm90X3J1biI6IuWwmuacquWIsOacn+aIlumdnui/kOihjOaXtuautSIsImhlYWx0aC5ydW5fc3RhdGUudW5rbm93biI6IuacquefpSIsImhlYWx0aC5ydW5fc3RhdGUucmVhZF9mYWlsZWQiOiLor7vlj5blpLHotKUiLCJoZWFsdGgubm90aWZpY2F0aW9uc19zY29wZSI6IuS7heimhuebluacgOi/kSA1IOasoeS4u+WIhuaUr+aXpeaKpea1geeoi+eahOWFrOW8gOWPkemAgeWbnuaJp++8jOS4jeWQq+WQhOW5s+WPsOeahOWFqOmDqOWNs+aXtumAmuefpeOAgua1geeoi+aXtumXtOS4jeS7o+ihqOWPkemAgeaXtumXtOOAgiIsImhlYWx0aC5ub3RpZmljYXRpb25zX2VtcHR5Ijoi5pqC5peg6YCa55+l5Zue5omnIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfcGFydGlhbCI6IumDqOWIhuWbnuaJp+ivu+WPluWksei0pe+8jOW9k+WJjeWIl+ihqOS4jeWujOaVtOOAgiIsImhlYWx0aC5ub3RpZmljYXRpb25fYnVzaW5lc3NfZGF5Ijoi5Lia5Yqh5pelIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9kZWxpdmVyZWQiOiLlt7LpgIHovr4iLCJoZWFsdGgubm90aWZpY2F0aW9uX3llcyI6IuaYryIsImhlYWx0aC5ub3RpZmljYXRpb25fbm8iOiLlkKYiLCJoZWFsdGgubm90aWZpY2F0aW9uX3NlbnRfYXQiOiLlj5HpgIHml7bpl7QiLCJoZWFsdGgubm90aWZpY2F0aW9uX3dvcmtmbG93X3RpbWUiOiLmtYHnqIvmm7TmlrDml7bpl7QiLCJoZWFsdGgubm90aWZpY2F0aW9uX3NvdXJjZSI6Iuadpea6kCIsImhlYWx0aC5ub3RpZmljYXRpb25fcnVuIjoi6L+Q6KGMIHtpZH0gwrcg56ysIHthdHRlbXB0fSDmrKEiLCJoZWFsdGgubm90aWZpY2F0aW9uLmRlbGl2ZXJlZCI6IuWPkemAgeaIkOWKnyIsImhlYWx0aC5ub3RpZmljYXRpb24uc2VuZF9mYWlsZWQiOiLlj5HpgIHlpLHotKUiLCJoZWFsdGgubm90aWZpY2F0aW9uLmJsb2NrZWRfbWlzc2luZ19zZWNyZXRzIjoi5Y+R6YCB6YWN572u57y65aSxIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5ibG9ja2VkX3Jlc2VuZF9ndWFyZCI6IuWPkemAgeiiq+aLpuaIqiIsImhlYWx0aC5ub3RpZmljYXRpb24uYnVzaW5lc3NfZGlnZXN0X2ZhaWxlZCI6IuaXpeaKpei1hOaWmeWksei0pSIsImhlYWx0aC5ub3RpZmljYXRpb24uc2tpcHBlZF9kdXBsaWNhdGUiOiLlt7Lot7Pov4fph43lpI3lj5HpgIEiLCJoZWFsdGgubm90aWZpY2F0aW9uLnNraXBwZWRfZW1wdHkiOiLml6DlhoXlrrnvvIzlt7Lot7Pov4ciLCJoZWFsdGgubm90aWZpY2F0aW9uLnJvdXRlX2NoZWNrIjoi5Y+R6YCB6Lev5b6E5qOA5p+lIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5kcnlfcnVuIjoi5ryU57uDIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi50ZXN0X21lc3NhZ2UiOiLmtYvor5Xmtojmga8iLCJoZWFsdGgubm90aWZpY2F0aW9uLnVua25vd24iOiLnu5PmnpzmnKrnn6UiLCJoZWFsdGgubm90aWZpY2F0aW9uLnNlbmRlcl9za2lwcGVkIjoi5Y+R6YCB5q2l6aqk5bey6Lez6L+HIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5yZWNlaXB0X21pc3NpbmciOiLmnKrmib7liLDlm57miaciLCJoZWFsdGgubm90aWZpY2F0aW9uLnJlY2VpcHRfZXhwaXJlZCI6IuWbnuaJp+W3sui/h+acnyIsImhlYWx0aC5ub3RpZmljYXRpb24ucmVhZF9mYWlsZWQiOiLlm57miafor7vlj5blpLHotKUiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5GSVJTVF9TRU5EIjoi6aaW5qyh5Y+R6YCBIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uQUxSRUFEWV9ERUxJVkVSRUQiOiLmraTliY3lt7LpgIHovr4iLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5FWFBMSUNJVF9URVNUX1JFU0VORCI6IuaYjuehruivt+axgueahOa1i+ivlemHjeWPkSIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkhJU1RPUllfVU5BVkFJTEFCTEUiOiLml6Dms5Xor7vlj5blj5HpgIHljoblj7IiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5ERUxJVkVSWV9VTkNFUlRBSU4iOiLmraTliY3pgIHovr7nu5PmnpzkuI3noa7lrpoiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5DT05GSUdVUkFUSU9OX0lOVkFMSUQiOiLlj5HpgIHphY3nva7ml6DmlYgiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5VTlNVUFBPUlRFRF9FVkVOVCI6IuS4jeaUr+aMgeeahOS6i+S7tiIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkxPQ0FMX0VYRUNVVElPTiI6IuacrOWcsOaJp+ihjCIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkRSWV9SVU4iOiLmvJTnu4PvvIzkuI3lj5HpgIEifSxsdj17ImhlYWx0aC5mYWlsdXJlX2F0X2xlYXN0IjoiQXQgbGVhc3Qge2NvdW50fSIsImhlYWx0aC5mYWlsdXJlX3dpbmRvdyI6IntkYXRlfSAoTmV3IFlvcmsgdGltZSwgRFNUIG9ic2VydmVkKTsgdG9kYXkgb25seSwgZXhjbHVkZXMgdGhlIDE0LWRheSBoaXN0b3J5IGJlbG93IiwiaGVhbHRoLmZhaWx1cmVfaW5jb21wbGV0ZSI6IkluY29tcGxldGUgY292ZXJhZ2U7IHRvdGFsIGZhaWx1cmVzIHVua25vd24iLCJoZWFsdGgua3BpLnRvZGF5X3J1bnMiOiJBY2NvdW50cyB3aXRoIGNvbXBsZXRlIGRhdGEiLCJoZWFsdGgua3BpLnRvZGF5X3J1bnNfbm90ZSI6Ik5vdCBjb25uZWN0ZWQ6IHtub3RfY29ubmVjdGVkfSDCtyBubyBkYXRhOiB7bm9fZGF0YX07IG5laXRoZXIgaXMgYSBmYWlsdXJlIiwiaGVhbHRoLmtwaS5vYnNlcnZlZCI6IkFjY291bnRzIHdpdGggdG9kYXkncyByZWNvcmRzIiwiaGVhbHRoLmtwaS5jcmVkZW50aWFscyI6IkNyZWRlbnRpYWxzIiwiaGVhbHRoLmtwaS5yZWNlbnRfZmFpbHVyZSI6IlRvZGF5J3MgZmFpbGVkIGFjY291bnRzIiwiaGVhbHRoLmdyaWRfcmVhZF9mYWlsZWRfbm90ZSI6Ikhpc3RvcnkgZm9yIHNvbWUgZGF0ZXMgZmFpbGVkIHRvIGxvYWQ7IHRob3NlIGNlbGxzIHNob3cgYSByZWFkIGZhaWx1cmUuIFRoaXMgZG9lcyBub3QgbWVhbiBub3RoaW5nIHJhbi4iLCJoZWFsdGguZ3JpZC5pbmNvbXBsZXRlIjoiSW5jb21wbGV0ZSIsImhlYWx0aC5jb2wuY3JlZGVudGlhbCI6IkNyZWRlbnRpYWwiLCJoZWFsdGguY29sLnBoYXNlIjoiUGhhc2UiLCJoZWFsdGguY29sLmV4cGlyZXMiOiJFeHBpcmVzIiwiaGVhbHRoLmNvbC5jaGFubmVsIjoiQ2hhbm5lbCIsImhlYWx0aC5jb2wuc3VtbWFyeSI6IlN1bW1hcnkiLCJoZWFsdGguZGV0YWlsLnN0YXJ0ZWQiOiJTdGFydGVkIiwiaGVhbHRoLmRldGFpbC5maW5pc2hlZCI6IkZpbmlzaGVkIiwiaGVhbHRoLmFjY291bnRfZnJhY3Rpb24iOiJ7Y291bnR9L3t0b3RhbH0iLCJoZWFsdGguc3RhdGVfY291bnRzIjoiVG9kYXkncyBhY2NvdW50IHN0YXRlcyAob2JzZXJ2ZWQpIiwiaGVhbHRoLnJ1bl9zdGF0ZS5zdWNjZWVkZWQiOiJTdWNjZWVkZWQiLCJoZWFsdGgucnVuX3N0YXRlLmZhaWxlZCI6IkZhaWxlZCIsImhlYWx0aC5ydW5fc3RhdGUuYmxvY2tlZCI6IkJsb2NrZWQiLCJoZWFsdGgucnVuX3N0YXRlLm5vX2RhdGEiOiJObyBkYXRhIiwiaGVhbHRoLnJ1bl9zdGF0ZS5ub3RfY29ubmVjdGVkIjoiTm90IGNvbm5lY3RlZCIsImhlYWx0aC5ydW5fc3RhdGUubm90X3J1biI6Ik5vdCBkdWUgb3Igb3V0c2lkZSBydW4gd2luZG93IiwiaGVhbHRoLnJ1bl9zdGF0ZS51bmtub3duIjoiVW5rbm93biIsImhlYWx0aC5ydW5fc3RhdGUucmVhZF9mYWlsZWQiOiJSZWFkIGZhaWxlZCIsImhlYWx0aC5ub3RpZmljYXRpb25zX3Njb3BlIjoiUHVibGljIHNlbmQgcmVjZWlwdHMgZnJvbSB0aGUgbGF0ZXN0IDUgbWFpbi1icmFuY2ggZGFpbHkgZGlnZXN0IHdvcmtmbG93cyBvbmx5OyBleGNsdWRlcyBvdGhlciBwbGF0Zm9ybSBub3RpZmljYXRpb25zLiBXb3JrZmxvdyB0aW1lIGlzIG5vdCBzZW5kIHRpbWUuIiwiaGVhbHRoLm5vdGlmaWNhdGlvbnNfZW1wdHkiOiJObyBub3RpZmljYXRpb24gcmVjZWlwdHMiLCJoZWFsdGgubm90aWZpY2F0aW9uc19wYXJ0aWFsIjoiU29tZSByZWNlaXB0cyBjb3VsZCBub3QgYmUgcmVhZDsgdGhpcyBsaXN0IGlzIGluY29tcGxldGUuIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9idXNpbmVzc19kYXkiOiJCdXNpbmVzcyBkYXkiLCJoZWFsdGgubm90aWZpY2F0aW9uX2RlbGl2ZXJlZCI6IkRlbGl2ZXJlZCIsImhlYWx0aC5ub3RpZmljYXRpb25feWVzIjoiWWVzIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9ubyI6Ik5vIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9zZW50X2F0IjoiU2VudCBhdCIsImhlYWx0aC5ub3RpZmljYXRpb25fd29ya2Zsb3dfdGltZSI6IldvcmtmbG93IHVwZGF0ZWQgYXQiLCJoZWFsdGgubm90aWZpY2F0aW9uX3NvdXJjZSI6IlNvdXJjZSIsImhlYWx0aC5ub3RpZmljYXRpb25fcnVuIjoiUnVuIHtpZH0gwrcgYXR0ZW1wdCB7YXR0ZW1wdH0iLCJoZWFsdGgubm90aWZpY2F0aW9uLmRlbGl2ZXJlZCI6IlNlbnQgc3VjY2Vzc2Z1bGx5IiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5zZW5kX2ZhaWxlZCI6IlNlbmQgZmFpbGVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5ibG9ja2VkX21pc3Npbmdfc2VjcmV0cyI6IlNlbmQgY29uZmlndXJhdGlvbiBtaXNzaW5nIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5ibG9ja2VkX3Jlc2VuZF9ndWFyZCI6IlNlbmQgYmxvY2tlZCIsImhlYWx0aC5ub3RpZmljYXRpb24uYnVzaW5lc3NfZGlnZXN0X2ZhaWxlZCI6IkRpZ2VzdCBzb3VyY2UgZmFpbHVyZSIsImhlYWx0aC5ub3RpZmljYXRpb24uc2tpcHBlZF9kdXBsaWNhdGUiOiJEdXBsaWNhdGUgc2VuZCBza2lwcGVkIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5za2lwcGVkX2VtcHR5IjoiRW1wdHkgZGlnZXN0IHNraXBwZWQiLCJoZWFsdGgubm90aWZpY2F0aW9uLnJvdXRlX2NoZWNrIjoiUm91dGUgY2hlY2siLCJoZWFsdGgubm90aWZpY2F0aW9uLmRyeV9ydW4iOiJEcnkgcnVuIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi50ZXN0X21lc3NhZ2UiOiJUZXN0IG1lc3NhZ2UiLCJoZWFsdGgubm90aWZpY2F0aW9uLnVua25vd24iOiJVbmtub3duIHJlc3VsdCIsImhlYWx0aC5ub3RpZmljYXRpb24uc2VuZGVyX3NraXBwZWQiOiJTZW5kIHN0ZXAgc2tpcHBlZCIsImhlYWx0aC5ub3RpZmljYXRpb24ucmVjZWlwdF9taXNzaW5nIjoiUmVjZWlwdCBtaXNzaW5nIiwiaGVhbHRoLm5vdGlmaWNhdGlvbi5yZWNlaXB0X2V4cGlyZWQiOiJSZWNlaXB0IGV4cGlyZWQiLCJoZWFsdGgubm90aWZpY2F0aW9uLnJlYWRfZmFpbGVkIjoiUmVjZWlwdCByZWFkIGZhaWxlZCIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkZJUlNUX1NFTkQiOiJGaXJzdCBzZW5kIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uQUxSRUFEWV9ERUxJVkVSRUQiOiJQcmV2aW91c2x5IGRlbGl2ZXJlZCIsImhlYWx0aC5ub3RpZmljYXRpb25fcmVhc29uLkVYUExJQ0lUX1RFU1RfUkVTRU5EIjoiRXhwbGljaXQgdGVzdCByZXNlbmQiLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5ISVNUT1JZX1VOQVZBSUxBQkxFIjoiU2VuZCBoaXN0b3J5IHVuYXZhaWxhYmxlIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uREVMSVZFUllfVU5DRVJUQUlOIjoiUHJldmlvdXMgZGVsaXZlcnkgdW5jZXJ0YWluIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uQ09ORklHVVJBVElPTl9JTlZBTElEIjoiSW52YWxpZCBzZW5kIGNvbmZpZ3VyYXRpb24iLCJoZWFsdGgubm90aWZpY2F0aW9uX3JlYXNvbi5VTlNVUFBPUlRFRF9FVkVOVCI6IlVuc3VwcG9ydGVkIGV2ZW50IiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uTE9DQUxfRVhFQ1VUSU9OIjoiTG9jYWwgZXhlY3V0aW9uIiwiaGVhbHRoLm5vdGlmaWNhdGlvbl9yZWFzb24uRFJZX1JVTiI6IkRyeSBydW47IG5vIHNlbmQifSxLaT17Li4uWl8sLi4uS18sLi4uJF8sLi4uRl8sLi4uSV8sLi4udHYsLi4ubnZ9LEppPXsuLi5WXywuLi5KXywuLi5XXywuLi5QXywuLi5ldiwuLi5hdiwuLi5sdn07Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXMoS2kpKWlmKCEobyBpbiBKaSkpdGhyb3cgbmV3IEVycm9yKGBpMThuOiBtaXNzaW5nIGVuIHRyYW5zbGF0aW9uIGZvciAke299YCk7Zm9yKGNvbnN0IG8gb2YgT2JqZWN0LmtleXMoSmkpKWlmKCEobyBpbiBLaSkpdGhyb3cgbmV3IEVycm9yKGBpMThuOiBtaXNzaW5nIHpoIHRyYW5zbGF0aW9uIGZvciAke299YCk7ZnVuY3Rpb24gWmQobyxmLG09e30pe2NvbnN0IHM9bz09PSJ6aCI/S2k6SmksVD1mLnN0YXJ0c1dpdGgoInN0YXRlLiIpPyJzdGF0ZS51bmtub3duX3N0YXR1cyI6Zi5zdGFydHNXaXRoKCJyZWFzb24uIik/InJlYXNvbi51bmtub3duIjpmLnN0YXJ0c1dpdGgoInJlc2VhcmNoLnN0YXRlLiIpPyJzdGF0ZS51bmtub3duX3N0YXR1cyI6bnVsbDtyZXR1cm4oc1tmXT8/KG89PT0iemgiP0ppW2ZdOktpW2ZdKT8/KFQ/c1tUXTpmKSkucmVwbGFjZSgvXHsoXHcrKVx9L2csKHcsRSk9PkUgaW4gbT9TdHJpbmcobVtFXSk6dyl9Y29uc3QgVmQ9WS5jcmVhdGVDb250ZXh0KCJ6aCIpO2Z1bmN0aW9uIFppKHtsYW5ndWFnZTpvLGNoaWxkcmVuOmZ9KXtyZXR1cm4geS5qc3goVmQuUHJvdmlkZXIse3ZhbHVlOm8sY2hpbGRyZW46Zn0pfWZ1bmN0aW9uIEhhKCl7cmV0dXJuIFkudXNlQ29udGV4dChWZCl9ZnVuY3Rpb24gVHQoKXtjb25zdCBvPUhhKCk7cmV0dXJuKGYsbSk9PlpkKG8sZixtKX1jb25zdCBEbD17dGhlbWU6InN5c3RlbSIsbGFuZ3VhZ2U6ImVuIix1cERvd246ImdyZWVuLXVwIixoaWRlQW1vdW50czohMSxkZWZhdWx0UmFuZ2U6IllURCJ9LHd0PXt0aGVtZToicXNsLXRoZW1lLXByZWZlcmVuY2UiLGxhbmd1YWdlOiJxc2wtc3dpdGNoLWxhbmciLHVwRG93bjoicXNsLXVwZG93bi1wcmVmZXJlbmNlIixoaWRlQW1vdW50czoicXNsLWhpZGUtYW1vdW50cyIsZGVmYXVsdFJhbmdlOiJxc2wtZGVmYXVsdC1yYW5nZSJ9O2Z1bmN0aW9uIHhsKG8pe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKG8pfWNhdGNoe3JldHVybiBudWxsfX1mdW5jdGlvbiB6bChvLGYpe3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0obyxmKX1jYXRjaHt9fWZ1bmN0aW9uIGl2KG8pe3JldHVybiBvPT09ImxpZ2h0Inx8bz09PSJkYXJrInx8bz09PSJzeXN0ZW0iP286RGwudGhlbWV9ZnVuY3Rpb24gdXYobyl7aWYobz09PSJ6aCJ8fG89PT0iemgtQ04iKXJldHVybiJ6aCI7aWYobz09PSJlbiIpcmV0dXJuImVuIjtjb25zdCBmPXR5cGVvZiBuYXZpZ2F0b3I+InUiP1tdOm5hdmlnYXRvci5sYW5ndWFnZXM/Lmxlbmd0aD9uYXZpZ2F0b3IubGFuZ3VhZ2VzOltuYXZpZ2F0b3IubGFuZ3VhZ2VdO2Zvcihjb25zdCBtIG9mIGYpe2lmKC9eemgoPzotfCQpL2kudGVzdChtKSlyZXR1cm4iemgiO2lmKC9eZW4oPzotfCQpL2kudGVzdChtKSlyZXR1cm4iZW4ifXJldHVybiBEbC5sYW5ndWFnZX1mdW5jdGlvbiBjdihvKXtyZXR1cm4gbz09PSJyZWQtdXAifHxvPT09ImdyZWVuLXVwIj9vOkRsLnVwRG93bn1mdW5jdGlvbiBvdihvKXtyZXR1cm4gbz09PSIxTSJ8fG89PT0iM00ifHxvPT09IllURCJ8fG89PT0iMVkifHxvPT09IkFMTCI/bzpEbC5kZWZhdWx0UmFuZ2V9ZnVuY3Rpb24gS2QoKXtyZXR1cm57dGhlbWU6aXYoeGwod3QudGhlbWUpKSxsYW5ndWFnZTp1dih4bCh3dC5sYW5ndWFnZSkpLHVwRG93bjpjdih4bCh3dC51cERvd24pKSxoaWRlQW1vdW50czp4bCh3dC5oaWRlQW1vdW50cyk9PT0iMSIsZGVmYXVsdFJhbmdlOm92KHhsKHd0LmRlZmF1bHRSYW5nZSkpfX1mdW5jdGlvbiBzdihvKXt6bCh3dC50aGVtZSxvLnRoZW1lKSx6bCh3dC5sYW5ndWFnZSxvLmxhbmd1YWdlKSx6bCh3dC51cERvd24sby51cERvd24pLHpsKHd0LmhpZGVBbW91bnRzLG8uaGlkZUFtb3VudHM/IjEiOiIwIiksemwod3QuZGVmYXVsdFJhbmdlLG8uZGVmYXVsdFJhbmdlKX1mdW5jdGlvbiBKZChvLGYpe3JldHVybiBvPT09InN5c3RlbSI/Zj8iZGFyayI6ImxpZ2h0IjpvfWNvbnN0ICRkPVkuY3JlYXRlQ29udGV4dChudWxsKSxXZD1ZLmNyZWF0ZUNvbnRleHQoe3ByZWZzOkRsLHJlc29sdmVkVGhlbWU6ImxpZ2h0IixzZXRQcmVmczooKT0+e319KTtmdW5jdGlvbiBSbygpe3JldHVybiBZLnVzZUNvbnRleHQoV2QpfWNvbnN0IEZkPVkuY3JlYXRlQ29udGV4dCh7c2NvcGU6ImFsbCIsb3B0aW9uczpbXSxzZXRTY29wZTooKT0+e319KTtmdW5jdGlvbiBQZCgpe3JldHVybiBZLnVzZUNvbnRleHQoRmQpfWNvbnN0IElkPVkuY3JlYXRlQ29udGV4dCgoKT0+e30pO2Z1bmN0aW9uIHJ2KCl7cmV0dXJuIFkudXNlQ29udGV4dChJZCl9Y29uc3QgZnY9WyJvdmVydmlldyIsInBlcmZvcm1hbmNlIiwiZGVjaXNpb25zIiwiYWNjb3VudHMiLCJzdHJhdGVnaWVzIiwiaGVhbHRoIl0sZWg9ImFsbCI7ZnVuY3Rpb24gamQobyl7Y29uc3QgZj1uZXcgVVJMU2VhcmNoUGFyYW1zKG8pO2xldCBtPWYuZ2V0KCJwYWdlIik7Y29uc3Qgcz1mLmdldCgid29ya3NwYWNlIik7cmV0dXJuIW0mJnM9PT0icmVzZWFyY2giJiYobT0iZGVjaXNpb25zIiksIW0mJnM9PT0iYWNjb3VudHMiJiYobT0iYWNjb3VudHMiKSwoIW18fCFmdi5pbmNsdWRlcyhtKSkmJihtPSJvdmVydmlldyIpLHtwYWdlOm0sc2NvcGU6Zi5nZXQoInNjb3BlIil8fGVoLGFjY291bnQ6Zi5nZXQoImFjY291bnQiKSx0YWI6Zi5nZXQoInRhYiIpfX1mdW5jdGlvbiBkdihvKXtjb25zdCBmPW5ldyBVUkxTZWFyY2hQYXJhbXM7by5wYWdlIT09Im92ZXJ2aWV3IiYmZi5zZXQoInBhZ2UiLG8ucGFnZSksby5zY29wZSE9PWVoJiZmLnNldCgic2NvcGUiLG8uc2NvcGUpLG8uYWNjb3VudCYmZi5zZXQoImFjY291bnQiLG8uYWNjb3VudCksby50YWImJmYuc2V0KCJ0YWIiLG8udGFiKTtjb25zdCBtPWYudG9TdHJpbmcoKTtyZXR1cm4gbT9gPyR7bX1gOiIifWZ1bmN0aW9uIEhkKG8pe2NvbnN0IGY9ZHYobyk7d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHtxc2w6b30sIiIsYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSR7Zn1gKX1sZXQgdGg9bnVsbDtmdW5jdGlvbiBKdihvKXt0aD1vfWZ1bmN0aW9uIEFvKCl7cmV0dXJuIHRofWNsYXNzIERvIGV4dGVuZHMgRXJyb3J7c3RhdHVzO2NvbnN0cnVjdG9yKGYpe3N1cGVyKGY9PT00MDE/InNlc3Npb25fZXhwaXJlZCI6ImFjY2Vzc19kZW5pZWQiKSx0aGlzLnN0YXR1cz1mfX1jbGFzcyBhaCBleHRlbmRzIEVycm9ye3N0YXR1cztwYXlsb2FkO2NvbnN0cnVjdG9yKGYsbSl7Y29uc3Qgcz1tPy5lcnJvcjtzdXBlcihzfHxgaHR0cF8ke2Z9YCksdGhpcy5zdGF0dXM9Zix0aGlzLnBheWxvYWQ9bX19bGV0IEZpPTAsTm89MDtmdW5jdGlvbiBodigpe3JldHVybiBOb31mdW5jdGlvbiBNbygpe0ZpKz0xLE5vKz0xLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgicXNsLXByaXZhdGUtc2Vzc2lvbi1pbnZhbGlkIikpfWZ1bmN0aW9uICRpKG8pe2lmKG8hPT1GaSl0aHJvdyBuZXcgRXJyb3IoInNlc3Npb25faW52YWxpZGF0ZWQiKX1hc3luYyBmdW5jdGlvbiBEZShvKXtjb25zdCBmPUZpLG09YXdhaXQgZmV0Y2gobyx7bWV0aG9kOiJHRVQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsY2FjaGU6Im5vLXN0b3JlIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pO2lmKG0uc3RhdHVzPT09NDAxfHxtLnN0YXR1cz09PTQwMyl0aHJvdyBNbygpLG5ldyBEbyhtLnN0YXR1cyk7aWYoJGkoZiksIW0ub2spe2NvbnN0IFQ9YXdhaXQgbS5qc29uKCkuY2F0Y2goKCk9Pih7fSkpO3Rocm93IG5ldyBhaChtLnN0YXR1cyxUKX1jb25zdCBzPWF3YWl0IG0uanNvbigpO3JldHVybiAkaShmKSxzfWFzeW5jIGZ1bmN0aW9uIG5oKG8sZil7Y29uc3QgbT1GaSxzPWF3YWl0IGZldGNoKG8se21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixjYWNoZToibm8tc3RvcmUiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KGYpfSk7aWYocy5zdGF0dXM9PT00MDF8fHMuc3RhdHVzPT09NDAzKXRocm93IE1vKCksbmV3IERvKHMuc3RhdHVzKTskaShtKTtjb25zdCBUPWF3YWl0IHMuanNvbigpLmNhdGNoKCgpPT4oe30pKTtpZigkaShtKSwhcy5va3x8VD8ub2s9PT0hMSl0aHJvdyBuZXcgYWgocy5zdGF0dXMsVCk7cmV0dXJuIE5vKz0xLFR9ZnVuY3Rpb24geG8obyl7cmV0dXJuYCR7by5wbGF0Zm9ybX06JHtvLmFjY291bnRfYWxpYXN9YH1mdW5jdGlvbiBtdihvLGYpe2lmKCFmKXJldHVybjtjb25zdCBtPW8uZmluZChUPT54byhUKT09PWYpO2lmKG0pcmV0dXJuIG07Y29uc3Qgcz1vLmZpbHRlcihUPT5ULmFjY291bnRfYWxpYXM9PT1mKTtyZXR1cm4gcy5sZW5ndGg9PT0xP3NbMF06dm9pZCAwfWZ1bmN0aW9uIGxoKG8sZixtKXtyZXR1cm4gbz8uYWNjb3VudE9wdGlvbnM/LltmXT8uZmluZChzPT5zLmtleT09PW0pfWZ1bmN0aW9uIEJkKG8sZil7cmV0dXJuIGxoKG8sZi5wbGF0Zm9ybSxmLmFjY291bnRfYWxpYXMpPy5hY2NvdW50X3NlbGVjdG9yPy50cmltKCl8fGYuYWNjb3VudF9hbGlhc31mdW5jdGlvbiAkdihvLGYpe2NvbnN0IG09bmV3IE1hcDtmb3IoY29uc3QgcyBvZiBvKXtsZXQgVD1tLmdldChzLnBsYXRmb3JtKTtUfHxtLnNldChzLnBsYXRmb3JtLFQ9bmV3IE1hcCk7Y29uc3Qgdz1CZChmLHMpLnRvVXBwZXJDYXNlKCksRT1ULmdldCh3KTtFP0UucHVzaChzKTpULnNldCh3LFtzXSl9cmV0dXJuWy4uLm1dLm1hcCgoW3MsVF0pPT4oe3BsYXRmb3JtOnMsYWNjb3VudHM6Wy4uLlQudmFsdWVzKCldLm1hcChNPT4oe2lkZW50aXR5OkJkKGYsTVswXSkscm93czpNfSkpfSkpfWZ1bmN0aW9uIGloKG8sZil7Y29uc3QgbT1vLmluZGV4T2YoIjoiKTtyZXR1cm4gbT4wP3tzY29wZTpvLnNsaWNlKG0rMSkscGxhdGZvcm06by5zbGljZSgwLG0pfTp7c2NvcGU6byxwbGF0Zm9ybTpmfX1jb25zdCBZZD17fTtmdW5jdGlvbiBfdigpe3JldHVybiBEZSgiL2FwaS9zZXNzaW9uIil9bGV0IFZpPW51bGwsQW49bnVsbDtmdW5jdGlvbiB2dihvKXtjb25zdCBmPU51bWJlcihvP1lkPy5WSVRFX0lOQk9YX0ZBSUxVUkVfQkFDS09GRl9NUzpZZD8uVklURV9JTkJPWF9DQUNIRV9NUyk7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShmKSYmZj49MWUzJiZmPD0zZTU/ZjpvPzZlNDoxNWUzfWZ1bmN0aW9uIHl2KG89ITEpe2NvbnN0IGY9aHYoKTtyZXR1cm4gQW4mJkFuLnJldmlzaW9uPT09ZiYmRGF0ZS5ub3coKTxBbi51bnRpbCYmKCFvfHxBbi52YWx1ZS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiKT9Qcm9taXNlLnJlc29sdmUoQW4udmFsdWUpOihWaXx8KFZpPURlKCIvYXBpL2RlY2lzaW9ucy1pbmJveCIpLnRoZW4obT0+KEFuPXt2YWx1ZTptLHVudGlsOkRhdGUubm93KCkrdnYobS5zdGF0dXM9PT0icmVhZF9mYWlsZWQiKSxyZXZpc2lvbjpmfSxtKSkuZmluYWxseSgoKT0+e1ZpPW51bGx9KSksVmkpfWZ1bmN0aW9uIFd2KG89MjUsZil7Y29uc3QgbT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtsaW1pdDpTdHJpbmcobyl9KTtyZXR1cm4gZiYmbS5zZXQoImN1cnNvciIsZiksRGUoYC9hcGkvb3duZXItZGVjaXNpb25zL2hpc3Rvcnk/JHttfWApfWZ1bmN0aW9uIHB2KCl7cmV0dXJuIERlKCIvYXBpL2FjY291bnRzIil9ZnVuY3Rpb24gRnYobyxmKXtjb25zdCBtPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2FjY291bnQ6b30pO3JldHVybiBmJiZtLnNldCgicGxhdGZvcm0iLGYpLERlKGAvYXBpL2FjY291bnQtc2V0dGluZ3MvZGlmZj8ke219YCl9ZnVuY3Rpb24gUHYobyxmLG09MjUscyl7Y29uc3QgVD1uZXcgVVJMU2VhcmNoUGFyYW1zKHthY2NvdW50Om8sbGltaXQ6U3RyaW5nKG0pfSk7cmV0dXJuIGYmJlQuc2V0KCJwbGF0Zm9ybSIsZikscyYmVC5zZXQoImN1cnNvciIscyksRGUoYC9hcGkvYWNjb3VudC1zZXR0aW5ncy9oaXN0b3J5PyR7VH1gKX1mdW5jdGlvbiBJdihvKXtyZXR1cm4gbmgoIi9hcGkvYWNjb3VudC1zZXR0aW5ncy9kcmFmdCIsbyl9ZnVuY3Rpb24gZXkobyxmKXtjb25zdCBtPW5ldyBVUkxTZWFyY2hQYXJhbXMoe3BsYXRmb3JtOm8sa2V5OmZ9KTtyZXR1cm4gRGUoYC9hcGkvYWNjb3VudC1zZXR0aW5ncz8ke219YCl9ZnVuY3Rpb24gdHkoKXtyZXR1cm4gRGUoIi9hcGkvcnVudGltZS90b2RheSIpfWZ1bmN0aW9uIGF5KCl7cmV0dXJuIERlKCIvYXBpL3N0cmF0ZWdpZXMvc3VtbWFyeSIpfWZ1bmN0aW9uIG55KG89MjUsZil7Y29uc3QgbT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtsaW1pdDpTdHJpbmcobyl9KTtyZXR1cm4gRGUoYC9hcGkvbm90aWZpY2F0aW9ucy9zZW5kLWxvZz8ke219YCl9ZnVuY3Rpb24gbHkobyxmKXtjb25zdCBtPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2FjY291bnQ6b30pO3JldHVybiBmJiZtLnNldCgicGxhdGZvcm0iLGYpLERlKGAvYXBpL2FjY291bnRzL3J1bi1jb250cm9scz8ke219YCl9ZnVuY3Rpb24gTmwobyxmLG0pe2NvbnN0IHM9aWgobyxtKSxUPW5ldyBVUkxTZWFyY2hQYXJhbXMoe3Njb3BlOnMuc2NvcGUscmFuZ2U6Zn0pO3JldHVybiBzLnBsYXRmb3JtJiZULnNldCgicGxhdGZvcm0iLHMucGxhdGZvcm0pLFN0cmluZyhUKX1mdW5jdGlvbiBpeShvLGYsbSl7cmV0dXJuIERlKGAvYXBpL3BlcmZvcm1hbmNlL3N1bW1hcnk/JHtObChvLGYsbSl9YCl9ZnVuY3Rpb24gdXkobyxmLG0pe3JldHVybiBEZShgL2FwaS9wZXJmb3JtYW5jZS9yZXR1cm5zPyR7TmwobyxmLG0pfWApfWZ1bmN0aW9uIGN5KG8sZixtKXtyZXR1cm4gRGUoYC9hcGkvcGVyZm9ybWFuY2UvYXNzZXRzPyR7TmwobyxmLG0pfWApfWZ1bmN0aW9uIG95KG8sZixtKXtyZXR1cm4gRGUoYC9hcGkvcGVyZm9ybWFuY2UvaG9sZGluZ3M/JHtObChvLGYsbSl9YCl9ZnVuY3Rpb24gc3kobyxmLG0pe3JldHVybiBEZShgL2FwaS9wZXJmb3JtYW5jZS90cmFkZXM/JHtObChvLGYsbSl9YCl9ZnVuY3Rpb24gcnkobyxmLG0scyxUKXtjb25zdCBNPWloKG8sVCksdz1uZXcgVVJMU2VhcmNoUGFyYW1zKHtzY29wZTpNLnNjb3BlLHJhbmdlOmYseWVhcjpTdHJpbmcobSl9KTtyZXR1cm4gcyE9bnVsbCYmdy5zZXQoIm1vbnRoIixTdHJpbmcocykpLE0ucGxhdGZvcm0mJncuc2V0KCJwbGF0Zm9ybSIsTS5wbGF0Zm9ybSksRGUoYC9hcGkvcGVyZm9ybWFuY2UvY2FsZW5kYXI/JHt3fWApfWFzeW5jIGZ1bmN0aW9uIGZ5KCl7cmV0dXJuKGF3YWl0IERlKCIvYXBpL2NvbmZpZyIpKS5ydW50aW1lRGFpbHlCaW5kaW5ncz8/W119ZnVuY3Rpb24gZHkobyxmLG0scz0hMCl7Y29uc3QgVD1uZXcgVVJMU2VhcmNoUGFyYW1zKHtkYXRlOm99KTtyZXR1cm4gZiYmVC5zZXQoInBsYXRmb3JtIixmKSxtJiZULnNldCgiYWNjb3VudF9rZXkiLG0pLHN8fFQuc2V0KCJpbmNsdWRlX2hpc3RvcnkiLCJmYWxzZSIpLERlKGAvYXBpL3J1bnRpbWUtZGFpbHk/JHtUfWApfWZ1bmN0aW9uIGh5KCl7cmV0dXJuIERlKCIvYXBpL2NyZWRlbnRpYWwtbWFpbnRlbmFuY2UiKX1hc3luYyBmdW5jdGlvbiBndihvLGY9ZmV0Y2gpe2lmKCEvXlthLWYwLTldezY0fSQvLnRlc3QobykpcmV0dXJuITE7Y29uc3QgbT1hd2FpdCBmKCIvIix7bWV0aG9kOiJIRUFEIixjYWNoZToibm8tc3RvcmUiLGNyZWRlbnRpYWxzOiJvbWl0In0pLHM9bS5oZWFkZXJzLmdldCgiWC1Db25zb2xlLUJ1aWxkIik7cmV0dXJuIG0ub2smJi9eW2EtZjAtOV17NjR9JC8udGVzdChzfHwiIikmJnMhPT1vfWZ1bmN0aW9uIGJ2KCl7Y29uc3Qgbz1UdCgpLFtmLG1dPVkudXNlU3RhdGUoITEpO2lmKFkudXNlRWZmZWN0KCgpPT57Y29uc3QgVD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9InFzbC1jb25zb2xlLWJ1aWxkIl0nKT8uY29udGVudHx8IiI7bGV0IE09ITEsdz0hMSxFPTA7Y29uc3QgRD1hc3luYygpPT57aWYoIShkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUhPT0idmlzaWJsZSJ8fHd8fERhdGUubm93KCktRTw2ZTQpKXt3PSEwLEU9RGF0ZS5ub3coKTt0cnl7YXdhaXQgZ3YoVCkmJiFNJiZtKCEwKX1jYXRjaHt9ZmluYWxseXt3PSExfX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLEQpLCgpPT57TT0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLEQpfX0sW10pLCFmKXJldHVybiBudWxsO2NvbnN0IHM9YXN5bmMoKT0+e2NvbnN0IFQ9QW8oKTsoIVR8fGF3YWl0IFQoKSkmJndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX07cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJ1cGRhdGUtbm90aWNlIixyb2xlOiJzdGF0dXMiLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NoaWxkcmVuOm8oInNoZWxsLnVwZGF0ZV9hdmFpbGFibGUiKX0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnkiLG9uQ2xpY2s6KCk9PntzKCl9LGNoaWxkcmVuOm8oInNoZWxsLnJlbG9hZCIpfSldfSl9Y29uc3QgTGQ9bmV3IE1hcCxXaT1uZXcgTWFwO2Z1bmN0aW9uIE9vKG8pe3JldHVybiBvPT09InpoIj8iemgtQ04iOiJlbi1VUyJ9ZnVuY3Rpb24gUGkobyxmKXtjb25zdCBtPWAke299OiR7SlNPTi5zdHJpbmdpZnkoZil9YDtsZXQgcz1MZC5nZXQobSk7cmV0dXJuIHN8fChzPW5ldyBJbnRsLk51bWJlckZvcm1hdChPbyhvKSxmKSxMZC5zZXQobSxzKSksc31mdW5jdGlvbiBTdihvLGYsbT0yKXtyZXR1cm4gbz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKT8i4oCUIjpgJHtvPjA/IisiOm88MD8iLSI6IiJ9JHtQaShmLHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6bSxtYXhpbXVtRnJhY3Rpb25EaWdpdHM6bX0pLmZvcm1hdChNYXRoLmFicyhvKSl9JWB9ZnVuY3Rpb24gbXkobyxmKXtyZXR1cm4gbz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKT8i4oCUIjpgJHtvPjA/IisiOm88MD8iLSI6IiJ9JHtQaShmLHttaW5pbXVtRnJhY3Rpb25EaWdpdHM6MixtYXhpbXVtRnJhY3Rpb25EaWdpdHM6Mn0pLmZvcm1hdChNYXRoLmFicyhvKSl9IHBwYH1mdW5jdGlvbiBUdihvLGYsbSl7aWYobz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKSlyZXR1cm4i4oCUIjtjb25zdCBzPVBpKG0se21pbmltdW1GcmFjdGlvbkRpZ2l0czoyLG1heGltdW1GcmFjdGlvbkRpZ2l0czoyfSkuZm9ybWF0KG8pO3JldHVybiBmP2Ake2Z9ICR7c31gOnN9ZnVuY3Rpb24gX3kobyxmKXtyZXR1cm4gbz09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShvKT8i4oCUIjpQaShmLHttYXhpbXVtRnJhY3Rpb25EaWdpdHM6Nn0pLmZvcm1hdChvKX1jb25zdCBFdj0vXlxkezR9LVxkezJ9LVxkezJ9JC87ZnVuY3Rpb24gQXYobyxmKXtpZighbylyZXR1cm4i4oCUIjtpZihFdi50ZXN0KG8pKXJldHVybiBvO2NvbnN0IG09RGF0ZS5wYXJzZShvKTtpZighTnVtYmVyLmlzRmluaXRlKG0pKXJldHVybiLigJQiO2NvbnN0IHM9YCR7Zn06ZGF0ZWA7bGV0IFQ9V2kuZ2V0KHMpO3JldHVybiBUfHwoVD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChPbyhmKSx7eWVhcjoibnVtZXJpYyIsbW9udGg6IjItZGlnaXQiLGRheToiMi1kaWdpdCJ9KSxXaS5zZXQocyxUKSksVC5mb3JtYXQobmV3IERhdGUobSkpfWZ1bmN0aW9uIHVoKG8sZixtPSExKXtpZighbylyZXR1cm57dGV4dDoi4oCUIix6b25lOiIifTtjb25zdCBzPURhdGUucGFyc2Uobyk7aWYoIU51bWJlci5pc0Zpbml0ZShzKSlyZXR1cm57dGV4dDoi4oCUIix6b25lOiIifTtjb25zdCBUPW5ldyBEYXRlKHMpLE09YCR7Zn06ZGF0ZXRpbWU6JHttfWA7bGV0IHc9V2kuZ2V0KE0pO3d8fCh3PW5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KE9vKGYpLHt5ZWFyOm0/Im51bWVyaWMiOnZvaWQgMCxtb250aDoiMi1kaWdpdCIsZGF5OiIyLWRpZ2l0Iixob3VyOiIyLWRpZ2l0IixtaW51dGU6IjItZGlnaXQiLGhvdXIxMjohMSx0aW1lWm9uZU5hbWU6InNob3J0T2Zmc2V0In0pLFdpLnNldChNLHcpKTtjb25zdCBFPXcuZm9ybWF0VG9QYXJ0cyhUKSxEPUUuZmluZChPPT5PLnR5cGU9PT0idGltZVpvbmVOYW1lIik/LnZhbHVlfHwiIjtyZXR1cm57dGV4dDpFLmZpbHRlcihPPT5PLnR5cGUhPT0idGltZVpvbmVOYW1lIikubWFwKE89Pk8udmFsdWUpLmpvaW4oIiIpLnRyaW0oKSx6b25lOkR9fWZ1bmN0aW9uIHZ5KG8sZil7aWYoIW8pcmV0dXJuIG51bGw7Y29uc3QgbT1EYXRlLnBhcnNlKG8pO2lmKCFOdW1iZXIuaXNGaW5pdGUobSkpcmV0dXJuIG51bGw7Y29uc3Qgcz1NYXRoLm1heCgwLE1hdGgucm91bmQoKERhdGUubm93KCktbSkvMWUzKSk7aWYoczw2MClyZXR1cm4gZj09PSJ6aCI/IuWImuWImiI6Imp1c3Qgbm93Ijtjb25zdCBUPU1hdGguZmxvb3Iocy82MCk7aWYoVDw2MClyZXR1cm4gZj09PSJ6aCI/YCR7VH0g5YiG6ZKf5YmNYDpgJHtUfW0gYWdvYDtjb25zdCBNPU1hdGguZmxvb3IoVC82MCk7aWYoTTw0OClyZXR1cm4gZj09PSJ6aCI/YCR7TX0g5bCP5pe25YmNYDpgJHtNfWggYWdvYDtjb25zdCB3PU1hdGguZmxvb3IoTS8yNCk7cmV0dXJuIGY9PT0iemgiP2Ake3d9IOWkqeWJjWA6YCR7d31kIGFnb2B9Y29uc3QgU289e2FjY291bnRfYWxpYXNlczp7aGs6e2VuOiJISyIsemg6Iummmea4ryJ9LGxpdmU6e2VuOiJsaXZlIix6aDoi5a6e55uYIn0scGFwZXI6e2VuOiJwYXBlciIsemg6IuaooeaLnyJ9LHNnOntlbjoiU0ciLHpoOiLmlrDliqDlnaEifSxzb3hsOntlbjoiU09YTCIsemg6IlNPWEwifSx0cXFxOntlbjoiVFFRUSIsemg6IlRRUVEifX0sYWNjb3VudHM6e2JpbmFuY2U6e0JpbmFuY2U6e2VuOiJsaXZlIix6aDoi5a6e55uYIn0sYmluYW5jZTp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifSxjcnlwdG9fY29tYm86e2VuOiJsaXZlIix6aDoi5a6e55uYIn0sZGVmYXVsdDp7ZW46ImxpdmUiLHpoOiLlrp7nm5gifX19LGRvbWFpbnM6e2NuX2VxdWl0eTp7ZW46IkNOIEEtc2hhcmUiLHpoOiJB6IKhIn0sY3J5cHRvOntlbjoiQ3J5cHRvIix6aDoi5Yqg5a+GIn0saGtfZXF1aXR5OntlbjoiSEsgRXF1aXR5Iix6aDoi5riv6IKhIn0sdXNfZXF1aXR5OntlbjoiVVMgRXF1aXR5Iix6aDoi576O6IKhIn19LGxhbmVzOntkcnlfcnVuOntlbjoiZHJ5IHJ1biIsemg6Iua8lOe7gyJ9LGxpdmU6e2VuOiJsaXZlIix6aDoi5a6e55uYIn0scGFwZXI6e2VuOiJwYXBlciIsemg6IuaooeaLnyJ9LHJlc2VhcmNoOntlbjoicmVzZWFyY2giLHpoOiLnoJTnqbYifSxzaGFkb3c6e2VuOiJzaGFkb3ciLHpoOiLlvbHlrZAifX0scGxhdGZvcm1zOntiaW5hbmNlOiJCaW5hbmNlIixmaXJzdHJhZGU6IkZpcnN0cmFkZSIsaWJrcjoiSUJLUiIsbG9uZ2JyaWRnZToiTG9uZ0JyaWRnZSIscW10OiJRTVQiLHNjaHdhYjoiU2Nod2FiIn0sc2VuZGVyczp7cXVhbnRfc2VudGluZWw6e2VuOiJRdWFudFNlbnRpbmVsIix6aDoi6YeP5YyW5ZOo5YW1In19LHN0cmF0ZWdpZXM6e2NuX2NoaW5leHRfZ3Jvd3RoX21vbWVudHVtX3F1YWxpdHk6e2VuOiJDTiBDaGlOZXh0IEdyb3d0aCBNb21lbnR1bSBRdWFsaXR5Iix6aDoi5Yib5Lia5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIn0sY25fY2hpbmV4dF9ncm93dGhfbW9tZW50dW1fcXVhbGl0eV9zbmFwc2hvdDp7ZW46IkNOIENoaU5leHQgR3Jvd3RoIFF1YWxpdHkgU25hcHNob3QiLHpoOiLliJvkuJrmnb/miJDplb/otKjph4/lv6vnhacifSxjbl9jaGluZXh0X3RhY3RpY2FsX3JvdGF0aW9uOntlbjoiQ04gQ2hpTmV4dCBUYWN0aWNhbCBSb3RhdGlvbiIsemg6IuWIm+S4muadv+aImOacr+i9ruWKqCJ9LGNuX2NzaTUwMF9tdWx0aV9mYWN0b3Jfc25hcHNob3Q6e2VuOiJDTiBDU0kgNTAwIE11bHRpLUZhY3RvciBTbmFwc2hvdCIsemg6IkHogqHkuK3or4E1MDDlpJrlm6DlrZAifSxjbl9kaXZpZGVuZF9xdWFsaXR5X3NuYXBzaG90OntlbjoiQ04gRGl2aWRlbmQgUXVhbGl0eSIsemg6IkHogqHnuqLliKnotKjph48ifSxjbl9lcXVpdHlfY29tYm86e2VuOiJDTiBBbHBoYSBDb21ibyIsemg6IkHogqHov5vlj5bnu4TlkIgifSxjbl9pbmRleF9ldGZfdGFjdGljYWxfcm90YXRpb246e2VuOiJDTiBJbmRleCBFVEYgVGFjdGljYWwgUm90YXRpb24iLHpoOiJB6IKh5a695Z+6RVRG5oiY5pyv6L2u5YqoIn0sY25faW5kdXN0cnlfZXRmX3JvdGF0aW9uOntlbjoiQ04gSW5kdXN0cnkgRVRGIFJvdGF0aW9uIix6aDoiQeiCoeihjOS4mkVURui9ruWKqCJ9LGNuX2luZHVzdHJ5X2V0Zl9yb3RhdGlvbl9hZ2dyZXNzaXZlOntlbjoiQ04gRVRGIFJvdGF0aW9uIix6aDoiQeiCoUVURui9ruWKqCJ9LGNuX3N0YXJfZ3Jvd3RoX21vbWVudHVtX3F1YWxpdHk6e2VuOiJDTiBTVEFSIEdyb3d0aCBNb21lbnR1bSBRdWFsaXR5Iix6aDoi56eR5Yib5p2/5oiQ6ZW/5Yqo6YeP6LSo6YePIn0sY25fc3RvY2tfbW9tZW50dW1fcm90YXRpb246e2VuOiJDTiBTdG9jayBNb21lbnR1bSBSb3RhdGlvbiIsemg6IkHogqHogqHnpajliqjph4/ova7liqgifSxjcnlwdG9fYnRjX2RjYTp7ZW46IkJUQyBEQ0EiLHpoOiJCVEPlrprmipUifSxjcnlwdG9fZXF1aXR5X2NvbWJvOntlbjoiQ3J5cHRvIENvcmUgQ29tYm8iLHpoOiLliqDlr4bliqjph4/nu4TlkIgifSxjcnlwdG9fbGVhZGVyX3JvdGF0aW9uOntlbjoiQ3J5cHRvIExlYWRlciBSb3RhdGlvbiIsemg6IuWKoOWvhumihua2qOi9ruWKqCJ9LGNyeXB0b19saXZlX3Bvb2xfcm90YXRpb246e2VuOiJDcnlwdG8gUG9vbCBSb3RhdGlvbiIsemg6IuWKoOWvhuaxoOi9ruWKqCJ9LGNyeXB0b190cmVuZF9yb3RhdGlvbjp7ZW46IkFsdGNvaW4gVHJlbmQiLHpoOiLlsbHlr6jotovlir/ova7liqgifSxnbG9iYWxfZXRmX2NvbmZpZGVuY2Vfdm9sX2dhdGU6e2VuOiJHbG9iYWwgRVRGIENvbmZpZGVuY2UgVm9sIEdhdGUiLHpoOiLlhajnkIMgRVRGIOe9ruS/oeazouWKqOmXqOaOpyJ9LGdsb2JhbF9ldGZfcm90YXRpb246e2VuOiJHbG9iYWwgRVRGIFJvdGF0aW9uIix6aDoi5YWo55CDRVRG6L2u5YqoIn0saGtfZXF1aXR5X2NvbWJvOntlbjoiSEsgQ29yZSBDb21ibyIsemg6Iua4r+iCoeaBkueUn+e7hOWQiCJ9LGhrX2dsb2JhbF9ldGZfdGFjdGljYWxfcm90YXRpb246e2VuOiJISyBFVEYgVGFjdGljYWwgUm90YXRpb24iLHpoOiLmuK/ogqFFVEbmiJjmnK/ova7liqgifSxoa19sb3dfdm9sX2RpdmlkZW5kX3F1YWxpdHlfc25hcHNob3Q6e2VuOiJISyBEaXZpZGVuZCBRdWFsaXR5Iix6aDoi5riv6IKh57qi5Yip6LSo6YePIn0saWJpdF9zbWFydF9kY2E6e2VuOiJJQklUIEJpdGNvaW4gRENBIix6aDoiSUJJVOavlOeJueW4geWumuaKlSJ9LG5hc2RhcV9zcDUwMF9zbWFydF9kY2E6e2VuOiJOQVNEQVEvUyZQIDUwMCBEQ0EiLHpoOiLnurPmjIfmoIfmma7lrprmipUifSxxcXFfdGVjaF9lbmhhbmNlbWVudDp7ZW46IlRlY2gvQ29tbXVuaWNhdGlvbiBQdWxsYmFjayBFbmhhbmNlbWVudCIsemg6IuenkeaKgOmAmuS/oeWbnuiwg+WinuW8uiJ9LHJ1c3NlbGxfdG9wNTBfbGVhZGVyX3JvdGF0aW9uOntlbjoiUnVzc2VsbCBUb3A1MCBMZWFkZXJzIix6aDoi572X57SgVG9wNTDpoobmtqgifSxzb3hsX3NveHhfY29yZV9vbmx5X3AyX3Y3X2xvbmd0ZXJtX2NvbXBvdW5kaW5nX2Nhc2hfcmVzZXJ2ZTp7ZW46IlNPWEwvU09YWCBDb3JlIENvbXBvdW5kaW5nIChDYXNoIFJlc2VydmUpIix6aDoiU09YTC9TT1hYIOaguOW/g+WkjeWIqe+8iOeOsOmHkeS/neeVme+8iSJ9LHNveGxfc294eF90cmVuZF9pbmNvbWU6e2VuOiJTZW1pY29uZHVjdG9yIFRyZW5kIEluY29tZSIsemg6IuWNiuWvvOS9k+i2i+WKv+aUtuebiiJ9LHRlY2hfY29tbXVuaWNhdGlvbl9wdWxsYmFja19lbmhhbmNlbWVudDp7ZW46IlRlY2gvQ29tbXVuaWNhdGlvbiBQdWxsYmFjayBFbmhhbmNlbWVudCIsemg6IuenkeaKgOmAmuS/oeWbnuiwg+WinuW8uiJ9LHRlY2xfeGxrX3RyZW5kX2luY29tZTp7ZW46IlRFQ0wvWExLIFRyZW5kIEluY29tZSIsemg6IlRFQ0wvWExL6LaL5Yq/5pS255uKIn0sdHFxcV9ncm93dGhfaW5jb21lOntlbjoiTkFTREFRIEdyb3d0aCBJbmNvbWUiLHpoOiLnurPmlq/ovr7lhYvlop7plb/mlLbnm4oifSx1c19lcXVpdHlfY29tYm86e2VuOiJVUyBDb3JlIEluY29tZSBDb21ibyIsemg6Iue+juiCoeaguOW/g+aUtuebiue7hOWQiCJ9LHVzX2VxdWl0eV9jb21ib19jb3JlOntlbjoiVVMgQ29yZSBDb21ibyIsemg6Iue+juiCoeaguOW/g+e7hOWQiCJ9LHVzX2VxdWl0eV9jb21ib19sZXZlcmFnZWQ6e2VuOiJVUyBBbHBoYSBDb21ibyIsemg6Iue+juiCoeWKoOmAn+e7hOWQiCJ9fSxzdHJhdGVneV9hbGlhc2VzOntiaXRjb2luX2V0Zl9zbWFydF9kY2E6ImliaXRfc21hcnRfZGNhIixnbG9iYWxfZXRmX2NvbmZpZGVuY2Vfdm9sX2dhdGU6Imdsb2JhbF9ldGZfcm90YXRpb24iLGdsb2JhbF9tYWNyb19ldGZfcm90YXRpb246Imdsb2JhbF9ldGZfcm90YXRpb24ifX0seHY9e0JBU0VfVVJMOiIvdjIvIixERVY6ITEsTU9ERToicHJvZHVjdGlvbiIsUFJPRDohMCxTU1I6ITF9O2xldCBjaD17fTt0cnl7Y29uc3Qgbz1KU09OLnBhcnNlKHh2Py5WSVRFX1FTTF9ESVNQTEFZX05BTUVTX0pTT058fCJ7fSIpO28mJnR5cGVvZiBvPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkobykmJihjaD1vKX1jYXRjaHt9ZnVuY3Rpb24gUmwobyxmLG09ImVuIixzPSIiLFQ9IiIsTT1jaCl7Y29uc3Qgdz1NLnN0cmF0ZWd5X2FsaWFzZXM/LltmXXx8U28uc3RyYXRlZ3lfYWxpYXNlcz8uW2ZdfHxmO2Zvcihjb25zdCBFIG9mW00sU29dKXtjb25zdCBEPW89PT0iYWNjb3VudHMiP0Vbb10/LltTdHJpbmcoVCkudG9Mb3dlckNhc2UoKV06RVtvXSxPPUQ/LltFPT09U28mJm89PT0ic3RyYXRlZ2llcyI/dzpmXT8/KG89PT0ic3RyYXRlZ2llcyI/RD8uW3ddOm51bGwpLFY9dHlwZW9mIE89PSJvYmplY3QiJiZPP09bU3RyaW5nKG0pLnN0YXJ0c1dpdGgoInpoIik/InpoIjoiZW4iXXx8Ty5lbjpPO2lmKHR5cGVvZiBWPT0ic3RyaW5nIiYmVi50cmltKCkpcmV0dXJuIFYudHJpbSgpfXJldHVybiBzfHxmfHwiIn1mdW5jdGlvbiB6dihvLGYsbT0iZW4iLHM9IiIpe3JldHVybiBSbCgiYWNjb3VudHMiLG98fCIiLG0sUmwoImFjY291bnRfYWxpYXNlcyIsb3x8IiIsbSxzfHxvfHwiIiksZnx8IiIpfWZ1bmN0aW9uIFJ2KG8sZixtPSIiKXtyZXR1cm4gUmwoInN0cmF0ZWdpZXMiLG8sZixtfHwoZi5zdGFydHNXaXRoKCJ6aCIpPyLmnKrlkb3lkI3nrZbnlaUiOiJVbm5hbWVkIHN0cmF0ZWd5IikpfWZ1bmN0aW9uIER2KG8sZil7cmV0dXJuIFJsKCJsYW5lcyIsbyxmLGYuc3RhcnRzV2l0aCgiemgiKT8i5pyq55+lIjoiVW5rbm93biIpfWZ1bmN0aW9uIE52KG8sZil7cmV0dXJuIFJsKCJkb21haW5zIixvLGYsZi5zdGFydHNXaXRoKCJ6aCIpPyLmnKrnn6XluILlnLoiOiJVbmtub3duIG1hcmtldCIpfWZ1bmN0aW9uIE12KG8pe2NvbnN0IGY9WS51c2VDb250ZXh0KCRkKSxtPUhhKCkscz1UdCgpLFQ9bz09PXZvaWQgMD9mOm87cmV0dXJue2NvbmZpZzpULGFjY291bnQ6KE0sdyk9PntpZighTSlyZXR1cm4gcygiY29tbW9uLmFjY291bnQiKTtjb25zdCBFPXc/bGgoVCx3LE0pOnZvaWQgMCxEPUU/LmFjY291bnRfc2VsZWN0b3I/LnRyaW0oKTtyZXR1cm4gdz09PSJpYmtyIiYmRCYmL15VXGR7NSx9JC9pLnRlc3QoRCk/RC50b1VwcGVyQ2FzZSgpOnp2KE0sdyxtLEU/LmxhYmVsJiZFLmxhYmVsIT09TT9FLmxhYmVsOnMoImNvbW1vbi5hY2NvdW50IikpfSxzdHJhdGVneTpNPT57Y29uc3Qgdz1UPy5zdHJhdGVneVByb2ZpbGVzPy5maW5kKEU9PkUucHJvZmlsZT09PU0pO3JldHVybiBSdihNLG0sbT09PSJ6aCI/dz8ubGFiZWxfemg6dz8ubGFiZWxfZW4pfSxjdXJyZW50U3RyYXRlZ3k6TT0+VD8uY3VycmVudFN0cmF0ZWdpZXM/LltNLnBsYXRmb3JtXT8uW00uYWNjb3VudF9hbGlhc10/LnN0cmF0ZWd5X3Byb2ZpbGUscGxhdGZvcm06TT0+T3YoVD8ucGxhdGZvcm1NZXRhPy5bTV0/LmxhYmVsLE0pLGxhbmU6TT0+RHYoTSxtKSxkb21haW46TT0+TnYoTSxtKX19ZnVuY3Rpb24gT3YobyxmKXtyZXR1cm4gb3x8Zn1mdW5jdGlvbiB3digpe2NvbnN0IG89VHQoKSxmPU12KCkse3Njb3BlOm0sb3B0aW9uczpzLHNldFNjb3BlOlR9PVBkKCksW00sd109WS51c2VTdGF0ZSghMSksRT1ZLnVzZVJlZihudWxsKTtZLnVzZUVmZmVjdCgoKT0+e2lmKCFNKXJldHVybjtjb25zdCBIPWhlPT57RS5jdXJyZW50Py5jb250YWlucyhoZS50YXJnZXQpfHx3KCExKX0sY2U9aGU9PntoZS5rZXk9PT0iRXNjYXBlIiYmdyghMSl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsSCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsY2UpLCgpPT57ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLEgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGNlKX19LFtNXSk7Y29uc3QgRD1tdihzLm1hcChIPT4oey4uLkgsYWNjb3VudF9hbGlhczpILmFsaWFzfSkpLG0pLFM9bT09PSJhbGwiP28oInNoZWxsLnNjb3BlX2FsbCIpOkQ/YCR7Zi5wbGF0Zm9ybShELnBsYXRmb3JtKX0gwrcgJHtmLmFjY291bnQoRC5hbGlhcyxELnBsYXRmb3JtKX1gOm8oImNvbW1vbi51bmtub3duIiksTz1bLi4ubmV3IFNldChzLm1hcChIPT5ILnBsYXRmb3JtKSldLFY9SD0+eS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2NvcGUtb3B0aW9uJHttPT09eG8oe3BsYXRmb3JtOkgucGxhdGZvcm0sYWNjb3VudF9hbGlhczpILmFsaWFzfSk/IiBhY3RpdmUiOiIifWAsb25DbGljazooKT0+e1QoeG8oe3BsYXRmb3JtOkgucGxhdGZvcm0sYWNjb3VudF9hbGlhczpILmFsaWFzfSkpLHcoITEpfSxjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtzdHlsZTp7ZmxleDoxfSxjaGlsZHJlbjpmLmFjY291bnQoSC5hbGlhcyxILnBsYXRmb3JtKX0pLEgucGFwZXImJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJiYWRnZSBiYWRnZS1hY2NlbnQiLGNoaWxkcmVuOm8oImNvbW1vbi5wYXBlcl9iYWRnZSIpfSldfSxgJHtILnBsYXRmb3JtfToke0guYWxpYXN9YCk7cmV0dXJuIHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJzY29wZS1zd2l0Y2hlciIscmVmOkUsY2hpbGRyZW46W3kuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSIsImFyaWEtaGFzcG9wdXAiOiJsaXN0Ym94IiwiYXJpYS1leHBhbmRlZCI6TSwiYXJpYS1sYWJlbCI6bygic2hlbGwuc2NvcGUiKSxvbkNsaWNrOigpPT53KEg9PiFIKSxjaGlsZHJlbjpbUywiIOKWviJdfSksTSYmeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNjb3BlLXBhbmVsIixyb2xlOiJsaXN0Ym94IiwiYXJpYS1sYWJlbCI6bygic2hlbGwuc2NvcGUiKSxjaGlsZHJlbjpbeS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzY29wZS1vcHRpb24ke209PT0iYWxsIj8iIGFjdGl2ZSI6IiJ9YCxvbkNsaWNrOigpPT57VCgiYWxsIiksdyghMSl9LGNoaWxkcmVuOm8oInNoZWxsLnNjb3BlX2FsbCIpfSksTy5tYXAoSD0+eS5qc3hzKCJkaXYiLHtjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToic2NvcGUtZ3JvdXAiLGNoaWxkcmVuOmYucGxhdGZvcm0oSCl9KSxzLmZpbHRlcihjZT0+Y2UucGxhdGZvcm09PT1IKS5tYXAoVildfSxIKSldfSldfSl9Y29uc3Qgb2g9WyIxTSIsIjNNIiwiWVREIiwiMVkiLCJBTEwiXTtmdW5jdGlvbiB5eSh7dmFsdWU6byxvbkNoYW5nZTpmLHJldHVybnM6bX0pe2NvbnN0IHM9VHQoKTtyZXR1cm4geS5qc3goImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOnMoInBlcmYucmFuZ2UubGFiZWwiKSxjaGlsZHJlbjpvaC5tYXAoVD0+eS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2VnbWVudCR7VD09PW8/IiBhY3RpdmUiOiIifWAsImFyaWEtcHJlc3NlZCI6VD09PW8sb25DbGljazooKT0+ZihUKSxjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtjaGlsZHJlbjpzKGBwZXJmLnJhbmdlLiR7VH1gKX0pLG0mJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJzZWdtZW50LXN1YiIsY2hpbGRyZW46bVtUXT8/IuKAlCJ9KV19LFQpKX0pfWZ1bmN0aW9uIFV2KHtvbkNsb3NlOm99KXtjb25zdCBmPVR0KCkse3ByZWZzOm0sc2V0UHJlZnM6c309Um8oKSxUPVkudXNlUmVmKG51bGwpO1kudXNlRWZmZWN0KCgpPT57Y29uc3QgRT1kb2N1bWVudC5hY3RpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDpudWxsLEQ9RT8uY2xvc2VzdCgiZGV0YWlscyIpLFM9RCYmIUQub3Blbj9ELnF1ZXJ5U2VsZWN0b3IoInN1bW1hcnkiKTpFO3JldHVybiBULmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpPy5mb2N1cygpLCgpPT57UyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZTLmlzQ29ubmVjdGVkJiZTLmZvY3VzKCl9fSxbXSk7Y29uc3QgTT1FPT57aWYoRS5rZXk9PT0iRXNjYXBlIil7RS5wcmV2ZW50RGVmYXVsdCgpLG8oKTtyZXR1cm59aWYoRS5rZXkhPT0iVGFiIilyZXR1cm47Y29uc3QgRD1ULmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2J1dHRvbjpub3QoOmRpc2FibGVkKSwgaW5wdXQ6bm90KDpkaXNhYmxlZCksIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknKTtpZighRD8ubGVuZ3RoKXJldHVybjtjb25zdCBTPURbMF0sTz1EW0QubGVuZ3RoLTFdO0Uuc2hpZnRLZXkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1TPyhFLnByZXZlbnREZWZhdWx0KCksTy5mb2N1cygpKTohRS5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PU8mJihFLnByZXZlbnREZWZhdWx0KCksUy5mb2N1cygpKX0sdz0oRSxEKT0+cyh7Li4ubSxbRV06RH0pO3JldHVybiB5LmpzeCgiZGl2Iix7Y2xhc3NOYW1lOiJkaWFsb2ctYmFja2Ryb3AiLG9uTW91c2VEb3duOkU9PkUudGFyZ2V0PT09RS5jdXJyZW50VGFyZ2V0JiZvKCksY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImRpYWxvZyIscm9sZToiZGlhbG9nIiwiYXJpYS1tb2RhbCI6InRydWUiLCJhcmlhLWxhYmVsbGVkYnkiOiJwcmVmcy10aXRsZSIscmVmOlQsb25LZXlEb3duOk0sY2hpbGRyZW46W3kuanN4KCJoMiIse2lkOiJwcmVmcy10aXRsZSIsY2hpbGRyZW46ZigicHJlZnMudGl0bGUiKX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwcmVmcy1ncmlkIixjaGlsZHJlbjpbeS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLXJvdyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46ZigicHJlZnMudGhlbWUiKX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjpmKCJwcmVmcy50aGVtZSIpLGNoaWxkcmVuOlsibGlnaHQiLCJkYXJrIiwic3lzdGVtIl0ubWFwKEU9PnkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgc2VnbWVudCR7bS50aGVtZT09PUU/IiBhY3RpdmUiOiIifWAsb25DbGljazooKT0+dygidGhlbWUiLEUpLGNoaWxkcmVuOmYoYHByZWZzLnRoZW1lXyR7RX1gKX0sRSkpfSldfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLXJvdyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46ZigicHJlZnMubGFuZ3VhZ2UiKX0pLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InNlZ21lbnRlZCIscm9sZToiZ3JvdXAiLCJhcmlhLWxhYmVsIjpmKCJwcmVmcy5sYW5ndWFnZSIpLGNoaWxkcmVuOlsiemgiLCJlbiJdLm1hcChFPT55LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6YHNlZ21lbnQke20ubGFuZ3VhZ2U9PT1FPyIgYWN0aXZlIjoiIn1gLG9uQ2xpY2s6KCk9PncoImxhbmd1YWdlIixFKSxjaGlsZHJlbjpFPT09InpoIj8i5Lit5paHIjoiRW5nbGlzaCJ9LEUpKX0pXX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwcmVmcy1yb3ciLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NoaWxkcmVuOmYoInByZWZzLnVwZG93biIpfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOmYoInByZWZzLnVwZG93biIpLGNoaWxkcmVuOlsiZ3JlZW4tdXAiLCJyZWQtdXAiXS5tYXAoRT0+eS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHttLnVwRG93bj09PUU/IiBhY3RpdmUiOiIifWAsb25DbGljazooKT0+dygidXBEb3duIixFKSxjaGlsZHJlbjpmKEU9PT0iZ3JlZW4tdXAiPyJwcmVmcy51cGRvd25fZ3JlZW5fdXAiOiJwcmVmcy51cGRvd25fcmVkX3VwIil9LEUpKX0pXX0pLHkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJwcmVmcy1yb3ciLGNoaWxkcmVuOlt5LmpzeCgic3BhbiIse2NoaWxkcmVuOmYoInByZWZzLmhpZGVfYW1vdW50cyIpfSkseS5qc3goImlucHV0Iix7dHlwZToiY2hlY2tib3giLGNoZWNrZWQ6bS5oaWRlQW1vdW50cyxvbkNoYW5nZTpFPT53KCJoaWRlQW1vdW50cyIsRS50YXJnZXQuY2hlY2tlZCksImFyaWEtbGFiZWwiOmYoInByZWZzLmhpZGVfYW1vdW50cyIpfSldfSkseS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InByZWZzLXJvdyIsY2hpbGRyZW46W3kuanN4KCJzcGFuIix7Y2hpbGRyZW46ZigicHJlZnMuZGVmYXVsdF9yYW5nZSIpfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToic2VnbWVudGVkIixyb2xlOiJncm91cCIsImFyaWEtbGFiZWwiOmYoInByZWZzLmRlZmF1bHRfcmFuZ2UiKSxjaGlsZHJlbjpvaC5tYXAoRT0+eS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmBzZWdtZW50JHttLmRlZmF1bHRSYW5nZT09PUU/IiBhY3RpdmUiOiIifWAsb25DbGljazooKT0+dygiZGVmYXVsdFJhbmdlIixFKSxjaGlsZHJlbjpmKGBwZXJmLnJhbmdlLiR7RX1gKX0sRSkpfSldfSldfSkseS5qc3goInAiLHtjbGFzc05hbWU6ImNhcmQtbm90ZSIsY2hpbGRyZW46ZigicHJlZnMubm90ZSIpfSkseS5qc3goImRpdiIse2NsYXNzTmFtZToiZGlhbG9nLWFjdGlvbnMiLGNoaWxkcmVuOnkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5IixvbkNsaWNrOm8sY2hpbGRyZW46ZigiY29tbW9uLmNsb3NlIil9KX0pXX0pfSl9Y29uc3QgVG89W3tpZDoib3ZlcnZpZXciLGxhYmVsS2V5OiJuYXYub3ZlcnZpZXciLGljb246Ik0zIDEyIEwxMiA0IEwyMSAxMiBNNiAxMCBWMjAgSDE4IFYxMCJ9LHtpZDoicGVyZm9ybWFuY2UiLGxhYmVsS2V5OiJuYXYucGVyZm9ybWFuY2UiLGljb246Ik00IDE4IEwxMCAxMCBMMTQgMTMgTDIwIDUifSx7aWQ6ImRlY2lzaW9ucyIsbGFiZWxLZXk6Im5hdi5kZWNpc2lvbnMiLGljb246Ik00IDYgSDIwIE00IDEyIEgyMCBNNCAxOCBIMTQifSx7aWQ6ImFjY291bnRzIixsYWJlbEtleToibmF2LmFjY291bnRzIixpY29uOiJNMTIgMTIgbS00IDAgYTQgNCAwIDEgMCA4IDAgYTQgNCAwIDEgMCAtOCAwIE00IDIwIGMwLTQgNC02IDgtNiBzOCAyIDggNiJ9LHtpZDoic3RyYXRlZ2llcyIsbGFiZWxLZXk6Im5hdi5zdHJhdGVnaWVzIixpY29uOiJNNSA1IEgxOSBWMTkgSDUgWiBNNSAxMCBIMTkgTTEwIDEwIFYxOSJ9LHtpZDoiaGVhbHRoIixsYWJlbEtleToibmF2LmhlYWx0aCIsaWNvbjoiTTMgMTIgSDcgTDEwIDUgTDE0IDE5IEwxNyAxMiBIMjEifV0sQ3Y9WyJvdmVydmlldyIsInBlcmZvcm1hbmNlIiwiZGVjaXNpb25zIiwiYWNjb3VudHMiXSxHZD1bInN0cmF0ZWdpZXMiLCJoZWFsdGgiXTtmdW5jdGlvbiBFbyh7cGF0aDpvfSl7cmV0dXJuIHkuanN4KCJzdmciLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIxLjgiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLCJhcmlhLWhpZGRlbiI6InRydWUiLGNoaWxkcmVuOnkuanN4KCJwYXRoIix7ZDpvfSl9KX1mdW5jdGlvbiBxdih7cGFnZTpvLHRvZG9Db3VudDpmLHN5bnRoZXRpYzptLGxvZ2luOnMsdXBkYXRlZEF0OlQsb25Mb2dvdXQ6TSxjaGlsZHJlbjp3fSl7Y29uc3QgRT1UdCgpLEQ9SGEoKSxTPXJ2KCkse3ByZWZzOk8sc2V0UHJlZnM6VixyZXNvbHZlZFRoZW1lOkh9PVJvKCksY2U9SD09PSJkYXJrIjtQZCgpO2NvbnN0W2hlLGtlXT1ZLnVzZVN0YXRlKCExKSxbTmUsdHRdPVkudXNlU3RhdGUoITEpLFthdCxTZV09WS51c2VTdGF0ZSghMSksdmU9WS51c2VSZWYobnVsbCk7WS51c2VFZmZlY3QoKCk9Pnt2ZS5jdXJyZW50JiYodmUuY3VycmVudC5vcGVuPSExKSx0dCghMSl9LFtvXSksWS51c2VFZmZlY3QoKCk9Pntjb25zdCBXPUY9Pntjb25zdCBhZT12ZS5jdXJyZW50O2FlPy5vcGVuJiYhYWUuY29udGFpbnMoRi50YXJnZXQpJiYoYWUub3Blbj0hMSl9LHhlPUY9PntGLmtleT09PSJFc2NhcGUiJiZ2ZS5jdXJyZW50JiYodmUuY3VycmVudC5vcGVuPSExKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixXKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix4ZSksKCk9Pntkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsVyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIseGUpfX0sW10pO2NvbnN0IGVlPWYhPT1udWxsJiZmPjA/eS5qc3goInNwYW4iLHtjbGFzc05hbWU6Im5hdi1iYWRnZSIsY2hpbGRyZW46Zn0pOm51bGwsVGU9VD91aChULEQpOm51bGwsTWU9KFcseGU9IiIpPT55LmpzeHMoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOmAke3hlfSR7bz09PVcuaWQ/IiBhY3RpdmUiOiIifWAsImFyaWEtbGFiZWwiOkUoVy5sYWJlbEtleSksImFyaWEtY3VycmVudCI6bz09PVcuaWQ/InBhZ2UiOnZvaWQgMCxvbkNsaWNrOigpPT5TKHtwYWdlOlcuaWQsYWNjb3VudDpudWxsLHRhYjpudWxsfSksY2hpbGRyZW46W3kuanN4KEVvLHtwYXRoOlcuaWNvbn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJuYXYtdGV4dCIsY2hpbGRyZW46RShXLmxhYmVsS2V5KX0pLFcuaWQ9PT0iZGVjaXNpb25zIiYmZWVdfSxXLmlkKTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6InNoZWxsIixjaGlsZHJlbjpbeS5qc3goImEiLHtjbGFzc05hbWU6InNraXAtbGluayIsaHJlZjoiI21haW4tY29udGVudCIsY2hpbGRyZW46RSgic2hlbGwuc2tpcF90b19jb250ZW50Iil9KSx5LmpzeHMoIm5hdiIse2NsYXNzTmFtZTpgc2lkZW5hdiR7aGU/IiBjb2xsYXBzZWQiOiIifWAsImFyaWEtbGFiZWwiOkUoIm5hdi5tYWluIiksY2hpbGRyZW46W3kuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJicmFuZCIsY2hpbGRyZW46W3kuanN4KCJpbWciLHtzcmM6Ii92Mi9hc3NldHMvcXNsLWJyYW5kLWljb24uc3ZnIixhbHQ6IiIsd2lkdGg6MjgsaGVpZ2h0OjI4fSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImJyYW5kLW5hbWUiLGNoaWxkcmVuOkUoImFwcC5uYW1lIil9KV19KSxUby5tYXAoVz0+TWUoVywibmF2LWl0ZW0iKSkseS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJzaWRlbmF2LWNvbGxhcHNlIixvbkNsaWNrOigpPT5rZShXPT4hVyksImFyaWEtbGFiZWwiOkUoaGU/ImNvbW1vbi5leHBhbmQiOiJjb21tb24uY29sbGFwc2UiKSxjaGlsZHJlbjpoZT8iwrsiOiLCqyJ9KV19KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToic2hlbGwtbWFpbiIsY2hpbGRyZW46W3kuanN4cygiaGVhZGVyIix7Y2xhc3NOYW1lOiJ0b3BiYXIiLGNoaWxkcmVuOlt5LmpzeCh3dix7fSksVGUmJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJ0b3BiYXItdXBkYXRlZCIsY2hpbGRyZW46RSgiY29tbW9uLnVwZGF0ZWRfYXQiLHt2YWx1ZTpgJHtUZS50ZXh0fSR7VGUuem9uZT9gICgke1RlLnpvbmV9KWA6IiJ9YH0pfSkseS5qc3goInNwYW4iLHtjbGFzc05hbWU6InNwYWNlciJ9KSx5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSBhcHBlYXJhbmNlLXRvZ2dsZSIsImFyaWEtbGFiZWwiOkUoInByZWZzLmxhbmd1YWdlIiksdGl0bGU6RSgicHJlZnMubGFuZ3VhZ2UiKSxvbkNsaWNrOigpPT5WKHsuLi5PLGxhbmd1YWdlOkQ9PT0iemgiPyJlbiI6InpoIn0pLGNoaWxkcmVuOkQ9PT0iemgiPyJFbmdsaXNoIjoi5Lit5paHIn0pLHkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IGJ1dHRvbi1zbSBhcHBlYXJhbmNlLXRvZ2dsZSIsImFyaWEtbGFiZWwiOkUoY2U/InNoZWxsLnN3aXRjaF9saWdodCI6InNoZWxsLnN3aXRjaF9kYXJrIiksdGl0bGU6RShjZT8ic2hlbGwuc3dpdGNoX2xpZ2h0Ijoic2hlbGwuc3dpdGNoX2RhcmsiKSxvbkNsaWNrOigpPT5WKHsuLi5PLHRoZW1lOmNlPyJsaWdodCI6ImRhcmsifSksY2hpbGRyZW46W3kuanN4KCJzcGFuIix7ImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46Y2U/IuKYgCI6IuKYviJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToidGhlbWUtdG9nZ2xlLWxhYmVsIixjaGlsZHJlbjpFKGNlPyJwcmVmcy50aGVtZV9saWdodCI6InByZWZzLnRoZW1lX2RhcmsiKX0pXX0pLG0mJnkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJiYWRnZSBiYWRnZS1hY2NlbnQiLGNoaWxkcmVuOkUoImNvbW1vbi5zeW50aGV0aWNfYmFkZ2UiKX0pLHkuanN4KCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZToiaWNvbi1idXR0b24iLCJhcmlhLXByZXNzZWQiOk8uaGlkZUFtb3VudHMsImFyaWEtbGFiZWwiOkUoTy5oaWRlQW1vdW50cz8ic2hlbGwuc2hvd19hbW91bnRzIjoic2hlbGwuaGlkZV9hbW91bnRzIiksdGl0bGU6RShPLmhpZGVBbW91bnRzPyJzaGVsbC5zaG93X2Ftb3VudHMiOiJzaGVsbC5oaWRlX2Ftb3VudHMiKSxvbkNsaWNrOigpPT5WKHsuLi5PLGhpZGVBbW91bnRzOiFPLmhpZGVBbW91bnRzfSksY2hpbGRyZW46eS5qc3goInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuOCIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46Ty5oaWRlQW1vdW50cz95LmpzeCgicGF0aCIse2Q6Ik0zIDMgTDIxIDIxIE0xMCA1LjUgQzExLjUgNSAxMyA1IDE0IDUuNSBDMTggNyAyMSAxMiAyMSAxMiBDMjAgMTQgMTguNSAxNS44IDE2LjUgMTcgTTYuNSA2LjggQzQgOC43IDMgMTIgMyAxMiBDMyAxMiA2IDE4IDEyIDE4IEMxMyAxOCAxNCAxNy44IDE0LjggMTcuNSJ9KTp5LmpzeHMoeS5GcmFnbWVudCx7Y2hpbGRyZW46W3kuanN4KCJwYXRoIix7ZDoiTTIgMTIgQzIgMTIgNS41IDUgMTIgNSBDMTguNSA1IDIyIDEyIDIyIDEyIEMyMiAxMiAxOC41IDE5IDEyIDE5IEM1LjUgMTkgMiAxMiAyIDEyIFoifSkseS5qc3goImNpcmNsZSIse2N4OiIxMiIsY3k6IjEyIixyOiIzIn0pXX0pfSl9KSx5LmpzeHMoImRldGFpbHMiLHtjbGFzc05hbWU6InVzZXItbWVudSIscmVmOnZlLGNoaWxkcmVuOlt5LmpzeCgic3VtbWFyeSIseyJhcmlhLWxhYmVsIjpFKCJzaGVsbC51c2VyX21lbnUiKSxjaGlsZHJlbjooc3x8IlUiKS5zbGljZSgwLDEpLnRvVXBwZXJDYXNlKCl9KSx5LmpzeHMoImRpdiIse2NsYXNzTmFtZToidXNlci1tZW51LXBhbmVsIixjaGlsZHJlbjpbeS5qc3goInN0cm9uZyIse2NsYXNzTmFtZToidXNlci1tZW51LW5hbWUiLGNoaWxkcmVuOnN8fCLigJQifSkseS5qc3goImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsY2xhc3NOYW1lOiJtZW51LWl0ZW0iLG9uQ2xpY2s6KCk9PntTZSghMCksdmUuY3VycmVudCYmKHZlLmN1cnJlbnQub3Blbj0hMSl9LGNoaWxkcmVuOkUoInNoZWxsLnByZWZlcmVuY2VzIil9KSx5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Im1lbnUtaXRlbSIsb25DbGljazpNLGNoaWxkcmVuOkUoInNoZWxsLmxvZ291dCIpfSldfSldfSldfSkseS5qc3goYnYse30pLHkuanN4KCJtYWluIix7Y2xhc3NOYW1lOiJjb250ZW50IixpZDoibWFpbi1jb250ZW50IixjaGlsZHJlbjp3fSxvKV19KSx5LmpzeCgibmF2Iix7Y2xhc3NOYW1lOiJib3R0b20tdGFicyIsImFyaWEtbGFiZWwiOkUoIm5hdi5tYWluIiksY2hpbGRyZW46eS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImJvdHRvbS10YWJzLWlubmVyIixjaGlsZHJlbjpbQ3YubWFwKFc9Pk1lKFRvLmZpbmQoeGU9PnhlLmlkPT09VyksImJvdHRvbS10YWIiKSkseS5qc3hzKCJidXR0b24iLHt0eXBlOiJidXR0b24iLGNsYXNzTmFtZTpgYm90dG9tLXRhYiR7TmV8fEdkLmluY2x1ZGVzKG8pPyIgYWN0aXZlIjoiIn1gLCJhcmlhLWV4cGFuZGVkIjpOZSxvbkNsaWNrOigpPT50dChXPT4hVyksY2hpbGRyZW46W3kuanN4KEVvLHtwYXRoOiJNNSAxMiBtLTEuNSAwIGExLjUgMS41IDAgMSAwIDMgMCBhMS41IDEuNSAwIDEgMCAtMyAwIE0xMiAxMiBtLTEuNSAwIGExLjUgMS41IDAgMSAwIDMgMCBhMS41IDEuNSAwIDEgMCAtMyAwIE0xOSAxMiBtLTEuNSAwIGExLjUgMS41IDAgMSAwIDMgMCBhMS41IDEuNSAwIDEgMCAtMyAwIn0pLHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJuYXYtdGV4dCIsY2hpbGRyZW46RSgibmF2Lm1vcmUiKX0pXX0pXX0pfSksTmUmJnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOiJtb3JlLXNoZWV0Iixyb2xlOiJtZW51IixjaGlsZHJlbjpbR2QubWFwKFc9Pk1lKFRvLmZpbmQoeGU9PnhlLmlkPT09VyksIm5hdi1pdGVtIikpLHkuanN4cygiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6Im5hdi1pdGVtIixvbkNsaWNrOigpPT57U2UoITApLHR0KCExKX0sY2hpbGRyZW46W3kuanN4KEVvLHtwYXRoOiJNMTIgMTUgbS0zIDAgYTMgMyAwIDEgMCA2IDAgYTMgMyAwIDEgMCAtNiAwIE0xOSAxMiBhNyA3IDAgMCAwLS4xLTEuMiBsMi0xLjUgLTItMy40IC0yLjMgMSBhNyA3IDAgMCAwLTItMS4yIEwxNC4yIDMgSDkuOCBMOS40IDUuNyBhNyA3IDAgMCAwLTIgMS4yIGwtMi4zLTEgLTIgMy40IDIgMS41IEE3IDcgMCAwIDAgNSAxMiJ9KSx5LmpzeCgic3BhbiIse2NsYXNzTmFtZToibmF2LXRleHQiLGNoaWxkcmVuOkUoInNoZWxsLnByZWZlcmVuY2VzIil9KV19KV19KSxhdCYmeS5qc3goVXYse29uQ2xvc2U6KCk9PlNlKCExKX0pXX0pfWNvbnN0IHNoPVkuY3JlYXRlQ29udGV4dCgoKT0+e30pO2Z1bmN0aW9uIHB5KCl7cmV0dXJuIFkudXNlQ29udGV4dChzaCl9ZnVuY3Rpb24ganYoe2NoaWxkcmVuOm99KXtjb25zdCBmPVR0KCksW20sc109WS51c2VTdGF0ZShbXSksVD1ZLnVzZVJlZigxKSxNPVkudXNlQ2FsbGJhY2soRT0+e2NvbnN0IEQ9VC5jdXJyZW50Kys7cyhTPT5bLi4uUy5zbGljZSgtMyksey4uLkUsaWQ6RH1dKSx3aW5kb3cuc2V0VGltZW91dCgoKT0+cyhTPT5TLmZpbHRlcihPPT5PLmlkIT09RCkpLDZlMyl9LFtdKSx3PUU9PnMoRD0+RC5maWx0ZXIoUz0+Uy5pZCE9PUUpKTtyZXR1cm4geS5qc3hzKHNoLlByb3ZpZGVyLHt2YWx1ZTpNLGNoaWxkcmVuOltvLHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InRvYXN0LXN0YWNrIixyb2xlOiJzdGF0dXMiLCJhcmlhLWxpdmUiOiJwb2xpdGUiLGNoaWxkcmVuOm0ubWFwKEU9PnkuanN4cygiZGl2Iix7Y2xhc3NOYW1lOmB0b2FzdCAke0Uua2luZD09PSJpbmZvIj8iIjpFLmtpbmR9YCxjaGlsZHJlbjpbeS5qc3goInNwYW4iLHtzdHlsZTp7ZmxleDoxfSxjaGlsZHJlbjpFLnRleHR9KSx5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOigpPT53KEUuaWQpLCJhcmlhLWxhYmVsIjpmKCJjb21tb24uY2xvc2UiKSxjaGlsZHJlbjoi4pyVIn0pXX0sRS5pZCkpfSldfSl9ZnVuY3Rpb24gSHYoe3RvbmU6b30pe3JldHVybiBvPT09Im9rIj95LmpzeCgic3ZnIix7d2lkdGg6MTAsaGVpZ2h0OjEwLHZpZXdCb3g6IjAgMCAxMCAxMCIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46eS5qc3goInBhdGgiLHtkOiJNMS41IDUuNSBMNCA4IEw4LjUgMiIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIxLjYiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQifSl9KTpvPT09Indhcm4iP3kuanN4cygic3ZnIix7d2lkdGg6MTAsaGVpZ2h0OjEwLHZpZXdCb3g6IjAgMCAxMCAxMCIsImFyaWEtaGlkZGVuIjoidHJ1ZSIsY2hpbGRyZW46W3kuanN4KCJwYXRoIix7ZDoiTTUgMSBMOS41IDkgSDAuNSBaIixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuMiIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0pLHkuanN4KCJsaW5lIix7eDE6IjUiLHkxOiI0Iix4MjoiNSIseTI6IjYuNCIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIxLjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIn0pLHkuanN4KCJjaXJjbGUiLHtjeDoiNSIsY3k6IjcuOCIscjoiMC43IixmaWxsOiJjdXJyZW50Q29sb3IifSldfSk6bz09PSJlcnJvciI/eS5qc3hzKCJzdmciLHt3aWR0aDoxMCxoZWlnaHQ6MTAsdmlld0JveDoiMCAwIDEwIDEwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjpbeS5qc3goImNpcmNsZSIse2N4OiI1IixjeToiNSIscjoiNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIxLjIifSkseS5qc3goInBhdGgiLHtkOiJNMy4yIDMuMiBMNi44IDYuOCBNNi44IDMuMiBMMy4yIDYuOCIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIxLjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIn0pXX0pOnkuanN4KCJzdmciLHt3aWR0aDoxMCxoZWlnaHQ6MTAsdmlld0JveDoiMCAwIDEwIDEwIiwiYXJpYS1oaWRkZW4iOiJ0cnVlIixjaGlsZHJlbjp5LmpzeCgiY2lyY2xlIix7Y3g6IjUiLGN5OiI1IixyOiI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjEuMiIsc3Ryb2tlRGFzaGFycmF5OiIyIDEuNCJ9KX0pfWZ1bmN0aW9uIEJ2KHt0b25lOm8sY2hpbGRyZW46Zix0aXRsZTptfSl7cmV0dXJuIHkuanN4cygic3BhbiIse2NsYXNzTmFtZTpgYmFkZ2UgYmFkZ2UtJHtvfWAsdGl0bGU6bSxjaGlsZHJlbjpbbyE9PSJhY2NlbnQiJiZ5LmpzeChIdix7dG9uZTpvfSksZl19KX1jb25zdCBZdj17aGVhbHRoeToib2siLHJldmlldzoid2FybiIsd2F0Y2g6Indhcm4iLGNyaXRpY2FsOiJlcnJvciIsZnJlc2g6Im9rIixibG9ja2VkOiJlcnJvciIsZmFpbGVkOiJlcnJvciIscmVhZF9pbmNvbXBsZXRlOiJlcnJvciIsaW5zdWZmaWNpZW50OiJ3YXJuIixwcmV2aWV3ZWQ6InVua25vd24iLG5vX3NpZ25hbDoib2siLG9rOiJvayIscGFydGlhbDoid2FybiIsc3RhbGU6Indhcm4iLG5vX2RhdGE6InVua25vd24iLG5vdF9jb25uZWN0ZWQ6InVua25vd24iLHVuYXZhaWxhYmxlOiJ1bmtub3duIixyZWFkX2ZhaWxlZDoiZXJyb3IifTtmdW5jdGlvbiBMdihvKXtyZXR1cm4gWXZbb3x8IiJdfHwidW5rbm93biJ9ZnVuY3Rpb24gZ3koe3N0YXR1czpvLHJlYXNvbjpmfSl7Y29uc3QgbT1UdCgpLHM9YHN0YXRlLiR7b3x8InVua25vd24ifWAsVD1mP2ByZWFzb24uJHtmfWA6bnVsbCxNPVQ/bShUKTp2b2lkIDA7cmV0dXJuIHkuanN4KEJ2LHt0b25lOkx2KG8pLHRpdGxlOk0sY2hpbGRyZW46bShzKX0pfWZ1bmN0aW9uIGJ5KHt2YWx1ZTpvLHByZWZpeDpmPSJjb21tb24uYXNfb2YifSl7Y29uc3QgbT1UdCgpLHM9SGEoKTtpZighbylyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6ImFzb2YiLGNoaWxkcmVuOm0oZix7dmFsdWU6bSgiY29tbW9uLm5hIil9KX0pO2NvbnN0e3RleHQ6VCx6b25lOk19PXVoKG8scyk7cmV0dXJuIHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJhc29mIixjaGlsZHJlbjptKGYse3ZhbHVlOk0/YCR7VH0gKCR7TX0pYDpUfSl9KX1mdW5jdGlvbiBTeSh7dmFsdWU6b30pe2NvbnN0IGY9SGEoKTtyZXR1cm4geS5qc3goeS5GcmFnbWVudCx7Y2hpbGRyZW46QXYobyxmKX0pfWZ1bmN0aW9uIFR5KHt2YWx1ZTpvLGN1cnJlbmN5OmYsc2lnbmVkOm09ITF9KXtjb25zdCBzPUhhKCkse3ByZWZzOlR9PVJvKCk7aWYoVC5oaWRlQW1vdW50cylyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6Im1vbmV5IixjaGlsZHJlbjoi4oCi4oCi4oCiIn0pO2lmKG89PW51bGx8fCFOdW1iZXIuaXNGaW5pdGUobykpcmV0dXJuIHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJtb25leSBmbGF0IixjaGlsZHJlbjoi4oCUIn0pO2NvbnN0IE09VHYobT9NYXRoLmFicyhvKTpvLGYscyksdz1tP28+MD8iKyI6bzwwPyItIjoiIjoiIixFPSFtfHxvPT09MD8iZmxhdCI6bz4wPyJ1cCI6ImRvd24iO3JldHVybiB5LmpzeHMoInNwYW4iLHtjbGFzc05hbWU6YG1vbmV5ICR7RX1gLGNoaWxkcmVuOlt3LE1dfSl9ZnVuY3Rpb24gRXkoe3ZhbHVlOm8sZGlnaXRzOmY9Mn0pe2lmKG89PW51bGx8fCFOdW1iZXIuaXNGaW5pdGUobykpcmV0dXJuIHkuanN4KCJzcGFuIix7Y2xhc3NOYW1lOiJwZXJjZW50IGZsYXQiLGNoaWxkcmVuOiLigJQifSk7Y29uc3QgbT1IYSgpLHM9bz09PTA/ImZsYXQiOm8+MD8idXAiOiJkb3duIjtyZXR1cm4geS5qc3goInNwYW4iLHtjbGFzc05hbWU6YHBlcmNlbnQgJHtzfWAsY2hpbGRyZW46U3YobyxtLGYpfSl9ZnVuY3Rpb24gWGQoe2hlaWdodDpvPTE2LHdpZHRoOmY9IjEwMCUifSl7cmV0dXJuIHkuanN4KCJkaXYiLHtjbGFzc05hbWU6InNrZWxldG9uIixzdHlsZTp7aGVpZ2h0Om8sd2lkdGg6Zn0sImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KX1mdW5jdGlvbiBBeSh7dGl0bGU6byxib2R5OmYsYWN0aW9uOm19KXtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImVtcHR5LXN0YXRlIixjaGlsZHJlbjpbeS5qc3goImRpdiIse2NsYXNzTmFtZToiZW1wdHktdGl0bGUiLGNoaWxkcmVuOm99KSxmJiZ5LmpzeCgiZGl2Iix7Y2hpbGRyZW46Zn0pLG0mJnkuanN4KCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEyfSxjaGlsZHJlbjptfSldfSl9ZnVuY3Rpb24geHkoe29uUmV0cnk6b30pe2NvbnN0IGY9VHQoKTtyZXR1cm4geS5qc3hzKCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXN0YXRlIixyb2xlOiJhbGVydCIsY2hpbGRyZW46W3kuanN4KCJkaXYiLHtjbGFzc05hbWU6ImVycm9yLXRpdGxlIixjaGlsZHJlbjpmKCJzdGF0ZS5yZWFkX2ZhaWxlZCIpfSkseS5qc3goImRpdiIse2NoaWxkcmVuOmYoImVycm9yLmdlbmVyaWMiKX0pLG8mJnkuanN4KCJkaXYiLHtzdHlsZTp7bWFyZ2luVG9wOjEyfSxjaGlsZHJlbjp5LmpzeCgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5IixvbkNsaWNrOm8sY2hpbGRyZW46ZigiY29tbW9uLnJldHJ5Iil9KX0pXX0pfWZ1bmN0aW9uIHp5KHt0aXRsZUtleTpvLGJvZHlLZXk6Zn0pe2NvbnN0IG09VHQoKTtyZXR1cm4geS5qc3hzKCJkZXRhaWxzIix7Y2xhc3NOYW1lOiJtZXRob2Qtbm90ZSIsY2hpbGRyZW46W3kuanN4KCJzdW1tYXJ5Iix7Y2hpbGRyZW46bShvKX0pLHkuanN4KCJwIix7Y2xhc3NOYW1lOiJjYXJkLW5vdGUiLGNoaWxkcmVuOm0oZil9KV19KX1jb25zdCBHdj1ZLmxhenkoKCk9PnhuKCgpPT5pbXBvcnQoIi4vT3ZlcnZpZXdQYWdlLUJWcnVnU3daLmpzIiksX192aXRlX19tYXBEZXBzKFswLDEsMiwzLDQsNSw2LDddKSkpLFh2PVkubGF6eSgoKT0+eG4oKCk9PmltcG9ydCgiLi9QZXJmb3JtYW5jZVBhZ2UtQ2I0dGw0VEYuanMiKSxfX3ZpdGVfX21hcERlcHMoWzgsNSw2LDIsMyw5LDEwLDExXSkpKSxRdj1ZLmxhenkoKCk9PnhuKCgpPT5pbXBvcnQoIi4vRGVjaXNpb25zUGFnZS1DeV9MOVMtdi5qcyIpLF9fdml0ZV9fbWFwRGVwcyhbMTIsMSwxMyw1LDEwLDE0LDE1XSkpKSxrdj1ZLmxhenkoKCk9PnhuKCgpPT5pbXBvcnQoIi4vQWNjb3VudHNQYWdlLUExeHc5SXJ2LmpzIiksX192aXRlX19tYXBEZXBzKFsxNiw0LDUsMTQsMTAsMTddKSkpLFp2PVkubGF6eSgoKT0+eG4oKCk9PmltcG9ydCgiLi9TdHJhdGVnaWVzUGFnZS1EUmoyVTBfUS5qcyIpLF9fdml0ZV9fbWFwRGVwcyhbMTgsNSwxMCwxOV0pKSksVnY9WS5sYXp5KCgpPT54bigoKT0+aW1wb3J0KCIuL0hlYWx0aFBhZ2UtQ2YySTU2WGsuanMiKSxfX3ZpdGVfX21hcERlcHMoWzIwLDUsNiw5LDEzLDIxXSkpKTtmdW5jdGlvbiBRZCh7a2luZDpvLG5vQWNjZXNzOmYsb25SZXRyeTptfSl7Y29uc3Qgcz1UdCgpLFQ9bz09PSJkZW5pZWQiO3JldHVybiB5LmpzeHMoIm1haW4iLHtjbGFzc05hbWU6ImFjY2Vzcy1zY3JlZW4iLGNoaWxkcmVuOlt5LmpzeCgiaW1nIix7c3JjOiIvdjIvYXNzZXRzL3FzbC1icmFuZC1pY29uLnN2ZyIsYWx0OiIiLHdpZHRoOjQ4LGhlaWdodDo0OH0pLHkuanN4KCJoMSIse2NoaWxkcmVuOnMoVD9mPyJhdXRoLmRlbmllZF90aXRsZSI6ImF1dGgubG9naW5fdGl0bGUiOiJhdXRoLmVycm9yX3RpdGxlIil9KSx5LmpzeCgicCIse2NoaWxkcmVuOnMoVD9mPyJhdXRoLmRlbmllZF9ib2R5IjoiYXV0aC5sb2dpbl9ib2R5IjoiYXV0aC5lcnJvcl9ib2R5Iil9KSxUP2Y/bnVsbDp5LmpzeCgiYSIse2NsYXNzTmFtZToiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5IixocmVmOiIvbG9naW4iLGNoaWxkcmVuOnMoImF1dGgubG9naW4iKX0pOnkuanN4KCJidXR0b24iLHtjbGFzc05hbWU6ImJ1dHRvbiBidXR0b24tcHJpbWFyeSIsdHlwZToiYnV0dG9uIixvbkNsaWNrOm0sY2hpbGRyZW46cygiY29tbW9uLnJldHJ5Iil9KV19KX1mdW5jdGlvbiBLdigpe2NvbnN0W28sZl09WS51c2VTdGF0ZShLZCksW20sc109WS51c2VTdGF0ZSgoKT0+d2luZG93Lm1hdGNoTWVkaWE/LigiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/PyExKSxbVCxNXT1ZLnVzZVN0YXRlKCJsb2FkaW5nIiksW3csRV09WS51c2VTdGF0ZShudWxsKSxbRCxTXT1ZLnVzZVN0YXRlKCgpPT5qZCh3aW5kb3cubG9jYXRpb24uc2VhcmNoKSksW08sVl09WS51c2VTdGF0ZShudWxsKSxbSCxjZV09WS51c2VTdGF0ZShbXSksW2hlLGtlXT1ZLnVzZVN0YXRlKG51bGwpLFtOZSx0dF09WS51c2VTdGF0ZShudWxsKSxbYXQsU2VdPVkudXNlU3RhdGUoMCksdmU9WS51c2VSZWYoRCk7dmUuY3VycmVudD1EO2NvbnN0IGVlPVkudXNlQ2FsbGJhY2soRj0+e2YoRiksc3YoRil9LFtdKSxUZT1KZChvLnRoZW1lLG0pO1kudXNlRWZmZWN0KCgpPT57ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXQudGhlbWU9VGV9LFtUZV0pLFkudXNlRWZmZWN0KCgpPT57ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXQudXBkb3duPW8udXBEb3dufSxbby51cERvd25dKSxZLnVzZUVmZmVjdCgoKT0+e2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nPW8ubGFuZ3VhZ2U9PT0iemgiPyJ6aC1DTiI6ImVuIn0sW28ubGFuZ3VhZ2VdKSxZLnVzZUVmZmVjdCgoKT0+e2NvbnN0IEY9d2luZG93Lm1hdGNoTWVkaWE/LigiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpO2lmKCFGKXJldHVybjtjb25zdCBhZT1uZT0+cyhuZS5tYXRjaGVzKTtyZXR1cm4gRi5hZGRFdmVudExpc3RlbmVyPy4oImNoYW5nZSIsYWUpLCgpPT5GLnJlbW92ZUV2ZW50TGlzdGVuZXI/LigiY2hhbmdlIixhZSl9LFtdKSxZLnVzZUVmZmVjdCgoKT0+e2xldCBGPSExO3JldHVybihhc3luYygpPT57dHJ5e2NvbnN0IGFlPWF3YWl0IF92KCk7aWYoRilyZXR1cm47aWYoIWFlLmF1dGhlbnRpY2F0ZWR8fCFhZS5hbGxvd2VkKXtFKGFlKSxNKCJkZW5pZWQiKTtyZXR1cm59RShhZSksTSgicmVhZHkiKTt0cnl7Y29uc3QgbmU9YXdhaXQgcHYoKTtpZihGKXJldHVybjtsZXQgcWU9bnVsbDt0cnl7cWU9YXdhaXQgRGUoIi9hcGkvY29uZmlnIil9Y2F0Y2h7fWlmKEYpcmV0dXJuO1YocWUpLGNlKG5lLmFjY291bnRzLm1hcCgkZT0+KHthbGlhczokZS5hY2NvdW50X2FsaWFzLHBsYXRmb3JtOiRlLnBsYXRmb3JtLHBhcGVyOnFlPy5hY2NvdW50T3B0aW9ucz8uWyRlLnBsYXRmb3JtXT8uZmluZChqZT0+amUua2V5PT09JGUuYWNjb3VudF9hbGlhcyk/LmJyb2tlcl9lbnZpcm9ubWVudD09PSJwYXBlciJ9KSkpLHR0KG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSl9Y2F0Y2h7fXRyeXtjb25zdCBuZT1hd2FpdCB5digpO2lmKEYpcmV0dXJuO2tlKG5lLnN0YXR1cz09PSJyZWFkX2ZhaWxlZCI/bnVsbDpuZS5pdGVtcy5maWx0ZXIocWU9PnFlLnN0YXR1cz09PSJwZW5kaW5nIikubGVuZ3RoKX1jYXRjaHtGfHxrZShudWxsKX19Y2F0Y2goYWUpe2lmKEYpcmV0dXJuO2FlIGluc3RhbmNlb2YgRG8mJmFlLnN0YXR1cz09PTQwMT9NKCJkZW5pZWQiKTpNKG5lPT5uZT09PSJyZWFkeSI/bmU6ImVycm9yIil9fSkoKSwoKT0+e0Y9ITB9fSxbYXRdKSxZLnVzZUVmZmVjdCgoKT0+e2NvbnN0IEY9KCk9PntFKG51bGwpLE0oImRlbmllZCIpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInFzbC1wcml2YXRlLXNlc3Npb24taW52YWxpZCIsRiksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJxc2wtcHJpdmF0ZS1zZXNzaW9uLWludmFsaWQiLEYpfSxbXSk7Y29uc3QgTWU9WS51c2VDYWxsYmFjayhGPT57Y29uc3QgYWU9ey4uLnZlLmN1cnJlbnQsLi4uRn0sbmU9KCk9PntTKGFlKSxIZChhZSl9LHFlPUFvKCk7aWYocWUmJihhZS5wYWdlIT09dmUuY3VycmVudC5wYWdlfHxhZS5hY2NvdW50IT09dmUuY3VycmVudC5hY2NvdW50KSl7cWUoKS50aGVuKCRlPT57JGUmJm5lKCl9KTtyZXR1cm59bmUoKX0sW10pO1kudXNlRWZmZWN0KCgpPT57Y29uc3QgRj0oKT0+e2NvbnN0IGFlPWpkKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLG5lPUFvKCk7aWYobmUpe25lKCkudGhlbihxZT0+e3FlP1MoYWUpOkhkKHZlLmN1cnJlbnQpfSk7cmV0dXJufVMoYWUpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixGKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixGKX0sW10pO2NvbnN0IFc9YXN5bmMoKT0+e01vKCk7dHJ5e2F3YWl0IG5oKCIvYXBpL2xvZ291dCIse30pfWNhdGNoe313aW5kb3cubG9jYXRpb24uYXNzaWduKCIvbG9naW4iKX07aWYoWS51c2VFZmZlY3QoKCk9Pntkb2N1bWVudC50aXRsZT1gJHtaZChvLmxhbmd1YWdlLGBuYXYuJHtELnBhZ2V9YCl9IMK3IFF1YW50U3RyYXRlZ3lMYWJgfSxbby5sYW5ndWFnZSxELnBhZ2VdKSxUPT09ImxvYWRpbmciKXJldHVybiB5LmpzeChaaSx7bGFuZ3VhZ2U6by5sYW5ndWFnZSxjaGlsZHJlbjp5LmpzeCgibWFpbiIse2NsYXNzTmFtZToiYm9vdC1zY3JlZW4iLHJvbGU6InN0YXR1cyIsImFyaWEtbGl2ZSI6InBvbGl0ZSIsY2hpbGRyZW46eS5qc3goWGQse2hlaWdodDoyNCx3aWR0aDoyMDB9KX0pfSk7aWYoVD09PSJkZW5pZWQiKXJldHVybiB5LmpzeChaaSx7bGFuZ3VhZ2U6by5sYW5ndWFnZSxjaGlsZHJlbjp5LmpzeChRZCx7a2luZDoiZGVuaWVkIixub0FjY2Vzczp3Py5hdXRoZW50aWNhdGVkPT09ITAmJiF3LmFsbG93ZWR9KX0pO2lmKFQ9PT0iZXJyb3IiKXJldHVybiB5LmpzeChaaSx7bGFuZ3VhZ2U6by5sYW5ndWFnZSxjaGlsZHJlbjp5LmpzeChRZCx7a2luZDoiZXJyb3IiLG9uUmV0cnk6KCk9PlNlKEY9PkYrMSl9KX0pO2NvbnN0IHhlPXtzY29wZTpELnNjb3BlLG9wdGlvbnM6SCxzZXRTY29wZTpGPT5NZSh7c2NvcGU6Rn0pfTtyZXR1cm4geS5qc3goWmkse2xhbmd1YWdlOm8ubGFuZ3VhZ2UsY2hpbGRyZW46eS5qc3goV2QuUHJvdmlkZXIse3ZhbHVlOntwcmVmczpvLHNldFByZWZzOmVlLHJlc29sdmVkVGhlbWU6VGV9LGNoaWxkcmVuOnkuanN4KCRkLlByb3ZpZGVyLHt2YWx1ZTpPLGNoaWxkcmVuOnkuanN4KEZkLlByb3ZpZGVyLHt2YWx1ZTp4ZSxjaGlsZHJlbjp5LmpzeChJZC5Qcm92aWRlcix7dmFsdWU6TWUsY2hpbGRyZW46eS5qc3goanYse2NoaWxkcmVuOnkuanN4KHF2LHtwYWdlOkQucGFnZSx0b2RvQ291bnQ6aGUsc3ludGhldGljOnc/LnN5bnRoZXRpYz09PSEwLGxvZ2luOnc/LmxvZ2lufHxudWxsLHVwZGF0ZWRBdDpOZSxvbkxvZ291dDooKT0+e1coKX0sY2hpbGRyZW46eS5qc3hzKFkuU3VzcGVuc2Use2ZhbGxiYWNrOnkuanN4KFhkLHtoZWlnaHQ6MjQwfSksY2hpbGRyZW46W0QucGFnZT09PSJvdmVydmlldyImJnkuanN4KEd2LHt9KSxELnBhZ2U9PT0icGVyZm9ybWFuY2UiJiZ5LmpzeChYdix7fSksRC5wYWdlPT09ImRlY2lzaW9ucyImJnkuanN4KFF2LHt9KSxELnBhZ2U9PT0iYWNjb3VudHMiJiZ5LmpzeChrdix7YWNjb3VudDpELmFjY291bnQsdGFiOkQudGFifSksRC5wYWdlPT09InN0cmF0ZWdpZXMiJiZ5LmpzeChadix7fSksRC5wYWdlPT09ImhlYWx0aCImJnkuanN4KFZ2LHt9KV19KX0pfSl9KX0pfSl9KX0pfWNvbnN0IHJoPUtkKCk7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXQudGhlbWU9SmQocmgudGhlbWUsd2luZG93Lm1hdGNoTWVkaWE/LigiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/PyExKTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZz1yaC5sYW5ndWFnZT09PSJ6aCI/InpoLUNOIjoiZW4iO2NvbnN0IGtkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290Iik7a2QmJlhfLmNyZWF0ZVJvb3Qoa2QpLnJlbmRlcih5LmpzeChLdix7fSkpO2V4cG9ydHtsaCBhcyAkLGJ5IGFzIEEsQnYgYXMgQixfeSBhcyBDLFN5IGFzIEQseHkgYXMgRSxvaCBhcyBGLFJsIGFzIEcscHkgYXMgSCxfdiBhcyBJLFd2IGFzIEosdWggYXMgSyxuaCBhcyBMLFR5IGFzIE0sRG8gYXMgTixhaCBhcyBPLEV5IGFzIFAsUnYgYXMgUSx5eSBhcyBSLGd5IGFzIFMsRnYgYXMgVCxleSBhcyBVLEl2IGFzIFYsbHkgYXMgVyxQdiBhcyBYLEp2IGFzIFksbXYgYXMgWiwkdiBhcyBfLFBkIGFzIGEseG8gYXMgYTAsYXkgYXMgYTEsZHkgYXMgYTIsaHkgYXMgYTMsZnkgYXMgYTQsbnkgYXMgYTUsaXkgYXMgYixyeSBhcyBjLHV5IGFzIGQscnYgYXMgZSxYZCBhcyBmLHl2IGFzIGcsdHkgYXMgaCxBeSBhcyBpLHkgYXMgaixIYSBhcyBrLGN5IGFzIGwsdnkgYXMgbSxEZSBhcyBuLHB2IGFzIG8sQXYgYXMgcCxteSBhcyBxLFkgYXMgcix6eSBhcyBzLFJvIGFzIHQsVHQgYXMgdSxUdiBhcyB2LE12IGFzIHcsU3YgYXMgeCxveSBhcyB5LHN5IGFzIHp9Owo=" }, "/v2/assets/runtime_daily_contract-Cf8Nu1Te.js": { contentType: "text/javascript; charset=utf-8", base64: "Y29uc3Qgcz0iQW1lcmljYS9OZXdfWW9yayI7ZnVuY3Rpb24gdShlPURhdGUubm93KCkpe3JldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4tQ0EiLHt0aW1lWm9uZTpzLHllYXI6Im51bWVyaWMiLG1vbnRoOiIyLWRpZ2l0IixkYXk6IjItZGlnaXQifSkuZm9ybWF0KGUpfWNvbnN0IGQ9T2JqZWN0LmZyZWV6ZSh7cGxhdGZvcm06ImxvbmdicmlkZ2UiLHNlcnZpY2U6ImxvbmdicmlkZ2UtcXVhbnQtcGFwZXItc2VydmljZSIsc3RyYXRlZ3lfcHJvZmlsZToicnVzc2VsbF90b3A1MF9sZWFkZXJfcm90YXRpb24iLGFjY291bnRfc2NvcGU6InBhcGVyIix0YXJnZXRfa2V5OiJsb25nYnJpZGdlLXF1YW50LXBhcGVyLXNlcnZpY2V8cnVzc2VsbF90b3A1MF9sZWFkZXJfcm90YXRpb258cGFwZXIifSksYz1bIm5vX3N1Ym1pc3Npb24iLCJub19zaWduYWwiLCJub19yZWJhbGFuY2UiLCJmaWxsZWQiXSxhPVsiZmFpbGVkIiwiYmxvY2tlZCIsImVycm9yIl0sbD1bInVua25vd24iLCJyZWNvbmNpbGlhdGlvbl9yZXF1aXJlZCIsInN1Ym1pdHRlZCIsImJyb2tlcl9hY2tub3dsZWRnZWQiLCJwYXJ0aWFsbHlfZmlsbGVkIiwiY29uZmxpY3QiLCJpbnN1ZmZpY2llbnQiXTtmdW5jdGlvbiBfKGUpe2NvbnN0IHI9ZT8uZXZpZGVuY2UsaT1yP3IuZXJyb3JzX3ByZXNlbnQ6ZT8uZXJyb3JzX3ByZXNlbnQsbj1bZT8uYWN0aXZpdHksZT8ucmVwb3J0X3N0YXR1cyxyPy5leGVjdXRpb25fc3RhdHVzLHI/LnJlY2VpcHRfb3V0Y29tZV07aWYoZT8uaXNzdWU9PT0iZmFpbHVyZSIpcmV0dXJuImZhaWx1cmUiO2lmKHImJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCJyZWNlaXB0X3N0YXRlIikpe2NvbnN0IHQ9Wy4uLm4sci5yZWNlaXB0X2Jyb2tlcl9jb25maXJtYXRpb25dO2lmKGk9PT0hMHx8dC5zb21lKG89PlsiZmFpbGVkIiwiZmFpbHVyZSIsImVycm9yIiwiYmxvY2tlZCIsInJpc2tfYmxvY2tlZCIsImNhbmNlbGxlZCIsImNhbmNlbGVkIiwidGltZWRfb3V0Il0uaW5jbHVkZXMobykpKXJldHVybiJmYWlsdXJlIjtpZihyLnJlY2VpcHRfc3RhdGUhPT0idmFsaWQifHx0LnNvbWUobz0+WyJwZW5kaW5nX3JlY29uY2lsaWF0aW9uIiwicmVjb25jaWxpYXRpb25fcmVxdWlyZWQiLCJ1bmtub3duIiwidW5rbm93bl9vcmRlciJdLmluY2x1ZGVzKG8pKSlyZXR1cm4idW5jb25maXJtZWQifXJldHVybiBpPT09ITB8fG4uc29tZSh0PT5hLmluY2x1ZGVzKHQpKT8iZmFpbHVyZSI6ZT8uaXNzdWU9PT0idW5jb25maXJtZWQifHxpIT09ITF8fCFjLmluY2x1ZGVzKGU/LmFjdGl2aXR5KXx8bi5zbGljZSgxKS5zb21lKHQ9PmwuaW5jbHVkZXModCkpfHwocj8ub3JkZXJzX3BlbmRpbmdfY291bnR8fDApPjA/InVuY29uZmlybWVkIjpudWxsfWV4cG9ydHtkIGFzIFIsdSBhcyBhLF8gYXMgcn07Cg==" }, "/v2/assets/qsl-brand-icon.svg": { contentType: "image/svg+xml", base64: "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+CiAgPHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTQiIGZpbGw9IiMyNTYzRUIiLz4KICA8cGF0aCBkPSJNMTQgNDIgTDI2IDMwIEwzNCAzNiBMNTAgMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSI1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjIwIiByPSI0IiBmaWxsPSIjRkZGRkZGIi8+CiAgPHBhdGggZD0iTTE0IDUwIEg1MCIgc3Ryb2tlPSIjOTNDNUZEIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K" }, });