@nsshunt/stsoauth2plugin 0.1.10 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stsoauth2plugin.es.js +14 -6
- package/dist/stsoauth2plugin.umd.js +6 -6
- package/package.json +2 -2
- package/src/stsoauth2manager.ts +9 -0
- package/dist/assets/stsoauth2worker.56b3b966.js +0 -7
- package/types/Utils/CryptoUtils.d.ts +0 -7
- package/types/Utils/CryptoUtils.d.ts.map +0 -1
- package/types/Utils/QueryParams.d.ts +0 -8
- package/types/Utils/QueryParams.d.ts.map +0 -1
- package/types/index.d.ts +0 -6
- package/types/index.d.ts.map +0 -1
- package/types/index.test.d.ts +0 -1
- package/types/index.test.d.ts.map +0 -1
- package/types/stsStorage.d.ts +0 -22
- package/types/stsStorage.d.ts.map +0 -1
- package/types/stsoauth2manager.d.ts +0 -11
- package/types/stsoauth2manager.d.ts.map +0 -1
- package/types/stsoauth2types.d.ts +0 -89
- package/types/stsoauth2types.d.ts.map +0 -1
- package/types/stsoauth2worker.d.ts +0 -2
- package/types/stsoauth2worker.d.ts.map +0 -1
|
@@ -456,7 +456,7 @@ var common = setup;
|
|
|
456
456
|
} catch (error2) {
|
|
457
457
|
}
|
|
458
458
|
if (!r2 && typeof process !== "undefined" && "env" in process) {
|
|
459
|
-
r2 = {}.DEBUG;
|
|
459
|
+
r2 = { "DEPLOYMENT_BASEPATH": "/opt/runner", "DOTNET_NOLOGO": "1", "USER": "runner", "npm_config_always_auth": "", "npm_config_user_agent": "npm/8.11.0 node/v18.3.0 linux x64 workspaces/false ci/github-actions", "CI": "true", "GITHUB_ENV": "/home/runner/work/_temp/_runner_file_commands/set_env_5c4f6f18-1665-4638-b420-bcd02f665810", "PIPX_HOME": "/opt/pipx", "npm_node_execpath": "/opt/hostedtoolcache/node/18.3.0/x64/bin/node", "JAVA_HOME_8_X64": "/usr/lib/jvm/temurin-8-jdk-amd64", "NODE_AUTH_TOKEN": "XXXXX-XXXXX-XXXXX-XXXXX", "SHLVL": "1", "npm_config_noproxy": "", "HOME": "/home/runner", "RUNNER_TEMP": "/home/runner/work/_temp", "GITHUB_EVENT_PATH": "/home/runner/work/_temp/_github_workflow/event.json", "npm_package_json": "/home/runner/work/stsoauth2plugin/stsoauth2plugin/package.json", "JAVA_HOME_11_X64": "/usr/lib/jvm/temurin-11-jdk-amd64", "PIPX_BIN_DIR": "/opt/pipx_bin", "GRAALVM_11_ROOT": "/usr/local/graalvm/graalvm-ce-java11-22.1.0", "GITHUB_REPOSITORY_OWNER": "nsshunt", "GRADLE_HOME": "/usr/share/gradle-7.4.2", "HOMEBREW_PREFIX": "/home/linuxbrew/.linuxbrew", "ANDROID_NDK_LATEST_HOME": "/usr/local/lib/android/sdk/ndk/24.0.8215888", "GITHUB_RETENTION_DAYS": "90", "POWERSHELL_DISTRIBUTION_CHANNEL": "GitHub-Actions-ubuntu20", "AZURE_EXTENSION_DIR": "/opt/az/azcliextensions", "GITHUB_HEAD_REF": "", "npm_config_local_prefix": "/home/runner/work/stsoauth2plugin/stsoauth2plugin", "GITHUB_GRAPHQL_URL": "https://api.github.com/graphql", "COLOR": "0", "NVM_DIR": "/home/runner/.nvm", "npm_config_metrics_registry": "https://registry.npmjs.org/", "DOTNET_SKIP_FIRST_TIME_EXPERIENCE": "1", "JAVA_HOME_17_X64": "/usr/lib/jvm/temurin-17-jdk-amd64", "ImageVersion": "20220605.1", "RUNNER_OS": "Linux", "GITHUB_API_URL": "https://api.github.com", "SWIFT_PATH": "/usr/share/swift/usr/bin", "RUNNER_USER": "runner", "CHROMEWEBDRIVER": "/usr/local/share/chrome_driver", "JOURNAL_STREAM": "8:21834", "GITHUB_WORKFLOW": "Node.js Package", "_": "/opt/hostedtoolcache/node/18.3.0/x64/bin/npm", "npm_config_prefix": "/opt/hostedtoolcache/node/18.3.0/x64", "GITHUB_RUN_ID": "2483506035", "GOROOT_1_16_X64": "/opt/hostedtoolcache/go/1.16.15/x64", "npm_config_cache": "/home/runner/.npm", "GOROOT_1_17_X64": "/opt/hostedtoolcache/go/1.17.11/x64", "GITHUB_REF_TYPE": "branch", "BOOTSTRAP_HASKELL_NONINTERACTIVE": "1", "GITHUB_BASE_REF": "", "ImageOS": "ubuntu20", "PERFLOG_LOCATION_SETTING": "RUNNER_PERFLOG", "GOROOT_1_18_X64": "/opt/hostedtoolcache/go/1.18.3/x64", "GITHUB_ACTION_REPOSITORY": "", "npm_config_node_gyp": "/opt/hostedtoolcache/node/18.3.0/x64/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js", "PATH": "/home/runner/work/stsoauth2plugin/stsoauth2plugin/node_modules/.bin:/home/runner/work/stsoauth2plugin/node_modules/.bin:/home/runner/work/node_modules/.bin:/home/runner/node_modules/.bin:/home/node_modules/.bin:/node_modules/.bin:/opt/hostedtoolcache/node/18.3.0/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/opt/hostedtoolcache/node/18.3.0/x64/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin", "ANT_HOME": "/usr/share/ant", "DOTNET_MULTILEVEL_LOOKUP": "0", "RUNNER_TRACKING_ID": "github_9e0a5c7a-978f-4fce-be9f-1597a45d3f8d", "INVOCATION_ID": "82315040f6cb4b1891b8755075dbe749", "HOMEBREW_CELLAR": "/home/linuxbrew/.linuxbrew/Cellar", "NPM_CONFIG_USERCONFIG": "/home/runner/work/_temp/.npmrc", "RUNNER_TOOL_CACHE": "/opt/hostedtoolcache", "NODE": "/opt/hostedtoolcache/node/18.3.0/x64/bin/node", "npm_package_name": "@nsshunt/stsoauth2plugin", "GITHUB_ACTION": "__run_2", "GITHUB_RUN_NUMBER": "24", "RUNNER_ARCH": "X64", "AGENT_TOOLSDIRECTORY": "/opt/hostedtoolcache", "LANG": "C.UTF-8", "VCPKG_INSTALLATION_ROOT": "/usr/local/share/vcpkg", "CONDA": "/usr/share/miniconda", "RUNNER_NAME": "Hosted Agent", "XDG_CONFIG_HOME": "/home/runner/.config", "GITHUB_REF_NAME": "main", "GITHUB_REPOSITORY": "nsshunt/stsoauth2plugin", "npm_lifecycle_script": "vite build", "ANDROID_NDK_ROOT": "/usr/local/lib/android/sdk/ndk-bundle", "GITHUB_ACTION_REF": "", "DEBIAN_FRONTEND": "noninteractive", "GITHUB_ACTIONS": "true", "npm_package_version": "0.1.13", "npm_lifecycle_event": "build", "GITHUB_REF_PROTECTED": "false", "GITHUB_WORKSPACE": "/home/runner/work/stsoauth2plugin/stsoauth2plugin", "ACCEPT_EULA": "Y", "GITHUB_JOB": "publish-npm", "RUNNER_PERFLOG": "/home/runner/perflog", "GITHUB_SHA": "f6598d18861c6084a30243c9d6a9d0200e1f9e96", "GITHUB_RUN_ATTEMPT": "1", "GITHUB_REF": "refs/heads/main", "GITHUB_ACTOR": "nsshunt", "ANDROID_SDK_ROOT": "/usr/local/lib/android/sdk", "LEIN_HOME": "/usr/local/lib/lein", "npm_config_globalconfig": "/opt/hostedtoolcache/node/18.3.0/x64/etc/npmrc", "npm_config_init_module": "/home/runner/.npm-init.js", "GITHUB_PATH": "/home/runner/work/_temp/_runner_file_commands/add_path_5c4f6f18-1665-4638-b420-bcd02f665810", "JAVA_HOME": "/usr/lib/jvm/temurin-11-jdk-amd64", "PWD": "/home/runner/work/stsoauth2plugin/stsoauth2plugin", "RUNNER_WORKSPACE": "/home/runner/work/stsoauth2plugin", "npm_execpath": "/opt/hostedtoolcache/node/18.3.0/x64/lib/node_modules/npm/bin/npm-cli.js", "HOMEBREW_CLEANUP_PERIODIC_FULL_DAYS": "3650", "GITHUB_EVENT_NAME": "push", "HOMEBREW_NO_AUTO_UPDATE": "1", "ANDROID_HOME": "/usr/local/lib/android/sdk", "GITHUB_SERVER_URL": "https://github.com", "GECKOWEBDRIVER": "/usr/local/share/gecko_driver", "LEIN_JAR": "/usr/local/lib/lein/self-installs/leiningen-2.9.8-standalone.jar", "npm_config_global_prefix": "/opt/hostedtoolcache/node/18.3.0/x64", "HOMEBREW_REPOSITORY": "/home/linuxbrew/.linuxbrew/Homebrew", "npm_command": "run-script", "SGX_AESM_ADDR": "1", "CHROME_BIN": "/usr/bin/google-chrome", "SELENIUM_JAR_PATH": "/usr/share/java/selenium-server.jar", "ANDROID_NDK_HOME": "/usr/local/lib/android/sdk/ndk-bundle", "GITHUB_STEP_SUMMARY": "/home/runner/work/_temp/_runner_file_commands/step_summary_5c4f6f18-1665-4638-b420-bcd02f665810", "INIT_CWD": "/home/runner/work/stsoauth2plugin/stsoauth2plugin", "EDITOR": "vi", "NODE_ENV": "production" }.DEBUG;
|
|
460
460
|
}
|
|
461
461
|
return r2;
|
|
462
462
|
}
|
|
@@ -7019,7 +7019,7 @@ function remove(name, attributes) {
|
|
|
7019
7019
|
set(name, "", __assign(__assign({}, attributes), { expires: -1 }));
|
|
7020
7020
|
}
|
|
7021
7021
|
var remove_1 = remove;
|
|
7022
|
-
const debug$1 = Debug(`proc:${
|
|
7022
|
+
const debug$1 = Debug(`proc:${0}:storage.ts`);
|
|
7023
7023
|
var ClientStorageType = /* @__PURE__ */ ((ClientStorageType2) => {
|
|
7024
7024
|
ClientStorageType2["LOCAL_STORAGE"] = "LocalStorage";
|
|
7025
7025
|
ClientStorageType2["SESSION_STORAGE"] = "SessionStorage";
|
|
@@ -7201,7 +7201,17 @@ function o(e2, r2) {
|
|
|
7201
7201
|
}
|
|
7202
7202
|
}
|
|
7203
7203
|
n.prototype = new Error(), n.prototype.name = "InvalidTokenError";
|
|
7204
|
-
const debug = Debug(`proc:${process.pid}:stsoauth2manager.ts`);
|
|
7204
|
+
const encodedJs = "dmFyIGlkPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxhZD1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIgdWQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIFhpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIF9kPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbGQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgSHQ9KGVlLHNlLGFlKT0+c2UgaW4gZWU/aWQoZWUsc2Use2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmFlfSk6ZWVbc2VdPWFlLFk9KGVlLHNlKT0+e2Zvcih2YXIgYWUgaW4gc2V8fChzZT17fSkpX2QuY2FsbChzZSxhZSkmJkh0KGVlLGFlLHNlW2FlXSk7aWYoWGkpZm9yKHZhciBhZSBvZiBYaShzZSkpbGQuY2FsbChzZSxhZSkmJkh0KGVlLGFlLHNlW2FlXSk7cmV0dXJuIGVlfSxsZT0oZWUsc2UpPT5hZChlZSx1ZChzZSkpO3ZhciBScj0oZWUsc2UsYWUpPT4oSHQoZWUsdHlwZW9mIHNlIT0ic3ltYm9sIj9zZSsiIjpzZSxhZSksYWUpLCRpPShlZSxzZSxhZSk9PntpZighc2UuaGFzKGVlKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCAiK2FlKX07dmFyIFg9KGVlLHNlLGFlKT0+KCRpKGVlLHNlLCJyZWFkIGZyb20gcHJpdmF0ZSBmaWVsZCIpLGFlP2FlLmNhbGwoZWUpOnNlLmdldChlZSkpLEllPShlZSxzZSxhZSk9PntpZihzZS5oYXMoZWUpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGFkZCB0aGUgc2FtZSBwcml2YXRlIG1lbWJlciBtb3JlIHRoYW4gb25jZSIpO3NlIGluc3RhbmNlb2YgV2Vha1NldD9zZS5hZGQoZWUpOnNlLnNldChlZSxhZSl9LHVlPShlZSxzZSxhZSxfbik9PigkaShlZSxzZSwid3JpdGUgdG8gcHJpdmF0ZSBmaWVsZCIpLF9uP19uLmNhbGwoZWUsYWUpOnNlLnNldChlZSxhZSksYWUpOyhmdW5jdGlvbigpe3ZhciB4bixVbixCZSxIbixQcixObyxqZSxmbix2bix4ZSxGbixnbyxubix3cixHcixDcixfcix5cixMcixCcjsidXNlIHN0cmljdCI7dmFyIGVlPXR5cGVvZiBnbG9iYWxUaGlzIT0idW5kZWZpbmVkIj9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsIT0idW5kZWZpbmVkIj9nbG9iYWw6dHlwZW9mIHNlbGYhPSJ1bmRlZmluZWQiP3NlbGY6e30sc2U9e2V4cG9ydHM6e319LGFlPTFlMyxfbj1hZSo2MCxKbj1fbio2MCxTbj1KbioyNCxqaT1Tbio3LHhpPVNuKjM2NS4yNSxGaT1mdW5jdGlvbihlLG4pe249bnx8e307dmFyIHI9dHlwZW9mIGU7aWYocj09PSJzdHJpbmciJiZlLmxlbmd0aD4wKXJldHVybiBWaShlKTtpZihyPT09Im51bWJlciImJmlzRmluaXRlKGUpKXJldHVybiBuLmxvbmc/V2koZSk6S2koZSk7dGhyb3cgbmV3IEVycm9yKCJ2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIHZhbGlkIG51bWJlci4gdmFsPSIrSlNPTi5zdHJpbmdpZnkoZSkpfTtmdW5jdGlvbiBWaShlKXtpZihlPVN0cmluZyhlKSwhKGUubGVuZ3RoPjEwMCkpe3ZhciBuPS9eKC0/KD86XGQrKT9cLj9cZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx3ZWVrcz98d3x5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhlKTtpZighIW4pe3ZhciByPXBhcnNlRmxvYXQoblsxXSksbz0oblsyXXx8Im1zIikudG9Mb3dlckNhc2UoKTtzd2l0Y2gobyl7Y2FzZSJ5ZWFycyI6Y2FzZSJ5ZWFyIjpjYXNlInlycyI6Y2FzZSJ5ciI6Y2FzZSJ5IjpyZXR1cm4gcip4aTtjYXNlIndlZWtzIjpjYXNlIndlZWsiOmNhc2UidyI6cmV0dXJuIHIqamk7Y2FzZSJkYXlzIjpjYXNlImRheSI6Y2FzZSJkIjpyZXR1cm4gcipTbjtjYXNlImhvdXJzIjpjYXNlImhvdXIiOmNhc2UiaHJzIjpjYXNlImhyIjpjYXNlImgiOnJldHVybiByKkpuO2Nhc2UibWludXRlcyI6Y2FzZSJtaW51dGUiOmNhc2UibWlucyI6Y2FzZSJtaW4iOmNhc2UibSI6cmV0dXJuIHIqX247Y2FzZSJzZWNvbmRzIjpjYXNlInNlY29uZCI6Y2FzZSJzZWNzIjpjYXNlInNlYyI6Y2FzZSJzIjpyZXR1cm4gciphZTtjYXNlIm1pbGxpc2Vjb25kcyI6Y2FzZSJtaWxsaXNlY29uZCI6Y2FzZSJtc2VjcyI6Y2FzZSJtc2VjIjpjYXNlIm1zIjpyZXR1cm4gcjtkZWZhdWx0OnJldHVybn19fX1mdW5jdGlvbiBLaShlKXt2YXIgbj1NYXRoLmFicyhlKTtyZXR1cm4gbj49U24/TWF0aC5yb3VuZChlL1NuKSsiZCI6bj49Sm4/TWF0aC5yb3VuZChlL0puKSsiaCI6bj49X24/TWF0aC5yb3VuZChlL19uKSsibSI6bj49YWU/TWF0aC5yb3VuZChlL2FlKSsicyI6ZSsibXMifWZ1bmN0aW9uIFdpKGUpe3ZhciBuPU1hdGguYWJzKGUpO3JldHVybiBuPj1Tbj9XcihlLG4sU24sImRheSIpOm4+PUpuP1dyKGUsbixKbiwiaG91ciIpOm4+PV9uP1dyKGUsbixfbiwibWludXRlIik6bj49YWU/V3IoZSxuLGFlLCJzZWNvbmQiKTplKyIgbXMifWZ1bmN0aW9uIFdyKGUsbixyLG8pe3ZhciB0PW4+PXIqMS41O3JldHVybiBNYXRoLnJvdW5kKGUvcikrIiAiK28rKHQ/InMiOiIiKX1mdW5jdGlvbiBZaShlKXtyLmRlYnVnPXIsci5kZWZhdWx0PXIsci5jb2VyY2U9YyxyLmRpc2FibGU9cyxyLmVuYWJsZT10LHIuZW5hYmxlZD1pLHIuaHVtYW5pemU9Rmksci5kZXN0cm95PW0sT2JqZWN0LmtleXMoZSkuZm9yRWFjaChhPT57clthXT1lW2FdfSksci5uYW1lcz1bXSxyLnNraXBzPVtdLHIuZm9ybWF0dGVycz17fTtmdW5jdGlvbiBuKGEpe2xldCBoPTA7Zm9yKGxldCBPPTA7TzxhLmxlbmd0aDtPKyspaD0oaDw8NSktaCthLmNoYXJDb2RlQXQoTyksaHw9MDtyZXR1cm4gci5jb2xvcnNbTWF0aC5hYnMoaCklci5jb2xvcnMubGVuZ3RoXX1yLnNlbGVjdENvbG9yPW47ZnVuY3Rpb24gcihhKXtsZXQgaCxPPW51bGwsRCx3O2Z1bmN0aW9uIEMoLi4uVCl7aWYoIUMuZW5hYmxlZClyZXR1cm47Y29uc3QgZj1DLEE9TnVtYmVyKG5ldyBEYXRlKSxVPUEtKGh8fEEpO2YuZGlmZj1VLGYucHJldj1oLGYuY3Vycj1BLGg9QSxUWzBdPXIuY29lcmNlKFRbMF0pLHR5cGVvZiBUWzBdIT0ic3RyaW5nIiYmVC51bnNoaWZ0KCIlTyIpO2xldCBTPTA7VFswXT1UWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLChOLEgpPT57aWYoTj09PSIlJSIpcmV0dXJuIiUiO1MrKztjb25zdCBHPXIuZm9ybWF0dGVyc1tIXTtpZih0eXBlb2YgRz09ImZ1bmN0aW9uIil7Y29uc3QgRj1UW1NdO049Ry5jYWxsKGYsRiksVC5zcGxpY2UoUywxKSxTLS19cmV0dXJuIE59KSxyLmZvcm1hdEFyZ3MuY2FsbChmLFQpLChmLmxvZ3x8ci5sb2cpLmFwcGx5KGYsVCl9cmV0dXJuIEMubmFtZXNwYWNlPWEsQy51c2VDb2xvcnM9ci51c2VDb2xvcnMoKSxDLmNvbG9yPXIuc2VsZWN0Q29sb3IoYSksQy5leHRlbmQ9byxDLmRlc3Ryb3k9ci5kZXN0cm95LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDLCJlbmFibGVkIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITEsZ2V0OigpPT5PIT09bnVsbD9POihEIT09ci5uYW1lc3BhY2VzJiYoRD1yLm5hbWVzcGFjZXMsdz1yLmVuYWJsZWQoYSkpLHcpLHNldDpUPT57Tz1UfX0pLHR5cGVvZiByLmluaXQ9PSJmdW5jdGlvbiImJnIuaW5pdChDKSxDfWZ1bmN0aW9uIG8oYSxoKXtjb25zdCBPPXIodGhpcy5uYW1lc3BhY2UrKHR5cGVvZiBoPT0idW5kZWZpbmVkIj8iOiI6aCkrYSk7cmV0dXJuIE8ubG9nPXRoaXMubG9nLE99ZnVuY3Rpb24gdChhKXtyLnNhdmUoYSksci5uYW1lc3BhY2VzPWEsci5uYW1lcz1bXSxyLnNraXBzPVtdO2xldCBoO2NvbnN0IE89KHR5cGVvZiBhPT0ic3RyaW5nIj9hOiIiKS5zcGxpdCgvW1xzLF0rLyksRD1PLmxlbmd0aDtmb3IoaD0wO2g8RDtoKyspIU9baF18fChhPU9baF0ucmVwbGFjZSgvXCovZywiLio/IiksYVswXT09PSItIj9yLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgiXiIrYS5zbGljZSgxKSsiJCIpKTpyLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgiXiIrYSsiJCIpKSl9ZnVuY3Rpb24gcygpe2NvbnN0IGE9Wy4uLnIubmFtZXMubWFwKGwpLC4uLnIuc2tpcHMubWFwKGwpLm1hcChoPT4iLSIraCldLmpvaW4oIiwiKTtyZXR1cm4gci5lbmFibGUoIiIpLGF9ZnVuY3Rpb24gaShhKXtpZihhW2EubGVuZ3RoLTFdPT09IioiKXJldHVybiEwO2xldCBoLE87Zm9yKGg9MCxPPXIuc2tpcHMubGVuZ3RoO2g8TztoKyspaWYoci5za2lwc1toXS50ZXN0KGEpKXJldHVybiExO2ZvcihoPTAsTz1yLm5hbWVzLmxlbmd0aDtoPE87aCsrKWlmKHIubmFtZXNbaF0udGVzdChhKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBsKGEpe3JldHVybiBhLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsYS50b1N0cmluZygpLmxlbmd0aC0yKS5yZXBsYWNlKC9cLlwqXD8kLywiKiIpfWZ1bmN0aW9uIGMoYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBFcnJvcj9hLnN0YWNrfHxhLm1lc3NhZ2U6YX1mdW5jdGlvbiBtKCl7Y29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIil9cmV0dXJuIHIuZW5hYmxlKHIubG9hZCgpKSxyfXZhciBKaT1ZaTsoZnVuY3Rpb24oZSxuKXtuLmZvcm1hdEFyZ3M9byxuLnNhdmU9dCxuLmxvYWQ9cyxuLnVzZUNvbG9ycz1yLG4uc3RvcmFnZT1pKCksbi5kZXN0cm95PSgoKT0+e2xldCBjPSExO3JldHVybigpPT57Y3x8KGM9ITAsY29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIikpfX0pKCksbi5jb2xvcnM9WyIjMDAwMENDIiwiIzAwMDBGRiIsIiMwMDMzQ0MiLCIjMDAzM0ZGIiwiIzAwNjZDQyIsIiMwMDY2RkYiLCIjMDA5OUNDIiwiIzAwOTlGRiIsIiMwMENDMDAiLCIjMDBDQzMzIiwiIzAwQ0M2NiIsIiMwMENDOTkiLCIjMDBDQ0NDIiwiIzAwQ0NGRiIsIiMzMzAwQ0MiLCIjMzMwMEZGIiwiIzMzMzNDQyIsIiMzMzMzRkYiLCIjMzM2NkNDIiwiIzMzNjZGRiIsIiMzMzk5Q0MiLCIjMzM5OUZGIiwiIzMzQ0MwMCIsIiMzM0NDMzMiLCIjMzNDQzY2IiwiIzMzQ0M5OSIsIiMzM0NDQ0MiLCIjMzNDQ0ZGIiwiIzY2MDBDQyIsIiM2NjAwRkYiLCIjNjYzM0NDIiwiIzY2MzNGRiIsIiM2NkNDMDAiLCIjNjZDQzMzIiwiIzk5MDBDQyIsIiM5OTAwRkYiLCIjOTkzM0NDIiwiIzk5MzNGRiIsIiM5OUNDMDAiLCIjOTlDQzMzIiwiI0NDMDAwMCIsIiNDQzAwMzMiLCIjQ0MwMDY2IiwiI0NDMDA5OSIsIiNDQzAwQ0MiLCIjQ0MwMEZGIiwiI0NDMzMwMCIsIiNDQzMzMzMiLCIjQ0MzMzY2IiwiI0NDMzM5OSIsIiNDQzMzQ0MiLCIjQ0MzM0ZGIiwiI0NDNjYwMCIsIiNDQzY2MzMiLCIjQ0M5OTAwIiwiI0NDOTkzMyIsIiNDQ0NDMDAiLCIjQ0NDQzMzIiwiI0ZGMDAwMCIsIiNGRjAwMzMiLCIjRkYwMDY2IiwiI0ZGMDA5OSIsIiNGRjAwQ0MiLCIjRkYwMEZGIiwiI0ZGMzMwMCIsIiNGRjMzMzMiLCIjRkYzMzY2IiwiI0ZGMzM5OSIsIiNGRjMzQ0MiLCIjRkYzM0ZGIiwiI0ZGNjYwMCIsIiNGRjY2MzMiLCIjRkY5OTAwIiwiI0ZGOTkzMyIsIiNGRkNDMDAiLCIjRkZDQzMzIl07ZnVuY3Rpb24gcigpe3JldHVybiB0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmd2luZG93LnByb2Nlc3MmJih3aW5kb3cucHJvY2Vzcy50eXBlPT09InJlbmRlcmVyInx8d2luZG93LnByb2Nlc3MuX19ud2pzKT8hMDp0eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVwvKFxkKykvKT8hMTp0eXBlb2YgZG9jdW1lbnQhPSJ1bmRlZmluZWQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fHR5cGVvZiB3aW5kb3chPSJ1bmRlZmluZWQiJiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHx0eXBlb2YgbmF2aWdhdG9yIT0idW5kZWZpbmVkIiYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pJiZwYXJzZUludChSZWdFeHAuJDEsMTApPj0zMXx8dHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcLyhcZCspLyl9ZnVuY3Rpb24gbyhjKXtpZihjWzBdPSh0aGlzLnVzZUNvbG9ycz8iJWMiOiIiKSt0aGlzLm5hbWVzcGFjZSsodGhpcy51c2VDb2xvcnM/IiAlYyI6IiAiKStjWzBdKyh0aGlzLnVzZUNvbG9ycz8iJWMgIjoiICIpKyIrIitlLmV4cG9ydHMuaHVtYW5pemUodGhpcy5kaWZmKSwhdGhpcy51c2VDb2xvcnMpcmV0dXJuO2NvbnN0IG09ImNvbG9yOiAiK3RoaXMuY29sb3I7Yy5zcGxpY2UoMSwwLG0sImNvbG9yOiBpbmhlcml0Iik7bGV0IGE9MCxoPTA7Y1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csTz0+e08hPT0iJSUiJiYoYSsrLE89PT0iJWMiJiYoaD1hKSl9KSxjLnNwbGljZShoLDAsbSl9bi5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pO2Z1bmN0aW9uIHQoYyl7dHJ5e2M/bi5zdG9yYWdlLnNldEl0ZW0oImRlYnVnIixjKTpuLnN0b3JhZ2UucmVtb3ZlSXRlbSgiZGVidWciKX1jYXRjaHt9fWZ1bmN0aW9uIHMoKXtsZXQgYzt0cnl7Yz1uLnN0b3JhZ2UuZ2V0SXRlbSgiZGVidWciKX1jYXRjaHt9cmV0dXJuIWMmJnR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmImVudiJpbiBwcm9jZXNzJiYoYz17REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uREVCVUcpLGN9ZnVuY3Rpb24gaSgpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoe319ZS5leHBvcnRzPUppKG4pO2NvbnN0e2Zvcm1hdHRlcnM6bH09ZS5leHBvcnRzO2wuaj1mdW5jdGlvbihjKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGMpfWNhdGNoKG0pe3JldHVybiJbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogIittLm1lc3NhZ2V9fX0pKHNlLHNlLmV4cG9ydHMpO3ZhciB2dD1zZS5leHBvcnRzLEhvPXtleHBvcnRzOnt9fSxEdD1mdW5jdGlvbihuLHIpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCkscz0wO3M8dC5sZW5ndGg7cysrKXRbc109YXJndW1lbnRzW3NdO3JldHVybiBuLmFwcGx5KHIsdCl9fSx6aT1EdCx2bz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLERvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj12by5jYWxsKG4pO3JldHVybiBlW3JdfHwoZVtyXT1yLnNsaWNlKDgsLTEpLnRvTG93ZXJDYXNlKCkpfX0oT2JqZWN0LmNyZWF0ZShudWxsKSk7ZnVuY3Rpb24gUG4oZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHIpe3JldHVybiBEbyhyKT09PWV9fWZ1bmN0aW9uIFNvKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfWZ1bmN0aW9uIFlyKGUpe3JldHVybiB0eXBlb2YgZT09InVuZGVmaW5lZCJ9ZnVuY3Rpb24gcWkoZSl7cmV0dXJuIGUhPT1udWxsJiYhWXIoZSkmJmUuY29uc3RydWN0b3IhPT1udWxsJiYhWXIoZS5jb25zdHJ1Y3RvcikmJnR5cGVvZiBlLmNvbnN0cnVjdG9yLmlzQnVmZmVyPT0iZnVuY3Rpb24iJiZlLmNvbnN0cnVjdG9yLmlzQnVmZmVyKGUpfXZhciBTdD1QbigiQXJyYXlCdWZmZXIiKTtmdW5jdGlvbiBRaShlKXt2YXIgbjtyZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyIT0idW5kZWZpbmVkIiYmQXJyYXlCdWZmZXIuaXNWaWV3P249QXJyYXlCdWZmZXIuaXNWaWV3KGUpOm49ZSYmZS5idWZmZXImJlN0KGUuYnVmZmVyKSxufWZ1bmN0aW9uIFppKGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyJ9ZnVuY3Rpb24gZWEoZSl7cmV0dXJuIHR5cGVvZiBlPT0ibnVtYmVyIn1mdW5jdGlvbiBQdChlKXtyZXR1cm4gZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0In1mdW5jdGlvbiBKcihlKXtpZihEbyhlKSE9PSJvYmplY3QiKXJldHVybiExO3ZhciBuPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gbj09PW51bGx8fG49PT1PYmplY3QucHJvdG90eXBlfXZhciBuYT1QbigiRGF0ZSIpLHJhPVBuKCJGaWxlIiksb2E9UG4oIkJsb2IiKSx0YT1QbigiRmlsZUxpc3QiKTtmdW5jdGlvbiBQbyhlKXtyZXR1cm4gdm8uY2FsbChlKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9ZnVuY3Rpb24gc2EoZSl7cmV0dXJuIFB0KGUpJiZQbyhlLnBpcGUpfWZ1bmN0aW9uIGlhKGUpe3ZhciBuPSJbb2JqZWN0IEZvcm1EYXRhXSI7cmV0dXJuIGUmJih0eXBlb2YgRm9ybURhdGE9PSJmdW5jdGlvbiImJmUgaW5zdGFuY2VvZiBGb3JtRGF0YXx8dm8uY2FsbChlKT09PW58fFBvKGUudG9TdHJpbmcpJiZlLnRvU3RyaW5nKCk9PT1uKX12YXIgYWE9UG4oIlVSTFNlYXJjaFBhcmFtcyIpO2Z1bmN0aW9uIHVhKGUpe3JldHVybiBlLnRyaW0/ZS50cmltKCk6ZS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9ZnVuY3Rpb24gX2EoKXtyZXR1cm4gdHlwZW9mIG5hdmlnYXRvciE9InVuZGVmaW5lZCImJihuYXZpZ2F0b3IucHJvZHVjdD09PSJSZWFjdE5hdGl2ZSJ8fG5hdmlnYXRvci5wcm9kdWN0PT09Ik5hdGl2ZVNjcmlwdCJ8fG5hdmlnYXRvci5wcm9kdWN0PT09Ik5TIik/ITE6dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCImJnR5cGVvZiBkb2N1bWVudCE9InVuZGVmaW5lZCJ9ZnVuY3Rpb24gd28oZSxuKXtpZighKGU9PT1udWxsfHx0eXBlb2YgZT09InVuZGVmaW5lZCIpKWlmKHR5cGVvZiBlIT0ib2JqZWN0IiYmKGU9W2VdKSxTbyhlKSlmb3IodmFyIHI9MCxvPWUubGVuZ3RoO3I8bztyKyspbi5jYWxsKG51bGwsZVtyXSxyLGUpO2Vsc2UgZm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJm4uY2FsbChudWxsLGVbdF0sdCxlKX1mdW5jdGlvbiBHbygpe3ZhciBlPXt9O2Z1bmN0aW9uIG4odCxzKXtKcihlW3NdKSYmSnIodCk/ZVtzXT1HbyhlW3NdLHQpOkpyKHQpP2Vbc109R28oe30sdCk6U28odCk/ZVtzXT10LnNsaWNlKCk6ZVtzXT10fWZvcih2YXIgcj0wLG89YXJndW1lbnRzLmxlbmd0aDtyPG87cisrKXdvKGFyZ3VtZW50c1tyXSxuKTtyZXR1cm4gZX1mdW5jdGlvbiBsYShlLG4scil7cmV0dXJuIHdvKG4sZnVuY3Rpb24odCxzKXtyJiZ0eXBlb2YgdD09ImZ1bmN0aW9uIj9lW3NdPXppKHQscik6ZVtzXT10fSksZX1mdW5jdGlvbiBjYShlKXtyZXR1cm4gZS5jaGFyQ29kZUF0KDApPT09NjUyNzkmJihlPWUuc2xpY2UoMSkpLGV9ZnVuY3Rpb24gZGEoZSxuLHIsbyl7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSxvKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLHImJk9iamVjdC5hc3NpZ24oZS5wcm90b3R5cGUscil9ZnVuY3Rpb24gaGEoZSxuLHIpe3ZhciBvLHQscyxpPXt9O249bnx8e307ZG97Zm9yKG89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSksdD1vLmxlbmd0aDt0LS0gPjA7KXM9b1t0XSxpW3NdfHwobltzXT1lW3NdLGlbc109ITApO2U9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpfXdoaWxlKGUmJighcnx8cihlLG4pKSYmZSE9PU9iamVjdC5wcm90b3R5cGUpO3JldHVybiBufWZ1bmN0aW9uIG1hKGUsbixyKXtlPVN0cmluZyhlKSwocj09PXZvaWQgMHx8cj5lLmxlbmd0aCkmJihyPWUubGVuZ3RoKSxyLT1uLmxlbmd0aDt2YXIgbz1lLmluZGV4T2YobixyKTtyZXR1cm4gbyE9PS0xJiZvPT09cn1mdW5jdGlvbiBwYShlKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgbj1lLmxlbmd0aDtpZihZcihuKSlyZXR1cm4gbnVsbDtmb3IodmFyIHI9bmV3IEFycmF5KG4pO24tLSA+MDspcltuXT1lW25dO3JldHVybiByfXZhciBFYT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIGUmJm4gaW5zdGFuY2VvZiBlfX0odHlwZW9mIFVpbnQ4QXJyYXkhPSJ1bmRlZmluZWQiJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YoVWludDhBcnJheSkpLHZlPXtpc0FycmF5OlNvLGlzQXJyYXlCdWZmZXI6U3QsaXNCdWZmZXI6cWksaXNGb3JtRGF0YTppYSxpc0FycmF5QnVmZmVyVmlldzpRaSxpc1N0cmluZzpaaSxpc051bWJlcjplYSxpc09iamVjdDpQdCxpc1BsYWluT2JqZWN0OkpyLGlzVW5kZWZpbmVkOllyLGlzRGF0ZTpuYSxpc0ZpbGU6cmEsaXNCbG9iOm9hLGlzRnVuY3Rpb246UG8saXNTdHJlYW06c2EsaXNVUkxTZWFyY2hQYXJhbXM6YWEsaXNTdGFuZGFyZEJyb3dzZXJFbnY6X2EsZm9yRWFjaDp3byxtZXJnZTpHbyxleHRlbmQ6bGEsdHJpbTp1YSxzdHJpcEJPTTpjYSxpbmhlcml0czpkYSx0b0ZsYXRPYmplY3Q6aGEsa2luZE9mOkRvLGtpbmRPZlRlc3Q6UG4sZW5kc1dpdGg6bWEsdG9BcnJheTpwYSxpc1R5cGVkQXJyYXk6RWEsaXNGaWxlTGlzdDp0YX0sem49dmU7ZnVuY3Rpb24gd3QoZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBsYWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpLnJlcGxhY2UoLyUyMC9nLCIrIikucmVwbGFjZSgvJTVCL2dpLCJbIikucmVwbGFjZSgvJTVEL2dpLCJdIil9dmFyIEd0PWZ1bmN0aW9uKG4scixvKXtpZighcilyZXR1cm4gbjt2YXIgdDtpZihvKXQ9byhyKTtlbHNlIGlmKHpuLmlzVVJMU2VhcmNoUGFyYW1zKHIpKXQ9ci50b1N0cmluZygpO2Vsc2V7dmFyIHM9W107em4uZm9yRWFjaChyLGZ1bmN0aW9uKGMsbSl7Yz09PW51bGx8fHR5cGVvZiBjPT0idW5kZWZpbmVkInx8KHpuLmlzQXJyYXkoYyk/bT1tKyJbXSI6Yz1bY10sem4uZm9yRWFjaChjLGZ1bmN0aW9uKGgpe3puLmlzRGF0ZShoKT9oPWgudG9JU09TdHJpbmcoKTp6bi5pc09iamVjdChoKSYmKGg9SlNPTi5zdHJpbmdpZnkoaCkpLHMucHVzaCh3dChtKSsiPSIrd3QoaCkpfSkpfSksdD1zLmpvaW4oIiYiKX1pZih0KXt2YXIgaT1uLmluZGV4T2YoIiMiKTtpIT09LTEmJihuPW4uc2xpY2UoMCxpKSksbis9KG4uaW5kZXhPZigiPyIpPT09LTE/Ij8iOiImIikrdH1yZXR1cm4gbn0sZmE9dmU7ZnVuY3Rpb24genIoKXt0aGlzLmhhbmRsZXJzPVtdfXpyLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24obixyLG8pe3JldHVybiB0aGlzLmhhbmRsZXJzLnB1c2goe2Z1bGZpbGxlZDpuLHJlamVjdGVkOnIsc3luY2hyb25vdXM6bz9vLnN5bmNocm9ub3VzOiExLHJ1bldoZW46bz9vLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LHpyLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihuKXt0aGlzLmhhbmRsZXJzW25dJiYodGhpcy5oYW5kbGVyc1tuXT1udWxsKX0senIucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24obil7ZmEuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKG8pe28hPT1udWxsJiZuKG8pfSl9O3ZhciBSYT16cixPYT12ZSxUYT1mdW5jdGlvbihuLHIpe09hLmZvckVhY2gobixmdW5jdGlvbih0LHMpe3MhPT1yJiZzLnRvVXBwZXJDYXNlKCk9PT1yLnRvVXBwZXJDYXNlKCkmJihuW3JdPXQsZGVsZXRlIG5bc10pfSl9LEN0PXZlO2Z1bmN0aW9uIHFuKGUsbixyLG8sdCl7RXJyb3IuY2FsbCh0aGlzKSx0aGlzLm1lc3NhZ2U9ZSx0aGlzLm5hbWU9IkF4aW9zRXJyb3IiLG4mJih0aGlzLmNvZGU9biksciYmKHRoaXMuY29uZmlnPXIpLG8mJih0aGlzLnJlcXVlc3Q9byksdCYmKHRoaXMucmVzcG9uc2U9dCl9Q3QuaW5oZXJpdHMocW4sRXJyb3Ise3RvSlNPTjpmdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19fSk7dmFyIHl0PXFuLnByb3RvdHlwZSxMdD17fTtbIkVSUl9CQURfT1BUSU9OX1ZBTFVFIiwiRVJSX0JBRF9PUFRJT04iLCJFQ09OTkFCT1JURUQiLCJFVElNRURPVVQiLCJFUlJfTkVUV09SSyIsIkVSUl9GUl9UT09fTUFOWV9SRURJUkVDVFMiLCJFUlJfREVQUkVDQVRFRCIsIkVSUl9CQURfUkVTUE9OU0UiLCJFUlJfQkFEX1JFUVVFU1QiLCJFUlJfQ0FOQ0VMRUQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe0x0W2VdPXt2YWx1ZTplfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHFuLEx0KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeXQsImlzQXhpb3NFcnJvciIse3ZhbHVlOiEwfSkscW4uZnJvbT1mdW5jdGlvbihlLG4scixvLHQscyl7dmFyIGk9T2JqZWN0LmNyZWF0ZSh5dCk7cmV0dXJuIEN0LnRvRmxhdE9iamVjdChlLGksZnVuY3Rpb24oYyl7cmV0dXJuIGMhPT1FcnJvci5wcm90b3R5cGV9KSxxbi5jYWxsKGksZS5tZXNzYWdlLG4scixvLHQpLGkubmFtZT1lLm5hbWUscyYmT2JqZWN0LmFzc2lnbihpLHMpLGl9O3ZhciBRbj1xbixCdD17c2lsZW50SlNPTlBhcnNpbmc6ITAsZm9yY2VkSlNPTlBhcnNpbmc6ITAsY2xhcmlmeVRpbWVvdXRFcnJvcjohMX0sV2U9dmU7ZnVuY3Rpb24gTmEoZSxuKXtuPW58fG5ldyBGb3JtRGF0YTt2YXIgcj1bXTtmdW5jdGlvbiBvKHMpe3JldHVybiBzPT09bnVsbD8iIjpXZS5pc0RhdGUocyk/cy50b0lTT1N0cmluZygpOldlLmlzQXJyYXlCdWZmZXIocyl8fFdlLmlzVHlwZWRBcnJheShzKT90eXBlb2YgQmxvYj09ImZ1bmN0aW9uIj9uZXcgQmxvYihbc10pOkJ1ZmZlci5mcm9tKHMpOnN9ZnVuY3Rpb24gdChzLGkpe2lmKFdlLmlzUGxhaW5PYmplY3Qocyl8fFdlLmlzQXJyYXkocykpe2lmKHIuaW5kZXhPZihzKSE9PS0xKXRocm93IEVycm9yKCJDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gIitpKTtyLnB1c2gocyksV2UuZm9yRWFjaChzLGZ1bmN0aW9uKGMsbSl7aWYoIVdlLmlzVW5kZWZpbmVkKGMpKXt2YXIgYT1pP2krIi4iK206bSxoO2lmKGMmJiFpJiZ0eXBlb2YgYz09Im9iamVjdCIpe2lmKFdlLmVuZHNXaXRoKG0sInt9IikpYz1KU09OLnN0cmluZ2lmeShjKTtlbHNlIGlmKFdlLmVuZHNXaXRoKG0sIltdIikmJihoPVdlLnRvQXJyYXkoYykpKXtoLmZvckVhY2goZnVuY3Rpb24oTyl7IVdlLmlzVW5kZWZpbmVkKE8pJiZuLmFwcGVuZChhLG8oTykpfSk7cmV0dXJufX10KGMsYSl9fSksci5wb3AoKX1lbHNlIG4uYXBwZW5kKGksbyhzKSl9cmV0dXJuIHQoZSksbn12YXIga3Q9TmEsQ289UW4sZ2E9ZnVuY3Rpb24obixyLG8pe3ZhciB0PW8uY29uZmlnLnZhbGlkYXRlU3RhdHVzOyFvLnN0YXR1c3x8IXR8fHQoby5zdGF0dXMpP24obyk6cihuZXcgQ28oIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIitvLnN0YXR1cyxbQ28uRVJSX0JBRF9SRVFVRVNULENvLkVSUl9CQURfUkVTUE9OU0VdW01hdGguZmxvb3Ioby5zdGF0dXMvMTAwKS00XSxvLmNvbmZpZyxvLnJlcXVlc3QsbykpfSxxcj12ZSxJYT1xci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7cmV0dXJue3dyaXRlOmZ1bmN0aW9uKHIsbyx0LHMsaSxsKXt2YXIgYz1bXTtjLnB1c2gocisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG8pKSxxci5pc051bWJlcih0KSYmYy5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUodCkudG9HTVRTdHJpbmcoKSkscXIuaXNTdHJpbmcocykmJmMucHVzaCgicGF0aD0iK3MpLHFyLmlzU3RyaW5nKGkpJiZjLnB1c2goImRvbWFpbj0iK2kpLGw9PT0hMCYmYy5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Yy5qb2luKCI7ICIpfSxyZWFkOmZ1bmN0aW9uKHIpe3ZhciBvPWRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCIoXnw7XFxzKikoIityKyIpPShbXjtdKikiKSk7cmV0dXJuIG8/ZGVjb2RlVVJJQ29tcG9uZW50KG9bM10pOm51bGx9LHJlbW92ZTpmdW5jdGlvbihyKXt0aGlzLndyaXRlKHIsIiIsRGF0ZS5ub3coKS04NjRlNSl9fX0oKTpmdW5jdGlvbigpe3JldHVybnt3cml0ZTpmdW5jdGlvbigpe30scmVhZDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxyZW1vdmU6ZnVuY3Rpb24oKXt9fX0oKSxiYT1mdW5jdGlvbihuKXtyZXR1cm4vXihbYS16XVthLXpcZCtcLS5dKjopP1wvXC8vaS50ZXN0KG4pfSxBYT1mdW5jdGlvbihuLHIpe3JldHVybiByP24ucmVwbGFjZSgvXC8rJC8sIiIpKyIvIityLnJlcGxhY2UoL15cLysvLCIiKTpufSxVYT1iYSxIYT1BYSxNdD1mdW5jdGlvbihuLHIpe3JldHVybiBuJiYhVWEocik/SGEobixyKTpyfSx5bz12ZSx2YT1bImFnZSIsImF1dGhvcml6YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRob3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdLERhPWZ1bmN0aW9uKG4pe3ZhciByPXt9LG8sdCxzO3JldHVybiBuJiZ5by5mb3JFYWNoKG4uc3BsaXQoYApgKSxmdW5jdGlvbihsKXtpZihzPWwuaW5kZXhPZigiOiIpLG89eW8udHJpbShsLnN1YnN0cigwLHMpKS50b0xvd2VyQ2FzZSgpLHQ9eW8udHJpbShsLnN1YnN0cihzKzEpKSxvKXtpZihyW29dJiZ2YS5pbmRleE9mKG8pPj0wKXJldHVybjtvPT09InNldC1jb29raWUiP3Jbb109KHJbb10/cltvXTpbXSkuY29uY2F0KFt0XSk6cltvXT1yW29dP3Jbb10rIiwgIit0OnR9fSkscn0sWHQ9dmUsU2E9WHQuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9mdW5jdGlvbigpe3ZhciBuPS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbztmdW5jdGlvbiB0KHMpe3ZhciBpPXM7cmV0dXJuIG4mJihyLnNldEF0dHJpYnV0ZSgiaHJlZiIsaSksaT1yLmhyZWYpLHIuc2V0QXR0cmlidXRlKCJocmVmIixpKSx7aHJlZjpyLmhyZWYscHJvdG9jb2w6ci5wcm90b2NvbD9yLnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDpyLmhvc3Qsc2VhcmNoOnIuc2VhcmNoP3Iuc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6ci5oYXNoP3IuaGFzaC5yZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOnIuaG9zdG5hbWUscG9ydDpyLnBvcnQscGF0aG5hbWU6ci5wYXRobmFtZS5jaGFyQXQoMCk9PT0iLyI/ci5wYXRobmFtZToiLyIrci5wYXRobmFtZX19cmV0dXJuIG89dCh3aW5kb3cubG9jYXRpb24uaHJlZiksZnVuY3Rpb24oaSl7dmFyIGw9WHQuaXNTdHJpbmcoaSk/dChpKTppO3JldHVybiBsLnByb3RvY29sPT09by5wcm90b2NvbCYmbC5ob3N0PT09by5ob3N0fX0oKTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiEwfX0oKSxMbz1RbixQYT12ZTtmdW5jdGlvbiAkdChlKXtMby5jYWxsKHRoaXMsZT09bnVsbD8iY2FuY2VsZWQiOmUsTG8uRVJSX0NBTkNFTEVEKSx0aGlzLm5hbWU9IkNhbmNlbGVkRXJyb3IifVBhLmluaGVyaXRzKCR0LExvLHtfX0NBTkNFTF9fOiEwfSk7dmFyIFFyPSR0LHdhPWZ1bmN0aW9uKG4pe3ZhciByPS9eKFstK1x3XXsxLDI1fSkoOj9cL1wvfDopLy5leGVjKG4pO3JldHVybiByJiZyWzFdfHwiIn0sT3I9dmUsR2E9Z2EsQ2E9SWEseWE9R3QsTGE9TXQsQmE9RGEsa2E9U2EsTWE9QnQsbG49UW4sWGE9UXIsJGE9d2EsanQ9ZnVuY3Rpb24obil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8sdCl7dmFyIHM9bi5kYXRhLGk9bi5oZWFkZXJzLGw9bi5yZXNwb25zZVR5cGUsYztmdW5jdGlvbiBtKCl7bi5jYW5jZWxUb2tlbiYmbi5jYW5jZWxUb2tlbi51bnN1YnNjcmliZShjKSxuLnNpZ25hbCYmbi5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGMpfU9yLmlzRm9ybURhdGEocykmJk9yLmlzU3RhbmRhcmRCcm93c2VyRW52KCkmJmRlbGV0ZSBpWyJDb250ZW50LVR5cGUiXTt2YXIgYT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYobi5hdXRoKXt2YXIgaD1uLmF1dGgudXNlcm5hbWV8fCIiLE89bi5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChuLmF1dGgucGFzc3dvcmQpKToiIjtpLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShoKyI6IitPKX12YXIgRD1MYShuLmJhc2VVUkwsbi51cmwpO2Eub3BlbihuLm1ldGhvZC50b1VwcGVyQ2FzZSgpLHlhKEQsbi5wYXJhbXMsbi5wYXJhbXNTZXJpYWxpemVyKSwhMCksYS50aW1lb3V0PW4udGltZW91dDtmdW5jdGlvbiB3KCl7aWYoISFhKXt2YXIgZj0iZ2V0QWxsUmVzcG9uc2VIZWFkZXJzImluIGE/QmEoYS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSk6bnVsbCxBPSFsfHxsPT09InRleHQifHxsPT09Impzb24iP2EucmVzcG9uc2VUZXh0OmEucmVzcG9uc2UsVT17ZGF0YTpBLHN0YXR1czphLnN0YXR1cyxzdGF0dXNUZXh0OmEuc3RhdHVzVGV4dCxoZWFkZXJzOmYsY29uZmlnOm4scmVxdWVzdDphfTtHYShmdW5jdGlvbihqKXtvKGopLG0oKX0sZnVuY3Rpb24oail7dChqKSxtKCl9LFUpLGE9bnVsbH19aWYoIm9ubG9hZGVuZCJpbiBhP2Eub25sb2FkZW5kPXc6YS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXshYXx8YS5yZWFkeVN0YXRlIT09NHx8YS5zdGF0dXM9PT0wJiYhKGEucmVzcG9uc2VVUkwmJmEucmVzcG9uc2VVUkwuaW5kZXhPZigiZmlsZToiKT09PTApfHxzZXRUaW1lb3V0KHcpfSxhLm9uYWJvcnQ9ZnVuY3Rpb24oKXshYXx8KHQobmV3IGxuKCJSZXF1ZXN0IGFib3J0ZWQiLGxuLkVDT05OQUJPUlRFRCxuLGEpKSxhPW51bGwpfSxhLm9uZXJyb3I9ZnVuY3Rpb24oKXt0KG5ldyBsbigiTmV0d29yayBFcnJvciIsbG4uRVJSX05FVFdPUkssbixhLGEpKSxhPW51bGx9LGEub250aW1lb3V0PWZ1bmN0aW9uKCl7dmFyIEE9bi50aW1lb3V0PyJ0aW1lb3V0IG9mICIrbi50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLFU9bi50cmFuc2l0aW9uYWx8fE1hO24udGltZW91dEVycm9yTWVzc2FnZSYmKEE9bi50aW1lb3V0RXJyb3JNZXNzYWdlKSx0KG5ldyBsbihBLFUuY2xhcmlmeVRpbWVvdXRFcnJvcj9sbi5FVElNRURPVVQ6bG4uRUNPTk5BQk9SVEVELG4sYSkpLGE9bnVsbH0sT3IuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSl7dmFyIEM9KG4ud2l0aENyZWRlbnRpYWxzfHxrYShEKSkmJm4ueHNyZkNvb2tpZU5hbWU/Q2EucmVhZChuLnhzcmZDb29raWVOYW1lKTp2b2lkIDA7QyYmKGlbbi54c3JmSGVhZGVyTmFtZV09Qyl9InNldFJlcXVlc3RIZWFkZXIiaW4gYSYmT3IuZm9yRWFjaChpLGZ1bmN0aW9uKEEsVSl7dHlwZW9mIHM9PSJ1bmRlZmluZWQiJiZVLnRvTG93ZXJDYXNlKCk9PT0iY29udGVudC10eXBlIj9kZWxldGUgaVtVXTphLnNldFJlcXVlc3RIZWFkZXIoVSxBKX0pLE9yLmlzVW5kZWZpbmVkKG4ud2l0aENyZWRlbnRpYWxzKXx8KGEud2l0aENyZWRlbnRpYWxzPSEhbi53aXRoQ3JlZGVudGlhbHMpLGwmJmwhPT0ianNvbiImJihhLnJlc3BvbnNlVHlwZT1uLnJlc3BvbnNlVHlwZSksdHlwZW9mIG4ub25Eb3dubG9hZFByb2dyZXNzPT0iZnVuY3Rpb24iJiZhLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuLm9uRG93bmxvYWRQcm9ncmVzcyksdHlwZW9mIG4ub25VcGxvYWRQcm9ncmVzcz09ImZ1bmN0aW9uIiYmYS51cGxvYWQmJmEudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixuLm9uVXBsb2FkUHJvZ3Jlc3MpLChuLmNhbmNlbFRva2VufHxuLnNpZ25hbCkmJihjPWZ1bmN0aW9uKGYpeyFhfHwodCghZnx8ZiYmZi50eXBlP25ldyBYYTpmKSxhLmFib3J0KCksYT1udWxsKX0sbi5jYW5jZWxUb2tlbiYmbi5jYW5jZWxUb2tlbi5zdWJzY3JpYmUoYyksbi5zaWduYWwmJihuLnNpZ25hbC5hYm9ydGVkP2MoKTpuLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsYykpKSxzfHwocz1udWxsKTt2YXIgVD0kYShEKTtpZihUJiZbImh0dHAiLCJodHRwcyIsImZpbGUiXS5pbmRleE9mKFQpPT09LTEpe3QobmV3IGxuKCJVbnN1cHBvcnRlZCBwcm90b2NvbCAiK1QrIjoiLGxuLkVSUl9CQURfUkVRVUVTVCxuKSk7cmV0dXJufWEuc2VuZChzKX0pfSxqYT1udWxsLFVlPXZlLHh0PVRhLEZ0PVFuLHhhPUJ0LEZhPWt0LFZhPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIn07ZnVuY3Rpb24gVnQoZSxuKXshVWUuaXNVbmRlZmluZWQoZSkmJlVlLmlzVW5kZWZpbmVkKGVbIkNvbnRlbnQtVHlwZSJdKSYmKGVbIkNvbnRlbnQtVHlwZSJdPW4pfWZ1bmN0aW9uIEthKCl7dmFyIGU7cmV0dXJuKHR5cGVvZiBYTUxIdHRwUmVxdWVzdCE9InVuZGVmaW5lZCJ8fHR5cGVvZiBwcm9jZXNzIT0idW5kZWZpbmVkIiYmT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHByb2Nlc3MpPT09IltvYmplY3QgcHJvY2Vzc10iKSYmKGU9anQpLGV9ZnVuY3Rpb24gV2EoZSxuLHIpe2lmKFVlLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4obnx8SlNPTi5wYXJzZSkoZSksVWUudHJpbShlKX1jYXRjaChvKXtpZihvLm5hbWUhPT0iU3ludGF4RXJyb3IiKXRocm93IG99cmV0dXJuKHJ8fEpTT04uc3RyaW5naWZ5KShlKX12YXIgWnI9e3RyYW5zaXRpb25hbDp4YSxhZGFwdGVyOkthKCksdHJhbnNmb3JtUmVxdWVzdDpbZnVuY3Rpb24obixyKXtpZih4dChyLCJBY2NlcHQiKSx4dChyLCJDb250ZW50LVR5cGUiKSxVZS5pc0Zvcm1EYXRhKG4pfHxVZS5pc0FycmF5QnVmZmVyKG4pfHxVZS5pc0J1ZmZlcihuKXx8VWUuaXNTdHJlYW0obil8fFVlLmlzRmlsZShuKXx8VWUuaXNCbG9iKG4pKXJldHVybiBuO2lmKFVlLmlzQXJyYXlCdWZmZXJWaWV3KG4pKXJldHVybiBuLmJ1ZmZlcjtpZihVZS5pc1VSTFNlYXJjaFBhcmFtcyhuKSlyZXR1cm4gVnQociwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTgiKSxuLnRvU3RyaW5nKCk7dmFyIG89VWUuaXNPYmplY3QobiksdD1yJiZyWyJDb250ZW50LVR5cGUiXSxzO2lmKChzPVVlLmlzRmlsZUxpc3QobikpfHxvJiZ0PT09Im11bHRpcGFydC9mb3JtLWRhdGEiKXt2YXIgaT10aGlzLmVudiYmdGhpcy5lbnYuRm9ybURhdGE7cmV0dXJuIEZhKHM/eyJmaWxlc1tdIjpufTpuLGkmJm5ldyBpKX1lbHNlIGlmKG98fHQ9PT0iYXBwbGljYXRpb24vanNvbiIpcmV0dXJuIFZ0KHIsImFwcGxpY2F0aW9uL2pzb24iKSxXYShuKTtyZXR1cm4gbn1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihuKXt2YXIgcj10aGlzLnRyYW5zaXRpb25hbHx8WnIudHJhbnNpdGlvbmFsLG89ciYmci5zaWxlbnRKU09OUGFyc2luZyx0PXImJnIuZm9yY2VkSlNPTlBhcnNpbmcscz0hbyYmdGhpcy5yZXNwb25zZVR5cGU9PT0ianNvbiI7aWYoc3x8dCYmVWUuaXNTdHJpbmcobikmJm4ubGVuZ3RoKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShuKX1jYXRjaChpKXtpZihzKXRocm93IGkubmFtZT09PSJTeW50YXhFcnJvciI/RnQuZnJvbShpLEZ0LkVSUl9CQURfUkVTUE9OU0UsdGhpcyxudWxsLHRoaXMucmVzcG9uc2UpOml9cmV0dXJuIG59XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSxlbnY6e0Zvcm1EYXRhOmphfSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihuKXtyZXR1cm4gbj49MjAwJiZuPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07VWUuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiXSxmdW5jdGlvbihuKXtaci5oZWFkZXJzW25dPXt9fSksVWUuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKG4pe1pyLmhlYWRlcnNbbl09VWUubWVyZ2UoVmEpfSk7dmFyIEJvPVpyLFlhPXZlLEphPUJvLHphPWZ1bmN0aW9uKG4scixvKXt2YXIgdD10aGlzfHxKYTtyZXR1cm4gWWEuZm9yRWFjaChvLGZ1bmN0aW9uKGkpe249aS5jYWxsKHQsbixyKX0pLG59LEt0PWZ1bmN0aW9uKG4pe3JldHVybiEhKG4mJm4uX19DQU5DRUxfXyl9LFd0PXZlLGtvPXphLHFhPUt0LFFhPUJvLFphPVFyO2Z1bmN0aW9uIE1vKGUpe2lmKGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLGUuc2lnbmFsJiZlLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBaYX12YXIgZXU9ZnVuY3Rpb24obil7TW8obiksbi5oZWFkZXJzPW4uaGVhZGVyc3x8e30sbi5kYXRhPWtvLmNhbGwobixuLmRhdGEsbi5oZWFkZXJzLG4udHJhbnNmb3JtUmVxdWVzdCksbi5oZWFkZXJzPVd0Lm1lcmdlKG4uaGVhZGVycy5jb21tb258fHt9LG4uaGVhZGVyc1tuLm1ldGhvZF18fHt9LG4uaGVhZGVycyksV3QuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxmdW5jdGlvbih0KXtkZWxldGUgbi5oZWFkZXJzW3RdfSk7dmFyIHI9bi5hZGFwdGVyfHxRYS5hZGFwdGVyO3JldHVybiByKG4pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIE1vKG4pLHQuZGF0YT1rby5jYWxsKG4sdC5kYXRhLHQuaGVhZGVycyxuLnRyYW5zZm9ybVJlc3BvbnNlKSx0fSxmdW5jdGlvbih0KXtyZXR1cm4gcWEodCl8fChNbyhuKSx0JiZ0LnJlc3BvbnNlJiYodC5yZXNwb25zZS5kYXRhPWtvLmNhbGwobix0LnJlc3BvbnNlLmRhdGEsdC5yZXNwb25zZS5oZWFkZXJzLG4udHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QodCl9KX0sTGU9dmUsWXQ9ZnVuY3Rpb24obixyKXtyPXJ8fHt9O3ZhciBvPXt9O2Z1bmN0aW9uIHQoYSxoKXtyZXR1cm4gTGUuaXNQbGFpbk9iamVjdChhKSYmTGUuaXNQbGFpbk9iamVjdChoKT9MZS5tZXJnZShhLGgpOkxlLmlzUGxhaW5PYmplY3QoaCk/TGUubWVyZ2Uoe30saCk6TGUuaXNBcnJheShoKT9oLnNsaWNlKCk6aH1mdW5jdGlvbiBzKGEpe2lmKExlLmlzVW5kZWZpbmVkKHJbYV0pKXtpZighTGUuaXNVbmRlZmluZWQoblthXSkpcmV0dXJuIHQodm9pZCAwLG5bYV0pfWVsc2UgcmV0dXJuIHQoblthXSxyW2FdKX1mdW5jdGlvbiBpKGEpe2lmKCFMZS5pc1VuZGVmaW5lZChyW2FdKSlyZXR1cm4gdCh2b2lkIDAsclthXSl9ZnVuY3Rpb24gbChhKXtpZihMZS5pc1VuZGVmaW5lZChyW2FdKSl7aWYoIUxlLmlzVW5kZWZpbmVkKG5bYV0pKXJldHVybiB0KHZvaWQgMCxuW2FdKX1lbHNlIHJldHVybiB0KHZvaWQgMCxyW2FdKX1mdW5jdGlvbiBjKGEpe2lmKGEgaW4gcilyZXR1cm4gdChuW2FdLHJbYV0pO2lmKGEgaW4gbilyZXR1cm4gdCh2b2lkIDAsblthXSl9dmFyIG09e3VybDppLG1ldGhvZDppLGRhdGE6aSxiYXNlVVJMOmwsdHJhbnNmb3JtUmVxdWVzdDpsLHRyYW5zZm9ybVJlc3BvbnNlOmwscGFyYW1zU2VyaWFsaXplcjpsLHRpbWVvdXQ6bCx0aW1lb3V0TWVzc2FnZTpsLHdpdGhDcmVkZW50aWFsczpsLGFkYXB0ZXI6bCxyZXNwb25zZVR5cGU6bCx4c3JmQ29va2llTmFtZTpsLHhzcmZIZWFkZXJOYW1lOmwsb25VcGxvYWRQcm9ncmVzczpsLG9uRG93bmxvYWRQcm9ncmVzczpsLGRlY29tcHJlc3M6bCxtYXhDb250ZW50TGVuZ3RoOmwsbWF4Qm9keUxlbmd0aDpsLGJlZm9yZVJlZGlyZWN0OmwsdHJhbnNwb3J0OmwsaHR0cEFnZW50OmwsaHR0cHNBZ2VudDpsLGNhbmNlbFRva2VuOmwsc29ja2V0UGF0aDpsLHJlc3BvbnNlRW5jb2Rpbmc6bCx2YWxpZGF0ZVN0YXR1czpjfTtyZXR1cm4gTGUuZm9yRWFjaChPYmplY3Qua2V5cyhuKS5jb25jYXQoT2JqZWN0LmtleXMocikpLGZ1bmN0aW9uKGgpe3ZhciBPPW1baF18fHMsRD1PKGgpO0xlLmlzVW5kZWZpbmVkKEQpJiZPIT09Y3x8KG9baF09RCl9KSxvfSxKdD17dmVyc2lvbjoiMC4yNy4yIn0sbnU9SnQudmVyc2lvbixPbj1RbixYbz17fTtbIm9iamVjdCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goZnVuY3Rpb24oZSxuKXtYb1tlXT1mdW5jdGlvbihvKXtyZXR1cm4gdHlwZW9mIG89PT1lfHwiYSIrKG48MT8ibiAiOiIgIikrZX19KTt2YXIgenQ9e307WG8udHJhbnNpdGlvbmFsPWZ1bmN0aW9uKG4scixvKXtmdW5jdGlvbiB0KHMsaSl7cmV0dXJuIltBeGlvcyB2IitudSsiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK3MrIiciK2krKG8/Ii4gIitvOiIiKX1yZXR1cm4gZnVuY3Rpb24ocyxpLGwpe2lmKG49PT0hMSl0aHJvdyBuZXcgT24odChpLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHI/IiBpbiAiK3I6IiIpKSxPbi5FUlJfREVQUkVDQVRFRCk7cmV0dXJuIHImJiF6dFtpXSYmKHp0W2ldPSEwLGNvbnNvbGUud2Fybih0KGksIiBoYXMgYmVlbiBkZXByZWNhdGVkIHNpbmNlIHYiK3IrIiBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZSIpKSksbj9uKHMsaSxsKTohMH19O2Z1bmN0aW9uIHJ1KGUsbixyKXtpZih0eXBlb2YgZSE9Im9iamVjdCIpdGhyb3cgbmV3IE9uKCJvcHRpb25zIG11c3QgYmUgYW4gb2JqZWN0IixPbi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Zm9yKHZhciBvPU9iamVjdC5rZXlzKGUpLHQ9by5sZW5ndGg7dC0tID4wOyl7dmFyIHM9b1t0XSxpPW5bc107aWYoaSl7dmFyIGw9ZVtzXSxjPWw9PT12b2lkIDB8fGkobCxzLGUpO2lmKGMhPT0hMCl0aHJvdyBuZXcgT24oIm9wdGlvbiAiK3MrIiBtdXN0IGJlICIrYyxPbi5FUlJfQkFEX09QVElPTl9WQUxVRSk7Y29udGludWV9aWYociE9PSEwKXRocm93IG5ldyBPbigiVW5rbm93biBvcHRpb24gIitzLE9uLkVSUl9CQURfT1BUSU9OKX19dmFyIG91PXthc3NlcnRPcHRpb25zOnJ1LHZhbGlkYXRvcnM6WG99LHF0PXZlLHR1PUd0LFF0PVJhLFp0PWV1LGVvPVl0LHN1PU10LGVzPW91LFpuPWVzLnZhbGlkYXRvcnM7ZnVuY3Rpb24gZXIoZSl7dGhpcy5kZWZhdWx0cz1lLHRoaXMuaW50ZXJjZXB0b3JzPXtyZXF1ZXN0Om5ldyBRdCxyZXNwb25zZTpuZXcgUXR9fWVyLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKG4scil7dHlwZW9mIG49PSJzdHJpbmciPyhyPXJ8fHt9LHIudXJsPW4pOnI9bnx8e30scj1lbyh0aGlzLmRlZmF1bHRzLHIpLHIubWV0aG9kP3IubWV0aG9kPXIubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q/ci5tZXRob2Q9dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKTpyLm1ldGhvZD0iZ2V0Ijt2YXIgbz1yLnRyYW5zaXRpb25hbDtvIT09dm9pZCAwJiZlcy5hc3NlcnRPcHRpb25zKG8se3NpbGVudEpTT05QYXJzaW5nOlpuLnRyYW5zaXRpb25hbChabi5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpabi50cmFuc2l0aW9uYWwoWm4uYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpabi50cmFuc2l0aW9uYWwoWm4uYm9vbGVhbil9LCExKTt2YXIgdD1bXSxzPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChmdW5jdGlvbihEKXt0eXBlb2YgRC5ydW5XaGVuPT0iZnVuY3Rpb24iJiZELnJ1bldoZW4ocik9PT0hMXx8KHM9cyYmRC5zeW5jaHJvbm91cyx0LnVuc2hpZnQoRC5mdWxmaWxsZWQsRC5yZWplY3RlZCkpfSk7dmFyIGk9W107dGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaChmdW5jdGlvbihEKXtpLnB1c2goRC5mdWxmaWxsZWQsRC5yZWplY3RlZCl9KTt2YXIgbDtpZighcyl7dmFyIGM9W1p0LHZvaWQgMF07Zm9yKEFycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGMsdCksYz1jLmNvbmNhdChpKSxsPVByb21pc2UucmVzb2x2ZShyKTtjLmxlbmd0aDspbD1sLnRoZW4oYy5zaGlmdCgpLGMuc2hpZnQoKSk7cmV0dXJuIGx9Zm9yKHZhciBtPXI7dC5sZW5ndGg7KXt2YXIgYT10LnNoaWZ0KCksaD10LnNoaWZ0KCk7dHJ5e209YShtKX1jYXRjaChPKXtoKE8pO2JyZWFrfX10cnl7bD1adChtKX1jYXRjaChPKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoTyl9Zm9yKDtpLmxlbmd0aDspbD1sLnRoZW4oaS5zaGlmdCgpLGkuc2hpZnQoKSk7cmV0dXJuIGx9LGVyLnByb3RvdHlwZS5nZXRVcmk9ZnVuY3Rpb24obil7bj1lbyh0aGlzLmRlZmF1bHRzLG4pO3ZhciByPXN1KG4uYmFzZVVSTCxuLnVybCk7cmV0dXJuIHR1KHIsbi5wYXJhbXMsbi5wYXJhbXNTZXJpYWxpemVyKX0scXQuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24obil7ZXIucHJvdG90eXBlW25dPWZ1bmN0aW9uKHIsbyl7cmV0dXJuIHRoaXMucmVxdWVzdChlbyhvfHx7fSx7bWV0aG9kOm4sdXJsOnIsZGF0YToob3x8e30pLmRhdGF9KSl9fSkscXQuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHIobyl7cmV0dXJuIGZ1bmN0aW9uKHMsaSxsKXtyZXR1cm4gdGhpcy5yZXF1ZXN0KGVvKGx8fHt9LHttZXRob2Q6bixoZWFkZXJzOm8/eyJDb250ZW50LVR5cGUiOiJtdWx0aXBhcnQvZm9ybS1kYXRhIn06e30sdXJsOnMsZGF0YTppfSkpfX1lci5wcm90b3R5cGVbbl09cigpLGVyLnByb3RvdHlwZVtuKyJGb3JtIl09cighMCl9KTt2YXIgaXU9ZXIsYXU9UXI7ZnVuY3Rpb24gbnIoZSl7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcigiZXhlY3V0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uLiIpO3ZhciBuO3RoaXMucHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbih0KXtuPXR9KTt2YXIgcj10aGlzO3RoaXMucHJvbWlzZS50aGVuKGZ1bmN0aW9uKG8pe2lmKCEhci5fbGlzdGVuZXJzKXt2YXIgdCxzPXIuX2xpc3RlbmVycy5sZW5ndGg7Zm9yKHQ9MDt0PHM7dCsrKXIuX2xpc3RlbmVyc1t0XShvKTtyLl9saXN0ZW5lcnM9bnVsbH19KSx0aGlzLnByb21pc2UudGhlbj1mdW5jdGlvbihvKXt2YXIgdCxzPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3Iuc3Vic2NyaWJlKGkpLHQ9aX0pLnRoZW4obyk7cmV0dXJuIHMuY2FuY2VsPWZ1bmN0aW9uKCl7ci51bnN1YnNjcmliZSh0KX0sc30sZShmdW5jdGlvbih0KXtyLnJlYXNvbnx8KHIucmVhc29uPW5ldyBhdSh0KSxuKHIucmVhc29uKSl9KX1uci5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZD1mdW5jdGlvbigpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufSxuci5wcm90b3R5cGUuc3Vic2NyaWJlPWZ1bmN0aW9uKG4pe2lmKHRoaXMucmVhc29uKXtuKHRoaXMucmVhc29uKTtyZXR1cm59dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKG4pOnRoaXMuX2xpc3RlbmVycz1bbl19LG5yLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihuKXtpZighIXRoaXMuX2xpc3RlbmVycyl7dmFyIHI9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2Yobik7ciE9PS0xJiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHIsMSl9fSxuci5zb3VyY2U9ZnVuY3Rpb24oKXt2YXIgbixyPW5ldyBucihmdW5jdGlvbih0KXtuPXR9KTtyZXR1cm57dG9rZW46cixjYW5jZWw6bn19O3ZhciB1dT1ucixfdT1mdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIG4uYXBwbHkobnVsbCxvKX19LGx1PXZlLGN1PWZ1bmN0aW9uKG4pe3JldHVybiBsdS5pc09iamVjdChuKSYmbi5pc0F4aW9zRXJyb3I9PT0hMH0sbnM9dmUsZHU9RHQsbm89aXUsaHU9WXQsbXU9Qm87ZnVuY3Rpb24gcnMoZSl7dmFyIG49bmV3IG5vKGUpLHI9ZHUobm8ucHJvdG90eXBlLnJlcXVlc3Qsbik7cmV0dXJuIG5zLmV4dGVuZChyLG5vLnByb3RvdHlwZSxuKSxucy5leHRlbmQocixuKSxyLmNyZWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gcnMoaHUoZSx0KSl9LHJ9dmFyIEdlPXJzKG11KTtHZS5BeGlvcz1ubyxHZS5DYW5jZWxlZEVycm9yPVFyLEdlLkNhbmNlbFRva2VuPXV1LEdlLmlzQ2FuY2VsPUt0LEdlLlZFUlNJT049SnQudmVyc2lvbixHZS50b0Zvcm1EYXRhPWt0LEdlLkF4aW9zRXJyb3I9UW4sR2UuQ2FuY2VsPUdlLkNhbmNlbGVkRXJyb3IsR2UuYWxsPWZ1bmN0aW9uKG4pe3JldHVybiBQcm9taXNlLmFsbChuKX0sR2Uuc3ByZWFkPV91LEdlLmlzQXhpb3NFcnJvcj1jdSxIby5leHBvcnRzPUdlLEhvLmV4cG9ydHMuZGVmYXVsdD1HZTt2YXIgJG89SG8uZXhwb3J0cyx3bj17fSxybz17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkocm8sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHJvLkdldEVycm9yUGF5bG9hZD12b2lkIDA7ZnVuY3Rpb24gcHUoZSxuPW51bGwpe3JldHVybntlcnJvcjplLmNvZGUsZXJyb3JfZGVzY3JpcHRpb246ZS5kZXNjcmlwdGlvbix0aW1lc3RhbXA6RGF0ZS5ub3coKSxkZXRhaWxzOm59fXJvLkdldEVycm9yUGF5bG9hZD1wdTt2YXIgb289e30sR249e30sam89e2V4cG9ydHM6e319LG9zPXt9LHplPXt9LHJyPXt9LFRyPXt9LF9lPXt9LE5yPXt9OyhmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZWdleHBDb2RlPWUuZ2V0RXNtRXhwb3J0TmFtZT1lLmdldFByb3BlcnR5PWUuc2FmZVN0cmluZ2lmeT1lLnN0cmluZ2lmeT1lLnN0ckNvbmNhdD1lLmFkZENvZGVBcmc9ZS5zdHI9ZS5fPWUubmlsPWUuX0NvZGU9ZS5OYW1lPWUuSURFTlRJRklFUj1lLl9Db2RlT3JOYW1lPXZvaWQgMDtjbGFzcyBue31lLl9Db2RlT3JOYW1lPW4sZS5JREVOVElGSUVSPS9eW2EteiRfXVthLXokXzAtOV0qJC9pO2NsYXNzIHIgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKEEpe2lmKHN1cGVyKCksIWUuSURFTlRJRklFUi50ZXN0KEEpKXRocm93IG5ldyBFcnJvcigiQ29kZUdlbjogbmFtZSBtdXN0IGJlIGEgdmFsaWQgaWRlbnRpZmllciIpO3RoaXMuc3RyPUF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5zdHJ9ZW1wdHlTdHIoKXtyZXR1cm4hMX1nZXQgbmFtZXMoKXtyZXR1cm57W3RoaXMuc3RyXToxfX19ZS5OYW1lPXI7Y2xhc3MgbyBleHRlbmRzIG57Y29uc3RydWN0b3IoQSl7c3VwZXIoKSx0aGlzLl9pdGVtcz10eXBlb2YgQT09InN0cmluZyI/W0FdOkF9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5zdHJ9ZW1wdHlTdHIoKXtpZih0aGlzLl9pdGVtcy5sZW5ndGg+MSlyZXR1cm4hMTtjb25zdCBBPXRoaXMuX2l0ZW1zWzBdO3JldHVybiBBPT09IiJ8fEE9PT0nIiInfWdldCBzdHIoKXt2YXIgQTtyZXR1cm4oQT10aGlzLl9zdHIpIT09bnVsbCYmQSE9PXZvaWQgMD9BOnRoaXMuX3N0cj10aGlzLl9pdGVtcy5yZWR1Y2UoKFUsUyk9PmAke1V9JHtTfWAsIiIpfWdldCBuYW1lcygpe3ZhciBBO3JldHVybihBPXRoaXMuX25hbWVzKSE9PW51bGwmJkEhPT12b2lkIDA/QTp0aGlzLl9uYW1lcz10aGlzLl9pdGVtcy5yZWR1Y2UoKFUsUyk9PihTIGluc3RhbmNlb2YgciYmKFVbUy5zdHJdPShVW1Muc3RyXXx8MCkrMSksVSkse30pfX1lLl9Db2RlPW8sZS5uaWw9bmV3IG8oIiIpO2Z1bmN0aW9uIHQoZiwuLi5BKXtjb25zdCBVPVtmWzBdXTtsZXQgUz0wO2Zvcig7UzxBLmxlbmd0aDspbChVLEFbU10pLFUucHVzaChmWysrU10pO3JldHVybiBuZXcgbyhVKX1lLl89dDtjb25zdCBzPW5ldyBvKCIrIik7ZnVuY3Rpb24gaShmLC4uLkEpe2NvbnN0IFU9W0QoZlswXSldO2xldCBTPTA7Zm9yKDtTPEEubGVuZ3RoOylVLnB1c2gocyksbChVLEFbU10pLFUucHVzaChzLEQoZlsrK1NdKSk7cmV0dXJuIGMoVSksbmV3IG8oVSl9ZS5zdHI9aTtmdW5jdGlvbiBsKGYsQSl7QSBpbnN0YW5jZW9mIG8/Zi5wdXNoKC4uLkEuX2l0ZW1zKTpBIGluc3RhbmNlb2Ygcj9mLnB1c2goQSk6Zi5wdXNoKGgoQSkpfWUuYWRkQ29kZUFyZz1sO2Z1bmN0aW9uIGMoZil7bGV0IEE9MTtmb3IoO0E8Zi5sZW5ndGgtMTspe2lmKGZbQV09PT1zKXtjb25zdCBVPW0oZltBLTFdLGZbQSsxXSk7aWYoVSE9PXZvaWQgMCl7Zi5zcGxpY2UoQS0xLDMsVSk7Y29udGludWV9ZltBKytdPSIrIn1BKyt9fWZ1bmN0aW9uIG0oZixBKXtpZihBPT09JyIiJylyZXR1cm4gZjtpZihmPT09JyIiJylyZXR1cm4gQTtpZih0eXBlb2YgZj09InN0cmluZyIpcmV0dXJuIEEgaW5zdGFuY2VvZiByfHxmW2YubGVuZ3RoLTFdIT09JyInP3ZvaWQgMDp0eXBlb2YgQSE9InN0cmluZyI/YCR7Zi5zbGljZSgwLC0xKX0ke0F9ImA6QVswXT09PSciJz9mLnNsaWNlKDAsLTEpK0Euc2xpY2UoMSk6dm9pZCAwO2lmKHR5cGVvZiBBPT0ic3RyaW5nIiYmQVswXT09PSciJyYmIShmIGluc3RhbmNlb2YgcikpcmV0dXJuYCIke2Z9JHtBLnNsaWNlKDEpfWB9ZnVuY3Rpb24gYShmLEEpe3JldHVybiBBLmVtcHR5U3RyKCk/ZjpmLmVtcHR5U3RyKCk/QTppYCR7Zn0ke0F9YH1lLnN0ckNvbmNhdD1hO2Z1bmN0aW9uIGgoZil7cmV0dXJuIHR5cGVvZiBmPT0ibnVtYmVyInx8dHlwZW9mIGY9PSJib29sZWFuInx8Zj09PW51bGw/ZjpEKEFycmF5LmlzQXJyYXkoZik/Zi5qb2luKCIsIik6Zil9ZnVuY3Rpb24gTyhmKXtyZXR1cm4gbmV3IG8oRChmKSl9ZS5zdHJpbmdpZnk9TztmdW5jdGlvbiBEKGYpe3JldHVybiBKU09OLnN0cmluZ2lmeShmKS5yZXBsYWNlKC9cdTIwMjgvZywiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCJcXHUyMDI5Iil9ZS5zYWZlU3RyaW5naWZ5PUQ7ZnVuY3Rpb24gdyhmKXtyZXR1cm4gdHlwZW9mIGY9PSJzdHJpbmciJiZlLklERU5USUZJRVIudGVzdChmKT9uZXcgbyhgLiR7Zn1gKTp0YFske2Z9XWB9ZS5nZXRQcm9wZXJ0eT13O2Z1bmN0aW9uIEMoZil7aWYodHlwZW9mIGY9PSJzdHJpbmciJiZlLklERU5USUZJRVIudGVzdChmKSlyZXR1cm4gbmV3IG8oYCR7Zn1gKTt0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IGludmFsaWQgZXhwb3J0IG5hbWU6ICR7Zn0sIHVzZSBleHBsaWNpdCAkaWQgbmFtZSBtYXBwaW5nYCl9ZS5nZXRFc21FeHBvcnROYW1lPUM7ZnVuY3Rpb24gVChmKXtyZXR1cm4gbmV3IG8oZi50b1N0cmluZygpKX1lLnJlZ2V4cENvZGU9VH0pKE5yKTt2YXIgeG89e307KGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlZhbHVlU2NvcGU9ZS5WYWx1ZVNjb3BlTmFtZT1lLlNjb3BlPWUudmFyS2luZHM9ZS5Vc2VkVmFsdWVTdGF0ZT12b2lkIDA7Y29uc3Qgbj1OcjtjbGFzcyByIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IobSl7c3VwZXIoYENvZGVHZW46ICJjb2RlIiBmb3IgJHttfSBub3QgZGVmaW5lZGApLHRoaXMudmFsdWU9bS52YWx1ZX19dmFyIG87KGZ1bmN0aW9uKGMpe2NbYy5TdGFydGVkPTBdPSJTdGFydGVkIixjW2MuQ29tcGxldGVkPTFdPSJDb21wbGV0ZWQifSkobz1lLlVzZWRWYWx1ZVN0YXRlfHwoZS5Vc2VkVmFsdWVTdGF0ZT17fSkpLGUudmFyS2luZHM9e2NvbnN0Om5ldyBuLk5hbWUoImNvbnN0IiksbGV0Om5ldyBuLk5hbWUoImxldCIpLHZhcjpuZXcgbi5OYW1lKCJ2YXIiKX07Y2xhc3MgdHtjb25zdHJ1Y3Rvcih7cHJlZml4ZXM6bSxwYXJlbnQ6YX09e30pe3RoaXMuX25hbWVzPXt9LHRoaXMuX3ByZWZpeGVzPW0sdGhpcy5fcGFyZW50PWF9dG9OYW1lKG0pe3JldHVybiBtIGluc3RhbmNlb2Ygbi5OYW1lP206dGhpcy5uYW1lKG0pfW5hbWUobSl7cmV0dXJuIG5ldyBuLk5hbWUodGhpcy5fbmV3TmFtZShtKSl9X25ld05hbWUobSl7Y29uc3QgYT10aGlzLl9uYW1lc1ttXXx8dGhpcy5fbmFtZUdyb3VwKG0pO3JldHVybmAke219JHthLmluZGV4Kyt9YH1fbmFtZUdyb3VwKG0pe3ZhciBhLGg7aWYoKChoPShhPXRoaXMuX3BhcmVudCk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLl9wcmVmaXhlcyk9PT1udWxsfHxoPT09dm9pZCAwP3ZvaWQgMDpoLmhhcyhtKSl8fHRoaXMuX3ByZWZpeGVzJiYhdGhpcy5fcHJlZml4ZXMuaGFzKG0pKXRocm93IG5ldyBFcnJvcihgQ29kZUdlbjogcHJlZml4ICIke219IiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlYCk7cmV0dXJuIHRoaXMuX25hbWVzW21dPXtwcmVmaXg6bSxpbmRleDowfX19ZS5TY29wZT10O2NsYXNzIHMgZXh0ZW5kcyBuLk5hbWV7Y29uc3RydWN0b3IobSxhKXtzdXBlcihhKSx0aGlzLnByZWZpeD1tfXNldFZhbHVlKG0se3Byb3BlcnR5OmEsaXRlbUluZGV4Omh9KXt0aGlzLnZhbHVlPW0sdGhpcy5zY29wZVBhdGg9KDAsbi5fKWAuJHtuZXcgbi5OYW1lKGEpfVske2h9XWB9fWUuVmFsdWVTY29wZU5hbWU9cztjb25zdCBpPSgwLG4uXylgXG5gO2NsYXNzIGwgZXh0ZW5kcyB0e2NvbnN0cnVjdG9yKG0pe3N1cGVyKG0pLHRoaXMuX3ZhbHVlcz17fSx0aGlzLl9zY29wZT1tLnNjb3BlLHRoaXMub3B0cz1sZShZKHt9LG0pLHtfbjptLmxpbmVzP2k6bi5uaWx9KX1nZXQoKXtyZXR1cm4gdGhpcy5fc2NvcGV9bmFtZShtKXtyZXR1cm4gbmV3IHMobSx0aGlzLl9uZXdOYW1lKG0pKX12YWx1ZShtLGEpe3ZhciBoO2lmKGEucmVmPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiQ29kZUdlbjogcmVmIG11c3QgYmUgcGFzc2VkIGluIHZhbHVlIik7Y29uc3QgTz10aGlzLnRvTmFtZShtKSx7cHJlZml4OkR9PU8sdz0oaD1hLmtleSkhPT1udWxsJiZoIT09dm9pZCAwP2g6YS5yZWY7bGV0IEM9dGhpcy5fdmFsdWVzW0RdO2lmKEMpe2NvbnN0IEE9Qy5nZXQodyk7aWYoQSlyZXR1cm4gQX1lbHNlIEM9dGhpcy5fdmFsdWVzW0RdPW5ldyBNYXA7Qy5zZXQodyxPKTtjb25zdCBUPXRoaXMuX3Njb3BlW0RdfHwodGhpcy5fc2NvcGVbRF09W10pLGY9VC5sZW5ndGg7cmV0dXJuIFRbZl09YS5yZWYsTy5zZXRWYWx1ZShhLHtwcm9wZXJ0eTpELGl0ZW1JbmRleDpmfSksT31nZXRWYWx1ZShtLGEpe2NvbnN0IGg9dGhpcy5fdmFsdWVzW21dO2lmKCEhaClyZXR1cm4gaC5nZXQoYSl9c2NvcGVSZWZzKG0sYT10aGlzLl92YWx1ZXMpe3JldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXMoYSxoPT57aWYoaC5zY29wZVBhdGg9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke2h9IiBoYXMgbm8gdmFsdWVgKTtyZXR1cm4oMCxuLl8pYCR7bX0ke2guc2NvcGVQYXRofWB9KX1zY29wZUNvZGUobT10aGlzLl92YWx1ZXMsYSxoKXtyZXR1cm4gdGhpcy5fcmVkdWNlVmFsdWVzKG0sTz0+e2lmKE8udmFsdWU9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke099IiBoYXMgbm8gdmFsdWVgKTtyZXR1cm4gTy52YWx1ZS5jb2RlfSxhLGgpfV9yZWR1Y2VWYWx1ZXMobSxhLGg9e30sTyl7bGV0IEQ9bi5uaWw7Zm9yKGNvbnN0IHcgaW4gbSl7Y29uc3QgQz1tW3ddO2lmKCFDKWNvbnRpbnVlO2NvbnN0IFQ9aFt3XT1oW3ddfHxuZXcgTWFwO0MuZm9yRWFjaChmPT57aWYoVC5oYXMoZikpcmV0dXJuO1Quc2V0KGYsby5TdGFydGVkKTtsZXQgQT1hKGYpO2lmKEEpe2NvbnN0IFU9dGhpcy5vcHRzLmVzNT9lLnZhcktpbmRzLnZhcjplLnZhcktpbmRzLmNvbnN0O0Q9KDAsbi5fKWAke0R9JHtVfSAke2Z9ID0gJHtBfTske3RoaXMub3B0cy5fbn1gfWVsc2UgaWYoQT1PPT1udWxsP3ZvaWQgMDpPKGYpKUQ9KDAsbi5fKWAke0R9JHtBfSR7dGhpcy5vcHRzLl9ufWA7ZWxzZSB0aHJvdyBuZXcgcihmKTtULnNldChmLG8uQ29tcGxldGVkKX0pfXJldHVybiBEfX1lLlZhbHVlU2NvcGU9bH0pKHhvKSxmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5vcj1lLmFuZD1lLm5vdD1lLkNvZGVHZW49ZS5vcGVyYXRvcnM9ZS52YXJLaW5kcz1lLlZhbHVlU2NvcGVOYW1lPWUuVmFsdWVTY29wZT1lLlNjb3BlPWUuTmFtZT1lLnJlZ2V4cENvZGU9ZS5zdHJpbmdpZnk9ZS5nZXRQcm9wZXJ0eT1lLm5pbD1lLnN0ckNvbmNhdD1lLnN0cj1lLl89dm9pZCAwO2NvbnN0IG49TnIscj14bzt2YXIgbz1OcjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiXyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uX319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwic3RyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5zdHJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInN0ckNvbmNhdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uc3RyQ29uY2F0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJuaWwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLm5pbH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiZ2V0UHJvcGVydHkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLmdldFByb3BlcnR5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzdHJpbmdpZnkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvLnN0cmluZ2lmeX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicmVnZXhwQ29kZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8ucmVnZXhwQ29kZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiTmFtZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uTmFtZX19KTt2YXIgdD14bztPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiU2NvcGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0LlNjb3BlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJWYWx1ZVNjb3BlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5WYWx1ZVNjb3BlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJWYWx1ZVNjb3BlTmFtZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuVmFsdWVTY29wZU5hbWV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsInZhcktpbmRzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC52YXJLaW5kc319KSxlLm9wZXJhdG9ycz17R1Q6bmV3IG4uX0NvZGUoIj4iKSxHVEU6bmV3IG4uX0NvZGUoIj49IiksTFQ6bmV3IG4uX0NvZGUoIjwiKSxMVEU6bmV3IG4uX0NvZGUoIjw9IiksRVE6bmV3IG4uX0NvZGUoIj09PSIpLE5FUTpuZXcgbi5fQ29kZSgiIT09IiksTk9UOm5ldyBuLl9Db2RlKCIhIiksT1I6bmV3IG4uX0NvZGUoInx8IiksQU5EOm5ldyBuLl9Db2RlKCImJiIpLEFERDpuZXcgbi5fQ29kZSgiKyIpfTtjbGFzcyBze29wdGltaXplTm9kZXMoKXtyZXR1cm4gdGhpc31vcHRpbWl6ZU5hbWVzKHUscCl7cmV0dXJuIHRoaXN9fWNsYXNzIGkgZXh0ZW5kcyBze2NvbnN0cnVjdG9yKHUscCx2KXtzdXBlcigpLHRoaXMudmFyS2luZD11LHRoaXMubmFtZT1wLHRoaXMucmhzPXZ9cmVuZGVyKHtlczU6dSxfbjpwfSl7Y29uc3Qgdj11P3IudmFyS2luZHMudmFyOnRoaXMudmFyS2luZCxMPXRoaXMucmhzPT09dm9pZCAwPyIiOmAgPSAke3RoaXMucmhzfWA7cmV0dXJuYCR7dn0gJHt0aGlzLm5hbWV9JHtMfTtgK3B9b3B0aW1pemVOYW1lcyh1LHApe2lmKCEhdVt0aGlzLm5hbWUuc3RyXSlyZXR1cm4gdGhpcy5yaHMmJih0aGlzLnJocz1xKHRoaXMucmhzLHUscCkpLHRoaXN9Z2V0IG5hbWVzKCl7cmV0dXJuIHRoaXMucmhzIGluc3RhbmNlb2Ygbi5fQ29kZU9yTmFtZT90aGlzLnJocy5uYW1lczp7fX19Y2xhc3MgbCBleHRlbmRzIHN7Y29uc3RydWN0b3IodSxwLHYpe3N1cGVyKCksdGhpcy5saHM9dSx0aGlzLnJocz1wLHRoaXMuc2lkZUVmZmVjdHM9dn1yZW5kZXIoe19uOnV9KXtyZXR1cm5gJHt0aGlzLmxoc30gPSAke3RoaXMucmhzfTtgK3V9b3B0aW1pemVOYW1lcyh1LHApe2lmKCEodGhpcy5saHMgaW5zdGFuY2VvZiBuLk5hbWUmJiF1W3RoaXMubGhzLnN0cl0mJiF0aGlzLnNpZGVFZmZlY3RzKSlyZXR1cm4gdGhpcy5yaHM9cSh0aGlzLnJocyx1LHApLHRoaXN9Z2V0IG5hbWVzKCl7Y29uc3QgdT10aGlzLmxocyBpbnN0YW5jZW9mIG4uTmFtZT97fTpZKHt9LHRoaXMubGhzLm5hbWVzKTtyZXR1cm4gaWUodSx0aGlzLnJocyl9fWNsYXNzIGMgZXh0ZW5kcyBse2NvbnN0cnVjdG9yKHUscCx2LEwpe3N1cGVyKHUsdixMKSx0aGlzLm9wPXB9cmVuZGVyKHtfbjp1fSl7cmV0dXJuYCR7dGhpcy5saHN9ICR7dGhpcy5vcH09ICR7dGhpcy5yaHN9O2ArdX19Y2xhc3MgbSBleHRlbmRzIHN7Y29uc3RydWN0b3IodSl7c3VwZXIoKSx0aGlzLmxhYmVsPXUsdGhpcy5uYW1lcz17fX1yZW5kZXIoe19uOnV9KXtyZXR1cm5gJHt0aGlzLmxhYmVsfTpgK3V9fWNsYXNzIGEgZXh0ZW5kcyBze2NvbnN0cnVjdG9yKHUpe3N1cGVyKCksdGhpcy5sYWJlbD11LHRoaXMubmFtZXM9e319cmVuZGVyKHtfbjp1fSl7cmV0dXJuYGJyZWFrJHt0aGlzLmxhYmVsP2AgJHt0aGlzLmxhYmVsfWA6IiJ9O2ArdX19Y2xhc3MgaCBleHRlbmRzIHN7Y29uc3RydWN0b3IodSl7c3VwZXIoKSx0aGlzLmVycm9yPXV9cmVuZGVyKHtfbjp1fSl7cmV0dXJuYHRocm93ICR7dGhpcy5lcnJvcn07YCt1fWdldCBuYW1lcygpe3JldHVybiB0aGlzLmVycm9yLm5hbWVzfX1jbGFzcyBPIGV4dGVuZHMgc3tjb25zdHJ1Y3Rvcih1KXtzdXBlcigpLHRoaXMuY29kZT11fXJlbmRlcih7X246dX0pe3JldHVybmAke3RoaXMuY29kZX07YCt1fW9wdGltaXplTm9kZXMoKXtyZXR1cm5gJHt0aGlzLmNvZGV9YD90aGlzOnZvaWQgMH1vcHRpbWl6ZU5hbWVzKHUscCl7cmV0dXJuIHRoaXMuY29kZT1xKHRoaXMuY29kZSx1LHApLHRoaXN9Z2V0IG5hbWVzKCl7cmV0dXJuIHRoaXMuY29kZSBpbnN0YW5jZW9mIG4uX0NvZGVPck5hbWU/dGhpcy5jb2RlLm5hbWVzOnt9fX1jbGFzcyBEIGV4dGVuZHMgc3tjb25zdHJ1Y3Rvcih1PVtdKXtzdXBlcigpLHRoaXMubm9kZXM9dX1yZW5kZXIodSl7cmV0dXJuIHRoaXMubm9kZXMucmVkdWNlKChwLHYpPT5wK3YucmVuZGVyKHUpLCIiKX1vcHRpbWl6ZU5vZGVzKCl7Y29uc3R7bm9kZXM6dX09dGhpcztsZXQgcD11Lmxlbmd0aDtmb3IoO3AtLTspe2NvbnN0IHY9dVtwXS5vcHRpbWl6ZU5vZGVzKCk7QXJyYXkuaXNBcnJheSh2KT91LnNwbGljZShwLDEsLi4udik6dj91W3BdPXY6dS5zcGxpY2UocCwxKX1yZXR1cm4gdS5sZW5ndGg+MD90aGlzOnZvaWQgMH1vcHRpbWl6ZU5hbWVzKHUscCl7Y29uc3R7bm9kZXM6dn09dGhpcztsZXQgTD12Lmxlbmd0aDtmb3IoO0wtLTspe2NvbnN0IEI9dltMXTtCLm9wdGltaXplTmFtZXModSxwKXx8KEVlKHUsQi5uYW1lcyksdi5zcGxpY2UoTCwxKSl9cmV0dXJuIHYubGVuZ3RoPjA/dGhpczp2b2lkIDB9Z2V0IG5hbWVzKCl7cmV0dXJuIHRoaXMubm9kZXMucmVkdWNlKCh1LHApPT56KHUscC5uYW1lcykse30pfX1jbGFzcyB3IGV4dGVuZHMgRHtyZW5kZXIodSl7cmV0dXJuInsiK3UuX24rc3VwZXIucmVuZGVyKHUpKyJ9Iit1Ll9ufX1jbGFzcyBDIGV4dGVuZHMgRHt9Y2xhc3MgVCBleHRlbmRzIHd7fVQua2luZD0iZWxzZSI7Y2xhc3MgZiBleHRlbmRzIHd7Y29uc3RydWN0b3IodSxwKXtzdXBlcihwKSx0aGlzLmNvbmRpdGlvbj11fXJlbmRlcih1KXtsZXQgcD1gaWYoJHt0aGlzLmNvbmRpdGlvbn0pYCtzdXBlci5yZW5kZXIodSk7cmV0dXJuIHRoaXMuZWxzZSYmKHArPSJlbHNlICIrdGhpcy5lbHNlLnJlbmRlcih1KSkscH1vcHRpbWl6ZU5vZGVzKCl7c3VwZXIub3B0aW1pemVOb2RlcygpO2NvbnN0IHU9dGhpcy5jb25kaXRpb247aWYodT09PSEwKXJldHVybiB0aGlzLm5vZGVzO2xldCBwPXRoaXMuZWxzZTtpZihwKXtjb25zdCB2PXAub3B0aW1pemVOb2RlcygpO3A9dGhpcy5lbHNlPUFycmF5LmlzQXJyYXkodik/bmV3IFQodik6dn1pZihwKXJldHVybiB1PT09ITE/cCBpbnN0YW5jZW9mIGY/cDpwLm5vZGVzOnRoaXMubm9kZXMubGVuZ3RoP3RoaXM6bmV3IGYoT2UodSkscCBpbnN0YW5jZW9mIGY/W3BdOnAubm9kZXMpO2lmKCEodT09PSExfHwhdGhpcy5ub2Rlcy5sZW5ndGgpKXJldHVybiB0aGlzfW9wdGltaXplTmFtZXModSxwKXt2YXIgdjtpZih0aGlzLmVsc2U9KHY9dGhpcy5lbHNlKT09PW51bGx8fHY9PT12b2lkIDA/dm9pZCAwOnYub3B0aW1pemVOYW1lcyh1LHApLCEhKHN1cGVyLm9wdGltaXplTmFtZXModSxwKXx8dGhpcy5lbHNlKSlyZXR1cm4gdGhpcy5jb25kaXRpb249cSh0aGlzLmNvbmRpdGlvbix1LHApLHRoaXN9Z2V0IG5hbWVzKCl7Y29uc3QgdT1zdXBlci5uYW1lcztyZXR1cm4gaWUodSx0aGlzLmNvbmRpdGlvbiksdGhpcy5lbHNlJiZ6KHUsdGhpcy5lbHNlLm5hbWVzKSx1fX1mLmtpbmQ9ImlmIjtjbGFzcyBBIGV4dGVuZHMgd3t9QS5raW5kPSJmb3IiO2NsYXNzIFUgZXh0ZW5kcyBBe2NvbnN0cnVjdG9yKHUpe3N1cGVyKCksdGhpcy5pdGVyYXRpb249dX1yZW5kZXIodSl7cmV0dXJuYGZvcigke3RoaXMuaXRlcmF0aW9ufSlgK3N1cGVyLnJlbmRlcih1KX1vcHRpbWl6ZU5hbWVzKHUscCl7aWYoISFzdXBlci5vcHRpbWl6ZU5hbWVzKHUscCkpcmV0dXJuIHRoaXMuaXRlcmF0aW9uPXEodGhpcy5pdGVyYXRpb24sdSxwKSx0aGlzfWdldCBuYW1lcygpe3JldHVybiB6KHN1cGVyLm5hbWVzLHRoaXMuaXRlcmF0aW9uLm5hbWVzKX19Y2xhc3MgUyBleHRlbmRzIEF7Y29uc3RydWN0b3IodSxwLHYsTCl7c3VwZXIoKSx0aGlzLnZhcktpbmQ9dSx0aGlzLm5hbWU9cCx0aGlzLmZyb209dix0aGlzLnRvPUx9cmVuZGVyKHUpe2NvbnN0IHA9dS5lczU/ci52YXJLaW5kcy52YXI6dGhpcy52YXJLaW5kLHtuYW1lOnYsZnJvbTpMLHRvOkJ9PXRoaXM7cmV0dXJuYGZvcigke3B9ICR7dn09JHtMfTsgJHt2fTwke0J9OyAke3Z9KyspYCtzdXBlci5yZW5kZXIodSl9Z2V0IG5hbWVzKCl7Y29uc3QgdT1pZShzdXBlci5uYW1lcyx0aGlzLmZyb20pO3JldHVybiBpZSh1LHRoaXMudG8pfX1jbGFzcyBqIGV4dGVuZHMgQXtjb25zdHJ1Y3Rvcih1LHAsdixMKXtzdXBlcigpLHRoaXMubG9vcD11LHRoaXMudmFyS2luZD1wLHRoaXMubmFtZT12LHRoaXMuaXRlcmFibGU9TH1yZW5kZXIodSl7cmV0dXJuYGZvcigke3RoaXMudmFyS2luZH0gJHt0aGlzLm5hbWV9ICR7dGhpcy5sb29wfSAke3RoaXMuaXRlcmFibGV9KWArc3VwZXIucmVuZGVyKHUpfW9wdGltaXplTmFtZXModSxwKXtpZighIXN1cGVyLm9wdGltaXplTmFtZXModSxwKSlyZXR1cm4gdGhpcy5pdGVyYWJsZT1xKHRoaXMuaXRlcmFibGUsdSxwKSx0aGlzfWdldCBuYW1lcygpe3JldHVybiB6KHN1cGVyLm5hbWVzLHRoaXMuaXRlcmFibGUubmFtZXMpfX1jbGFzcyBOIGV4dGVuZHMgd3tjb25zdHJ1Y3Rvcih1LHAsdil7c3VwZXIoKSx0aGlzLm5hbWU9dSx0aGlzLmFyZ3M9cCx0aGlzLmFzeW5jPXZ9cmVuZGVyKHUpe3JldHVybmAke3RoaXMuYXN5bmM/ImFzeW5jICI6IiJ9ZnVuY3Rpb24gJHt0aGlzLm5hbWV9KCR7dGhpcy5hcmdzfSlgK3N1cGVyLnJlbmRlcih1KX19Ti5raW5kPSJmdW5jIjtjbGFzcyBIIGV4dGVuZHMgRHtyZW5kZXIodSl7cmV0dXJuInJldHVybiAiK3N1cGVyLnJlbmRlcih1KX19SC5raW5kPSJyZXR1cm4iO2NsYXNzIEcgZXh0ZW5kcyB3e3JlbmRlcih1KXtsZXQgcD0idHJ5IitzdXBlci5yZW5kZXIodSk7cmV0dXJuIHRoaXMuY2F0Y2gmJihwKz10aGlzLmNhdGNoLnJlbmRlcih1KSksdGhpcy5maW5hbGx5JiYocCs9dGhpcy5maW5hbGx5LnJlbmRlcih1KSkscH1vcHRpbWl6ZU5vZGVzKCl7dmFyIHUscDtyZXR1cm4gc3VwZXIub3B0aW1pemVOb2RlcygpLCh1PXRoaXMuY2F0Y2gpPT09bnVsbHx8dT09PXZvaWQgMHx8dS5vcHRpbWl6ZU5vZGVzKCksKHA9dGhpcy5maW5hbGx5KT09PW51bGx8fHA9PT12b2lkIDB8fHAub3B0aW1pemVOb2RlcygpLHRoaXN9b3B0aW1pemVOYW1lcyh1LHApe3ZhciB2LEw7cmV0dXJuIHN1cGVyLm9wdGltaXplTmFtZXModSxwKSwodj10aGlzLmNhdGNoKT09PW51bGx8fHY9PT12b2lkIDB8fHYub3B0aW1pemVOYW1lcyh1LHApLChMPXRoaXMuZmluYWxseSk9PT1udWxsfHxMPT09dm9pZCAwfHxMLm9wdGltaXplTmFtZXModSxwKSx0aGlzfWdldCBuYW1lcygpe2NvbnN0IHU9c3VwZXIubmFtZXM7cmV0dXJuIHRoaXMuY2F0Y2gmJnoodSx0aGlzLmNhdGNoLm5hbWVzKSx0aGlzLmZpbmFsbHkmJnoodSx0aGlzLmZpbmFsbHkubmFtZXMpLHV9fWNsYXNzIEYgZXh0ZW5kcyB3e2NvbnN0cnVjdG9yKHUpe3N1cGVyKCksdGhpcy5lcnJvcj11fXJlbmRlcih1KXtyZXR1cm5gY2F0Y2goJHt0aGlzLmVycm9yfSlgK3N1cGVyLnJlbmRlcih1KX19Ri5raW5kPSJjYXRjaCI7Y2xhc3MgVyBleHRlbmRzIHd7cmVuZGVyKHUpe3JldHVybiJmaW5hbGx5IitzdXBlci5yZW5kZXIodSl9fVcua2luZD0iZmluYWxseSI7Y2xhc3MgbWV7Y29uc3RydWN0b3IodSxwPXt9KXt0aGlzLl92YWx1ZXM9e30sdGhpcy5fYmxvY2tTdGFydHM9W10sdGhpcy5fY29uc3RhbnRzPXt9LHRoaXMub3B0cz1sZShZKHt9LHApLHtfbjpwLmxpbmVzP2AKYDoiIn0pLHRoaXMuX2V4dFNjb3BlPXUsdGhpcy5fc2NvcGU9bmV3IHIuU2NvcGUoe3BhcmVudDp1fSksdGhpcy5fbm9kZXM9W25ldyBDXX10b1N0cmluZygpe3JldHVybiB0aGlzLl9yb290LnJlbmRlcih0aGlzLm9wdHMpfW5hbWUodSl7cmV0dXJuIHRoaXMuX3Njb3BlLm5hbWUodSl9c2NvcGVOYW1lKHUpe3JldHVybiB0aGlzLl9leHRTY29wZS5uYW1lKHUpfXNjb3BlVmFsdWUodSxwKXtjb25zdCB2PXRoaXMuX2V4dFNjb3BlLnZhbHVlKHUscCk7cmV0dXJuKHRoaXMuX3ZhbHVlc1t2LnByZWZpeF18fCh0aGlzLl92YWx1ZXNbdi5wcmVmaXhdPW5ldyBTZXQpKS5hZGQodiksdn1nZXRTY29wZVZhbHVlKHUscCl7cmV0dXJuIHRoaXMuX2V4dFNjb3BlLmdldFZhbHVlKHUscCl9c2NvcGVSZWZzKHUpe3JldHVybiB0aGlzLl9leHRTY29wZS5zY29wZVJlZnModSx0aGlzLl92YWx1ZXMpfXNjb3BlQ29kZSgpe3JldHVybiB0aGlzLl9leHRTY29wZS5zY29wZUNvZGUodGhpcy5fdmFsdWVzKX1fZGVmKHUscCx2LEwpe2NvbnN0IEI9dGhpcy5fc2NvcGUudG9OYW1lKHApO3JldHVybiB2IT09dm9pZCAwJiZMJiYodGhpcy5fY29uc3RhbnRzW0Iuc3RyXT12KSx0aGlzLl9sZWFmTm9kZShuZXcgaSh1LEIsdikpLEJ9Y29uc3QodSxwLHYpe3JldHVybiB0aGlzLl9kZWYoci52YXJLaW5kcy5jb25zdCx1LHAsdil9bGV0KHUscCx2KXtyZXR1cm4gdGhpcy5fZGVmKHIudmFyS2luZHMubGV0LHUscCx2KX12YXIodSxwLHYpe3JldHVybiB0aGlzLl9kZWYoci52YXJLaW5kcy52YXIsdSxwLHYpfWFzc2lnbih1LHAsdil7cmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBsKHUscCx2KSl9YWRkKHUscCl7cmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBjKHUsZS5vcGVyYXRvcnMuQURELHApKX1jb2RlKHUpe3JldHVybiB0eXBlb2YgdT09ImZ1bmN0aW9uIj91KCk6dSE9PW4ubmlsJiZ0aGlzLl9sZWFmTm9kZShuZXcgTyh1KSksdGhpc31vYmplY3QoLi4udSl7Y29uc3QgcD1bInsiXTtmb3IoY29uc3RbdixMXW9mIHUpcC5sZW5ndGg+MSYmcC5wdXNoKCIsIikscC5wdXNoKHYpLCh2IT09THx8dGhpcy5vcHRzLmVzNSkmJihwLnB1c2goIjoiKSwoMCxuLmFkZENvZGVBcmcpKHAsTCkpO3JldHVybiBwLnB1c2goIn0iKSxuZXcgbi5fQ29kZShwKX1pZih1LHAsdil7aWYodGhpcy5fYmxvY2tOb2RlKG5ldyBmKHUpKSxwJiZ2KXRoaXMuY29kZShwKS5lbHNlKCkuY29kZSh2KS5lbmRJZigpO2Vsc2UgaWYocCl0aGlzLmNvZGUocCkuZW5kSWYoKTtlbHNlIGlmKHYpdGhyb3cgbmV3IEVycm9yKCdDb2RlR2VuOiAiZWxzZSIgYm9keSB3aXRob3V0ICJ0aGVuIiBib2R5Jyk7cmV0dXJuIHRoaXN9ZWxzZUlmKHUpe3JldHVybiB0aGlzLl9lbHNlTm9kZShuZXcgZih1KSl9ZWxzZSgpe3JldHVybiB0aGlzLl9lbHNlTm9kZShuZXcgVCl9ZW5kSWYoKXtyZXR1cm4gdGhpcy5fZW5kQmxvY2tOb2RlKGYsVCl9X2Zvcih1LHApe3JldHVybiB0aGlzLl9ibG9ja05vZGUodSkscCYmdGhpcy5jb2RlKHApLmVuZEZvcigpLHRoaXN9Zm9yKHUscCl7cmV0dXJuIHRoaXMuX2ZvcihuZXcgVSh1KSxwKX1mb3JSYW5nZSh1LHAsdixMLEI9dGhpcy5vcHRzLmVzNT9yLnZhcktpbmRzLnZhcjpyLnZhcktpbmRzLmxldCl7Y29uc3QgUT10aGlzLl9zY29wZS50b05hbWUodSk7cmV0dXJuIHRoaXMuX2ZvcihuZXcgUyhCLFEscCx2KSwoKT0+TChRKSl9Zm9yT2YodSxwLHYsTD1yLnZhcktpbmRzLmNvbnN0KXtjb25zdCBCPXRoaXMuX3Njb3BlLnRvTmFtZSh1KTtpZih0aGlzLm9wdHMuZXM1KXtjb25zdCBRPXAgaW5zdGFuY2VvZiBuLk5hbWU/cDp0aGlzLnZhcigiX2FyciIscCk7cmV0dXJuIHRoaXMuZm9yUmFuZ2UoIl9pIiwwLCgwLG4uXylgJHtRfS5sZW5ndGhgLHJlPT57dGhpcy52YXIoQiwoMCxuLl8pYCR7UX1bJHtyZX1dYCksdihCKX0pfXJldHVybiB0aGlzLl9mb3IobmV3IGooIm9mIixMLEIscCksKCk9PnYoQikpfWZvckluKHUscCx2LEw9dGhpcy5vcHRzLmVzNT9yLnZhcktpbmRzLnZhcjpyLnZhcktpbmRzLmNvbnN0KXtpZih0aGlzLm9wdHMub3duUHJvcGVydGllcylyZXR1cm4gdGhpcy5mb3JPZih1LCgwLG4uXylgT2JqZWN0LmtleXMoJHtwfSlgLHYpO2NvbnN0IEI9dGhpcy5fc2NvcGUudG9OYW1lKHUpO3JldHVybiB0aGlzLl9mb3IobmV3IGooImluIixMLEIscCksKCk9PnYoQikpfWVuZEZvcigpe3JldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoQSl9bGFiZWwodSl7cmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBtKHUpKX1icmVhayh1KXtyZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IGEodSkpfXJldHVybih1KXtjb25zdCBwPW5ldyBIO2lmKHRoaXMuX2Jsb2NrTm9kZShwKSx0aGlzLmNvZGUodSkscC5ub2Rlcy5sZW5ndGghPT0xKXRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInJldHVybiIgc2hvdWxkIGhhdmUgb25lIG5vZGUnKTtyZXR1cm4gdGhpcy5fZW5kQmxvY2tOb2RlKEgpfXRyeSh1LHAsdil7aWYoIXAmJiF2KXRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInRyeSIgd2l0aG91dCAiY2F0Y2giIGFuZCAiZmluYWxseSInKTtjb25zdCBMPW5ldyBHO2lmKHRoaXMuX2Jsb2NrTm9kZShMKSx0aGlzLmNvZGUodSkscCl7Y29uc3QgQj10aGlzLm5hbWUoImUiKTt0aGlzLl9jdXJyTm9kZT1MLmNhdGNoPW5ldyBGKEIpLHAoQil9cmV0dXJuIHYmJih0aGlzLl9jdXJyTm9kZT1MLmZpbmFsbHk9bmV3IFcsdGhpcy5jb2RlKHYpKSx0aGlzLl9lbmRCbG9ja05vZGUoRixXKX10aHJvdyh1KXtyZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IGgodSkpfWJsb2NrKHUscCl7cmV0dXJuIHRoaXMuX2Jsb2NrU3RhcnRzLnB1c2godGhpcy5fbm9kZXMubGVuZ3RoKSx1JiZ0aGlzLmNvZGUodSkuZW5kQmxvY2socCksdGhpc31lbmRCbG9jayh1KXtjb25zdCBwPXRoaXMuX2Jsb2NrU3RhcnRzLnBvcCgpO2lmKHA9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiBub3QgaW4gc2VsZi1iYWxhbmNpbmcgYmxvY2siKTtjb25zdCB2PXRoaXMuX25vZGVzLmxlbmd0aC1wO2lmKHY8MHx8dSE9PXZvaWQgMCYmdiE9PXUpdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiB3cm9uZyBudW1iZXIgb2Ygbm9kZXM6ICR7dn0gdnMgJHt1fSBleHBlY3RlZGApO3JldHVybiB0aGlzLl9ub2Rlcy5sZW5ndGg9cCx0aGlzfWZ1bmModSxwPW4ubmlsLHYsTCl7cmV0dXJuIHRoaXMuX2Jsb2NrTm9kZShuZXcgTih1LHAsdikpLEwmJnRoaXMuY29kZShMKS5lbmRGdW5jKCksdGhpc31lbmRGdW5jKCl7cmV0dXJuIHRoaXMuX2VuZEJsb2NrTm9kZShOKX1vcHRpbWl6ZSh1PTEpe2Zvcig7dS0tID4wOyl0aGlzLl9yb290Lm9wdGltaXplTm9kZXMoKSx0aGlzLl9yb290Lm9wdGltaXplTmFtZXModGhpcy5fcm9vdC5uYW1lcyx0aGlzLl9jb25zdGFudHMpfV9sZWFmTm9kZSh1KXtyZXR1cm4gdGhpcy5fY3Vyck5vZGUubm9kZXMucHVzaCh1KSx0aGlzfV9ibG9ja05vZGUodSl7dGhpcy5fY3Vyck5vZGUubm9kZXMucHVzaCh1KSx0aGlzLl9ub2Rlcy5wdXNoKHUpfV9lbmRCbG9ja05vZGUodSxwKXtjb25zdCB2PXRoaXMuX2N1cnJOb2RlO2lmKHYgaW5zdGFuY2VvZiB1fHxwJiZ2IGluc3RhbmNlb2YgcClyZXR1cm4gdGhpcy5fbm9kZXMucG9wKCksdGhpczt0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IG5vdCBpbiBibG9jayAiJHtwP2Ake3Uua2luZH0vJHtwLmtpbmR9YDp1LmtpbmR9ImApfV9lbHNlTm9kZSh1KXtjb25zdCBwPXRoaXMuX2N1cnJOb2RlO2lmKCEocCBpbnN0YW5jZW9mIGYpKXRocm93IG5ldyBFcnJvcignQ29kZUdlbjogImVsc2UiIHdpdGhvdXQgImlmIicpO3JldHVybiB0aGlzLl9jdXJyTm9kZT1wLmVsc2U9dSx0aGlzfWdldCBfcm9vdCgpe3JldHVybiB0aGlzLl9ub2Rlc1swXX1nZXQgX2N1cnJOb2RlKCl7Y29uc3QgdT10aGlzLl9ub2RlcztyZXR1cm4gdVt1Lmxlbmd0aC0xXX1zZXQgX2N1cnJOb2RlKHUpe2NvbnN0IHA9dGhpcy5fbm9kZXM7cFtwLmxlbmd0aC0xXT11fX1lLkNvZGVHZW49bWU7ZnVuY3Rpb24geihnLHUpe2Zvcihjb25zdCBwIGluIHUpZ1twXT0oZ1twXXx8MCkrKHVbcF18fDApO3JldHVybiBnfWZ1bmN0aW9uIGllKGcsdSl7cmV0dXJuIHUgaW5zdGFuY2VvZiBuLl9Db2RlT3JOYW1lP3ooZyx1Lm5hbWVzKTpnfWZ1bmN0aW9uIHEoZyx1LHApe2lmKGcgaW5zdGFuY2VvZiBuLk5hbWUpcmV0dXJuIHYoZyk7aWYoIUwoZykpcmV0dXJuIGc7cmV0dXJuIG5ldyBuLl9Db2RlKGcuX2l0ZW1zLnJlZHVjZSgoQixRKT0+KFEgaW5zdGFuY2VvZiBuLk5hbWUmJihRPXYoUSkpLFEgaW5zdGFuY2VvZiBuLl9Db2RlP0IucHVzaCguLi5RLl9pdGVtcyk6Qi5wdXNoKFEpLEIpLFtdKSk7ZnVuY3Rpb24gdihCKXtjb25zdCBRPXBbQi5zdHJdO3JldHVybiBRPT09dm9pZCAwfHx1W0Iuc3RyXSE9PTE/QjooZGVsZXRlIHVbQi5zdHJdLFEpfWZ1bmN0aW9uIEwoQil7cmV0dXJuIEIgaW5zdGFuY2VvZiBuLl9Db2RlJiZCLl9pdGVtcy5zb21lKFE9PlEgaW5zdGFuY2VvZiBuLk5hbWUmJnVbUS5zdHJdPT09MSYmcFtRLnN0cl0hPT12b2lkIDApfX1mdW5jdGlvbiBFZShnLHUpe2Zvcihjb25zdCBwIGluIHUpZ1twXT0oZ1twXXx8MCktKHVbcF18fDApfWZ1bmN0aW9uIE9lKGcpe3JldHVybiB0eXBlb2YgZz09ImJvb2xlYW4ifHx0eXBlb2YgZz09Im51bWJlciJ8fGc9PT1udWxsPyFnOigwLG4uXylgISR7UChnKX1gfWUubm90PU9lO2NvbnN0IEhlPVIoZS5vcGVyYXRvcnMuQU5EKTtmdW5jdGlvbiBGZSguLi5nKXtyZXR1cm4gZy5yZWR1Y2UoSGUpfWUuYW5kPUZlO2NvbnN0IGxyPVIoZS5vcGVyYXRvcnMuT1IpO2Z1bmN0aW9uIHkoLi4uZyl7cmV0dXJuIGcucmVkdWNlKGxyKX1lLm9yPXk7ZnVuY3Rpb24gUihnKXtyZXR1cm4odSxwKT0+dT09PW4ubmlsP3A6cD09PW4ubmlsP3U6KDAsbi5fKWAke1AodSl9ICR7Z30gJHtQKHApfWB9ZnVuY3Rpb24gUChnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIG4uTmFtZT9nOigwLG4uXylgKCR7Z30pYH19KF9lKTt2YXIgQWU9e307KGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNoZWNrU3RyaWN0TW9kZT1lLmdldEVycm9yUGF0aD1lLlR5cGU9ZS51c2VGdW5jPWUuc2V0RXZhbHVhdGVkPWUuZXZhbHVhdGVkUHJvcHNUb05hbWU9ZS5tZXJnZUV2YWx1YXRlZD1lLmVhY2hJdGVtPWUudW5lc2NhcGVKc29uUG9pbnRlcj1lLmVzY2FwZUpzb25Qb2ludGVyPWUuZXNjYXBlRnJhZ21lbnQ9ZS51bmVzY2FwZUZyYWdtZW50PWUuc2NoZW1hUmVmT3JWYWw9ZS5zY2hlbWFIYXNSdWxlc0J1dFJlZj1lLnNjaGVtYUhhc1J1bGVzPWUuY2hlY2tVbmtub3duUnVsZXM9ZS5hbHdheXNWYWxpZFNjaGVtYT1lLnRvSGFzaD12b2lkIDA7Y29uc3Qgbj1fZSxyPU5yO2Z1bmN0aW9uIG8oTil7Y29uc3QgSD17fTtmb3IoY29uc3QgRyBvZiBOKUhbR109ITA7cmV0dXJuIEh9ZS50b0hhc2g9bztmdW5jdGlvbiB0KE4sSCl7cmV0dXJuIHR5cGVvZiBIPT0iYm9vbGVhbiI/SDpPYmplY3Qua2V5cyhIKS5sZW5ndGg9PT0wPyEwOihzKE4sSCksIWkoSCxOLnNlbGYuUlVMRVMuYWxsKSl9ZS5hbHdheXNWYWxpZFNjaGVtYT10O2Z1bmN0aW9uIHMoTixIPU4uc2NoZW1hKXtjb25zdHtvcHRzOkcsc2VsZjpGfT1OO2lmKCFHLnN0cmljdFNjaGVtYXx8dHlwZW9mIEg9PSJib29sZWFuIilyZXR1cm47Y29uc3QgVz1GLlJVTEVTLmtleXdvcmRzO2Zvcihjb25zdCBtZSBpbiBIKVdbbWVdfHxqKE4sYHVua25vd24ga2V5d29yZDogIiR7bWV9ImApfWUuY2hlY2tVbmtub3duUnVsZXM9cztmdW5jdGlvbiBpKE4sSCl7aWYodHlwZW9mIE49PSJib29sZWFuIilyZXR1cm4hTjtmb3IoY29uc3QgRyBpbiBOKWlmKEhbR10pcmV0dXJuITA7cmV0dXJuITF9ZS5zY2hlbWFIYXNSdWxlcz1pO2Z1bmN0aW9uIGwoTixIKXtpZih0eXBlb2YgTj09ImJvb2xlYW4iKXJldHVybiFOO2Zvcihjb25zdCBHIGluIE4paWYoRyE9PSIkcmVmIiYmSC5hbGxbR10pcmV0dXJuITA7cmV0dXJuITF9ZS5zY2hlbWFIYXNSdWxlc0J1dFJlZj1sO2Z1bmN0aW9uIGMoe3RvcFNjaGVtYVJlZjpOLHNjaGVtYVBhdGg6SH0sRyxGLFcpe2lmKCFXKXtpZih0eXBlb2YgRz09Im51bWJlciJ8fHR5cGVvZiBHPT0iYm9vbGVhbiIpcmV0dXJuIEc7aWYodHlwZW9mIEc9PSJzdHJpbmciKXJldHVybigwLG4uXylgJHtHfWB9cmV0dXJuKDAsbi5fKWAke059JHtIfSR7KDAsbi5nZXRQcm9wZXJ0eSkoRil9YH1lLnNjaGVtYVJlZk9yVmFsPWM7ZnVuY3Rpb24gbShOKXtyZXR1cm4gTyhkZWNvZGVVUklDb21wb25lbnQoTikpfWUudW5lc2NhcGVGcmFnbWVudD1tO2Z1bmN0aW9uIGEoTil7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChoKE4pKX1lLmVzY2FwZUZyYWdtZW50PWE7ZnVuY3Rpb24gaChOKXtyZXR1cm4gdHlwZW9mIE49PSJudW1iZXIiP2Ake059YDpOLnJlcGxhY2UoL34vZywifjAiKS5yZXBsYWNlKC9cLy9nLCJ+MSIpfWUuZXNjYXBlSnNvblBvaW50ZXI9aDtmdW5jdGlvbiBPKE4pe3JldHVybiBOLnJlcGxhY2UoL34xL2csIi8iKS5yZXBsYWNlKC9+MC9nLCJ+Iil9ZS51bmVzY2FwZUpzb25Qb2ludGVyPU87ZnVuY3Rpb24gRChOLEgpe2lmKEFycmF5LmlzQXJyYXkoTikpZm9yKGNvbnN0IEcgb2YgTilIKEcpO2Vsc2UgSChOKX1lLmVhY2hJdGVtPUQ7ZnVuY3Rpb24gdyh7bWVyZ2VOYW1lczpOLG1lcmdlVG9OYW1lOkgsbWVyZ2VWYWx1ZXM6RyxyZXN1bHRUb05hbWU6Rn0pe3JldHVybihXLG1lLHosaWUpPT57Y29uc3QgcT16PT09dm9pZCAwP21lOnogaW5zdGFuY2VvZiBuLk5hbWU/KG1lIGluc3RhbmNlb2Ygbi5OYW1lP04oVyxtZSx6KTpIKFcsbWUseikseik6bWUgaW5zdGFuY2VvZiBuLk5hbWU/KEgoVyx6LG1lKSxtZSk6RyhtZSx6KTtyZXR1cm4gaWU9PT1uLk5hbWUmJiEocSBpbnN0YW5jZW9mIG4uTmFtZSk/RihXLHEpOnF9fWUubWVyZ2VFdmFsdWF0ZWQ9e3Byb3BzOncoe21lcmdlTmFtZXM6KE4sSCxHKT0+Ti5pZigoMCxuLl8pYCR7R30gIT09IHRydWUgJiYgJHtIfSAhPT0gdW5kZWZpbmVkYCwoKT0+e04uaWYoKDAsbi5fKWAke0h9ID09PSB0cnVlYCwoKT0+Ti5hc3NpZ24oRywhMCksKCk9Pk4uYXNzaWduKEcsKDAsbi5fKWAke0d9IHx8IHt9YCkuY29kZSgoMCxuLl8pYE9iamVjdC5hc3NpZ24oJHtHfSwgJHtIfSlgKSl9KSxtZXJnZVRvTmFtZTooTixILEcpPT5OLmlmKCgwLG4uXylgJHtHfSAhPT0gdHJ1ZWAsKCk9PntIPT09ITA/Ti5hc3NpZ24oRywhMCk6KE4uYXNzaWduKEcsKDAsbi5fKWAke0d9IHx8IHt9YCksVChOLEcsSCkpfSksbWVyZ2VWYWx1ZXM6KE4sSCk9Pk49PT0hMD8hMDpZKFkoe30sTiksSCkscmVzdWx0VG9OYW1lOkN9KSxpdGVtczp3KHttZXJnZU5hbWVzOihOLEgsRyk9Pk4uaWYoKDAsbi5fKWAke0d9ICE9PSB0cnVlICYmICR7SH0gIT09IHVuZGVmaW5lZGAsKCk9Pk4uYXNzaWduKEcsKDAsbi5fKWAke0h9ID09PSB0cnVlID8gdHJ1ZSA6ICR7R30gPiAke0h9ID8gJHtHfSA6ICR7SH1gKSksbWVyZ2VUb05hbWU6KE4sSCxHKT0+Ti5pZigoMCxuLl8pYCR7R30gIT09IHRydWVgLCgpPT5OLmFzc2lnbihHLEg9PT0hMD8hMDooMCxuLl8pYCR7R30gPiAke0h9ID8gJHtHfSA6ICR7SH1gKSksbWVyZ2VWYWx1ZXM6KE4sSCk9Pk49PT0hMD8hMDpNYXRoLm1heChOLEgpLHJlc3VsdFRvTmFtZTooTixIKT0+Ti52YXIoIml0ZW1zIixIKX0pfTtmdW5jdGlvbiBDKE4sSCl7aWYoSD09PSEwKXJldHVybiBOLnZhcigicHJvcHMiLCEwKTtjb25zdCBHPU4udmFyKCJwcm9wcyIsKDAsbi5fKWB7fWApO3JldHVybiBIIT09dm9pZCAwJiZUKE4sRyxIKSxHfWUuZXZhbHVhdGVkUHJvcHNUb05hbWU9QztmdW5jdGlvbiBUKE4sSCxHKXtPYmplY3Qua2V5cyhHKS5mb3JFYWNoKEY9Pk4uYXNzaWduKCgwLG4uXylgJHtIfSR7KDAsbi5nZXRQcm9wZXJ0eSkoRil9YCwhMCkpfWUuc2V0RXZhbHVhdGVkPVQ7Y29uc3QgZj17fTtmdW5jdGlvbiBBKE4sSCl7cmV0dXJuIE4uc2NvcGVWYWx1ZSgiZnVuYyIse3JlZjpILGNvZGU6ZltILmNvZGVdfHwoZltILmNvZGVdPW5ldyByLl9Db2RlKEguY29kZSkpfSl9ZS51c2VGdW5jPUE7dmFyIFU7KGZ1bmN0aW9uKE4pe05bTi5OdW09MF09Ik51bSIsTltOLlN0cj0xXT0iU3RyIn0pKFU9ZS5UeXBlfHwoZS5UeXBlPXt9KSk7ZnVuY3Rpb24gUyhOLEgsRyl7aWYoTiBpbnN0YW5jZW9mIG4uTmFtZSl7Y29uc3QgRj1IPT09VS5OdW07cmV0dXJuIEc/Rj8oMCxuLl8pYCJbIiArICR7Tn0gKyAiXSJgOigwLG4uXylgIlsnIiArICR7Tn0gKyAiJ10iYDpGPygwLG4uXylgIi8iICsgJHtOfWA6KDAsbi5fKWAiLyIgKyAke059LnJlcGxhY2UoL34vZywgIn4wIikucmVwbGFjZSgvXFwvL2csICJ+MSIpYH1yZXR1cm4gRz8oMCxuLmdldFByb3BlcnR5KShOKS50b1N0cmluZygpOiIvIitoKE4pfWUuZ2V0RXJyb3JQYXRoPVM7ZnVuY3Rpb24gaihOLEgsRz1OLm9wdHMuc3RyaWN0U2NoZW1hKXtpZighIUcpe2lmKEg9YHN0cmljdCBtb2RlOiAke0h9YCxHPT09ITApdGhyb3cgbmV3IEVycm9yKEgpO04uc2VsZi5sb2dnZXIud2FybihIKX19ZS5jaGVja1N0cmljdE1vZGU9an0pKEFlKTt2YXIgTWU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KE1lLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBTZT1fZSxFdT17ZGF0YTpuZXcgU2UuTmFtZSgiZGF0YSIpLHZhbEN4dDpuZXcgU2UuTmFtZSgidmFsQ3h0IiksaW5zdGFuY2VQYXRoOm5ldyBTZS5OYW1lKCJpbnN0YW5jZVBhdGgiKSxwYXJlbnREYXRhOm5ldyBTZS5OYW1lKCJwYXJlbnREYXRhIikscGFyZW50RGF0YVByb3BlcnR5Om5ldyBTZS5OYW1lKCJwYXJlbnREYXRhUHJvcGVydHkiKSxyb290RGF0YTpuZXcgU2UuTmFtZSgicm9vdERhdGEiKSxkeW5hbWljQW5jaG9yczpuZXcgU2UuTmFtZSgiZHluYW1pY0FuY2hvcnMiKSx2RXJyb3JzOm5ldyBTZS5OYW1lKCJ2RXJyb3JzIiksZXJyb3JzOm5ldyBTZS5OYW1lKCJlcnJvcnMiKSx0aGlzOm5ldyBTZS5OYW1lKCJ0aGlzIiksc2VsZjpuZXcgU2UuTmFtZSgic2VsZiIpLHNjb3BlOm5ldyBTZS5OYW1lKCJzY29wZSIpLGpzb246bmV3IFNlLk5hbWUoImpzb24iKSxqc29uUG9zOm5ldyBTZS5OYW1lKCJqc29uUG9zIiksanNvbkxlbjpuZXcgU2UuTmFtZSgianNvbkxlbiIpLGpzb25QYXJ0Om5ldyBTZS5OYW1lKCJqc29uUGFydCIpfTtNZS5kZWZhdWx0PUV1LGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmV4dGVuZEVycm9ycz1lLnJlc2V0RXJyb3JzQ291bnQ9ZS5yZXBvcnRFeHRyYUVycm9yPWUucmVwb3J0RXJyb3I9ZS5rZXl3b3JkJERhdGFFcnJvcj1lLmtleXdvcmRFcnJvcj12b2lkIDA7Y29uc3Qgbj1fZSxyPUFlLG89TWU7ZS5rZXl3b3JkRXJyb3I9e21lc3NhZ2U6KHtrZXl3b3JkOlR9KT0+KDAsbi5zdHIpYG11c3QgcGFzcyAiJHtUfSIga2V5d29yZCB2YWxpZGF0aW9uYH0sZS5rZXl3b3JkJERhdGFFcnJvcj17bWVzc2FnZTooe2tleXdvcmQ6VCxzY2hlbWFUeXBlOmZ9KT0+Zj8oMCxuLnN0cilgIiR7VH0iIGtleXdvcmQgbXVzdCBiZSAke2Z9ICgkZGF0YSlgOigwLG4uc3RyKWAiJHtUfSIga2V5d29yZCBpcyBpbnZhbGlkICgkZGF0YSlgfTtmdW5jdGlvbiB0KFQsZj1lLmtleXdvcmRFcnJvcixBLFUpe2NvbnN0e2l0OlN9PVQse2dlbjpqLGNvbXBvc2l0ZVJ1bGU6TixhbGxFcnJvcnM6SH09UyxHPWgoVCxmLEEpOyhVIT1udWxsP1U6Tnx8SCk/YyhqLEcpOm0oUywoMCxuLl8pYFske0d9XWApfWUucmVwb3J0RXJyb3I9dDtmdW5jdGlvbiBzKFQsZj1lLmtleXdvcmRFcnJvcixBKXtjb25zdHtpdDpVfT1ULHtnZW46Uyxjb21wb3NpdGVSdWxlOmosYWxsRXJyb3JzOk59PVUsSD1oKFQsZixBKTtjKFMsSCksanx8Tnx8bShVLG8uZGVmYXVsdC52RXJyb3JzKX1lLnJlcG9ydEV4dHJhRXJyb3I9cztmdW5jdGlvbiBpKFQsZil7VC5hc3NpZ24oby5kZWZhdWx0LmVycm9ycyxmKSxULmlmKCgwLG4uXylgJHtvLmRlZmF1bHQudkVycm9yc30gIT09IG51bGxgLCgpPT5ULmlmKGYsKCk9PlQuYXNzaWduKCgwLG4uXylgJHtvLmRlZmF1bHQudkVycm9yc30ubGVuZ3RoYCxmKSwoKT0+VC5hc3NpZ24oby5kZWZhdWx0LnZFcnJvcnMsbnVsbCkpKX1lLnJlc2V0RXJyb3JzQ291bnQ9aTtmdW5jdGlvbiBsKHtnZW46VCxrZXl3b3JkOmYsc2NoZW1hVmFsdWU6QSxkYXRhOlUsZXJyc0NvdW50OlMsaXQ6an0pe2lmKFM9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTtjb25zdCBOPVQubmFtZSgiZXJyIik7VC5mb3JSYW5nZSgiaSIsUyxvLmRlZmF1bHQuZXJyb3JzLEg9PntULmNvbnN0KE4sKDAsbi5fKWAke28uZGVmYXVsdC52RXJyb3JzfVske0h9XWApLFQuaWYoKDAsbi5fKWAke059Lmluc3RhbmNlUGF0aCA9PT0gdW5kZWZpbmVkYCwoKT0+VC5hc3NpZ24oKDAsbi5fKWAke059Lmluc3RhbmNlUGF0aGAsKDAsbi5zdHJDb25jYXQpKG8uZGVmYXVsdC5pbnN0YW5jZVBhdGgsai5lcnJvclBhdGgpKSksVC5hc3NpZ24oKDAsbi5fKWAke059LnNjaGVtYVBhdGhgLCgwLG4uc3RyKWAke2ouZXJyU2NoZW1hUGF0aH0vJHtmfWApLGoub3B0cy52ZXJib3NlJiYoVC5hc3NpZ24oKDAsbi5fKWAke059LnNjaGVtYWAsQSksVC5hc3NpZ24oKDAsbi5fKWAke059LmRhdGFgLFUpKX0pfWUuZXh0ZW5kRXJyb3JzPWw7ZnVuY3Rpb24gYyhULGYpe2NvbnN0IEE9VC5jb25zdCgiZXJyIixmKTtULmlmKCgwLG4uXylgJHtvLmRlZmF1bHQudkVycm9yc30gPT09IG51bGxgLCgpPT5ULmFzc2lnbihvLmRlZmF1bHQudkVycm9ycywoMCxuLl8pYFske0F9XWApLCgwLG4uXylgJHtvLmRlZmF1bHQudkVycm9yc30ucHVzaCgke0F9KWApLFQuY29kZSgoMCxuLl8pYCR7by5kZWZhdWx0LmVycm9yc30rK2ApfWZ1bmN0aW9uIG0oVCxmKXtjb25zdHtnZW46QSx2YWxpZGF0ZU5hbWU6VSxzY2hlbWFFbnY6U309VDtTLiRhc3luYz9BLnRocm93KCgwLG4uXylgbmV3ICR7VC5WYWxpZGF0aW9uRXJyb3J9KCR7Zn0pYCk6KEEuYXNzaWduKCgwLG4uXylgJHtVfS5lcnJvcnNgLGYpLEEucmV0dXJuKCExKSl9Y29uc3QgYT17a2V5d29yZDpuZXcgbi5OYW1lKCJrZXl3b3JkIiksc2NoZW1hUGF0aDpuZXcgbi5OYW1lKCJzY2hlbWFQYXRoIikscGFyYW1zOm5ldyBuLk5hbWUoInBhcmFtcyIpLHByb3BlcnR5TmFtZTpuZXcgbi5OYW1lKCJwcm9wZXJ0eU5hbWUiKSxtZXNzYWdlOm5ldyBuLk5hbWUoIm1lc3NhZ2UiKSxzY2hlbWE6bmV3IG4uTmFtZSgic2NoZW1hIikscGFyZW50U2NoZW1hOm5ldyBuLk5hbWUoInBhcmVudFNjaGVtYSIpfTtmdW5jdGlvbiBoKFQsZixBKXtjb25zdHtjcmVhdGVFcnJvcnM6VX09VC5pdDtyZXR1cm4gVT09PSExPygwLG4uXylge31gOk8oVCxmLEEpfWZ1bmN0aW9uIE8oVCxmLEE9e30pe2NvbnN0e2dlbjpVLGl0OlN9PVQsaj1bRChTLEEpLHcoVCxBKV07cmV0dXJuIEMoVCxmLGopLFUub2JqZWN0KC4uLmopfWZ1bmN0aW9uIEQoe2Vycm9yUGF0aDpUfSx7aW5zdGFuY2VQYXRoOmZ9KXtjb25zdCBBPWY/KDAsbi5zdHIpYCR7VH0keygwLHIuZ2V0RXJyb3JQYXRoKShmLHIuVHlwZS5TdHIpfWA6VDtyZXR1cm5bby5kZWZhdWx0Lmluc3RhbmNlUGF0aCwoMCxuLnN0ckNvbmNhdCkoby5kZWZhdWx0Lmluc3RhbmNlUGF0aCxBKV19ZnVuY3Rpb24gdyh7a2V5d29yZDpULGl0OntlcnJTY2hlbWFQYXRoOmZ9fSx7c2NoZW1hUGF0aDpBLHBhcmVudFNjaGVtYTpVfSl7bGV0IFM9VT9mOigwLG4uc3RyKWAke2Z9LyR7VH1gO3JldHVybiBBJiYoUz0oMCxuLnN0cilgJHtTfSR7KDAsci5nZXRFcnJvclBhdGgpKEEsci5UeXBlLlN0cil9YCksW2Euc2NoZW1hUGF0aCxTXX1mdW5jdGlvbiBDKFQse3BhcmFtczpmLG1lc3NhZ2U6QX0sVSl7Y29uc3R7a2V5d29yZDpTLGRhdGE6aixzY2hlbWFWYWx1ZTpOLGl0Okh9PVQse29wdHM6Ryxwcm9wZXJ0eU5hbWU6Rix0b3BTY2hlbWFSZWY6VyxzY2hlbWFQYXRoOm1lfT1IO1UucHVzaChbYS5rZXl3b3JkLFNdLFthLnBhcmFtcyx0eXBlb2YgZj09ImZ1bmN0aW9uIj9mKFQpOmZ8fCgwLG4uXylge31gXSksRy5tZXNzYWdlcyYmVS5wdXNoKFthLm1lc3NhZ2UsdHlwZW9mIEE9PSJmdW5jdGlvbiI/QShUKTpBXSksRy52ZXJib3NlJiZVLnB1c2goW2Euc2NoZW1hLE5dLFthLnBhcmVudFNjaGVtYSwoMCxuLl8pYCR7V30ke21lfWBdLFtvLmRlZmF1bHQuZGF0YSxqXSksRiYmVS5wdXNoKFthLnByb3BlcnR5TmFtZSxGXSl9fShUciksT2JqZWN0LmRlZmluZVByb3BlcnR5KHJyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxyci5ib29sT3JFbXB0eVNjaGVtYT1yci50b3BCb29sT3JFbXB0eVNjaGVtYT12b2lkIDA7Y29uc3QgZnU9VHIsUnU9X2UsT3U9TWUsVHU9e21lc3NhZ2U6ImJvb2xlYW4gc2NoZW1hIGlzIGZhbHNlIn07ZnVuY3Rpb24gTnUoZSl7Y29uc3R7Z2VuOm4sc2NoZW1hOnIsdmFsaWRhdGVOYW1lOm99PWU7cj09PSExP3RzKGUsITEpOnR5cGVvZiByPT0ib2JqZWN0IiYmci4kYXN5bmM9PT0hMD9uLnJldHVybihPdS5kZWZhdWx0LmRhdGEpOihuLmFzc2lnbigoMCxSdS5fKWAke299LmVycm9yc2AsbnVsbCksbi5yZXR1cm4oITApKX1yci50b3BCb29sT3JFbXB0eVNjaGVtYT1OdTtmdW5jdGlvbiBndShlLG4pe2NvbnN0e2dlbjpyLHNjaGVtYTpvfT1lO289PT0hMT8oci52YXIobiwhMSksdHMoZSkpOnIudmFyKG4sITApfXJyLmJvb2xPckVtcHR5U2NoZW1hPWd1O2Z1bmN0aW9uIHRzKGUsbil7Y29uc3R7Z2VuOnIsZGF0YTpvfT1lLHQ9e2dlbjpyLGtleXdvcmQ6ImZhbHNlIHNjaGVtYSIsZGF0YTpvLHNjaGVtYTohMSxzY2hlbWFDb2RlOiExLHNjaGVtYVZhbHVlOiExLHBhcmFtczp7fSxpdDplfTsoMCxmdS5yZXBvcnRFcnJvcikodCxUdSx2b2lkIDAsbil9dmFyIHRvPXt9LENuPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShDbiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksQ24uZ2V0UnVsZXM9Q24uaXNKU09OVHlwZT12b2lkIDA7Y29uc3QgSXU9WyJzdHJpbmciLCJudW1iZXIiLCJpbnRlZ2VyIiwiYm9vbGVhbiIsIm51bGwiLCJvYmplY3QiLCJhcnJheSJdLGJ1PW5ldyBTZXQoSXUpO2Z1bmN0aW9uIEF1KGUpe3JldHVybiB0eXBlb2YgZT09InN0cmluZyImJmJ1LmhhcyhlKX1Dbi5pc0pTT05UeXBlPUF1O2Z1bmN0aW9uIFV1KCl7Y29uc3QgZT17bnVtYmVyOnt0eXBlOiJudW1iZXIiLHJ1bGVzOltdfSxzdHJpbmc6e3R5cGU6InN0cmluZyIscnVsZXM6W119LGFycmF5Ont0eXBlOiJhcnJheSIscnVsZXM6W119LG9iamVjdDp7dHlwZToib2JqZWN0IixydWxlczpbXX19O3JldHVybnt0eXBlczpsZShZKHt9LGUpLHtpbnRlZ2VyOiEwLGJvb2xlYW46ITAsbnVsbDohMH0pLHJ1bGVzOlt7cnVsZXM6W119LGUubnVtYmVyLGUuc3RyaW5nLGUuYXJyYXksZS5vYmplY3RdLHBvc3Q6e3J1bGVzOltdfSxhbGw6e30sa2V5d29yZHM6e319fUNuLmdldFJ1bGVzPVV1O3ZhciBjbj17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoY24sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGNuLnNob3VsZFVzZVJ1bGU9Y24uc2hvdWxkVXNlR3JvdXA9Y24uc2NoZW1hSGFzUnVsZXNGb3JUeXBlPXZvaWQgMDtmdW5jdGlvbiBIdSh7c2NoZW1hOmUsc2VsZjpufSxyKXtjb25zdCBvPW4uUlVMRVMudHlwZXNbcl07cmV0dXJuIG8mJm8hPT0hMCYmc3MoZSxvKX1jbi5zY2hlbWFIYXNSdWxlc0ZvclR5cGU9SHU7ZnVuY3Rpb24gc3MoZSxuKXtyZXR1cm4gbi5ydWxlcy5zb21lKHI9PmlzKGUscikpfWNuLnNob3VsZFVzZUdyb3VwPXNzO2Z1bmN0aW9uIGlzKGUsbil7dmFyIHI7cmV0dXJuIGVbbi5rZXl3b3JkXSE9PXZvaWQgMHx8KChyPW4uZGVmaW5pdGlvbi5pbXBsZW1lbnRzKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIuc29tZShvPT5lW29dIT09dm9pZCAwKSl9Y24uc2hvdWxkVXNlUnVsZT1pcyxmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5yZXBvcnRUeXBlRXJyb3I9ZS5jaGVja0RhdGFUeXBlcz1lLmNoZWNrRGF0YVR5cGU9ZS5jb2VyY2VBbmRDaGVja0RhdGFUeXBlPWUuZ2V0SlNPTlR5cGVzPWUuZ2V0U2NoZW1hVHlwZXM9ZS5EYXRhVHlwZT12b2lkIDA7Y29uc3Qgbj1DbixyPWNuLG89VHIsdD1fZSxzPUFlO3ZhciBpOyhmdW5jdGlvbihVKXtVW1UuQ29ycmVjdD0wXT0iQ29ycmVjdCIsVVtVLldyb25nPTFdPSJXcm9uZyJ9KShpPWUuRGF0YVR5cGV8fChlLkRhdGFUeXBlPXt9KSk7ZnVuY3Rpb24gbChVKXtjb25zdCBTPWMoVS50eXBlKTtpZihTLmluY2x1ZGVzKCJudWxsIikpe2lmKFUubnVsbGFibGU9PT0hMSl0aHJvdyBuZXcgRXJyb3IoInR5cGU6IG51bGwgY29udHJhZGljdHMgbnVsbGFibGU6IGZhbHNlIil9ZWxzZXtpZighUy5sZW5ndGgmJlUubnVsbGFibGUhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCcibnVsbGFibGUiIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgInR5cGUiJyk7VS5udWxsYWJsZT09PSEwJiZTLnB1c2goIm51bGwiKX1yZXR1cm4gU31lLmdldFNjaGVtYVR5cGVzPWw7ZnVuY3Rpb24gYyhVKXtjb25zdCBTPUFycmF5LmlzQXJyYXkoVSk/VTpVP1tVXTpbXTtpZihTLmV2ZXJ5KG4uaXNKU09OVHlwZSkpcmV0dXJuIFM7dGhyb3cgbmV3IEVycm9yKCJ0eXBlIG11c3QgYmUgSlNPTlR5cGUgb3IgSlNPTlR5cGVbXTogIitTLmpvaW4oIiwiKSl9ZS5nZXRKU09OVHlwZXM9YztmdW5jdGlvbiBtKFUsUyl7Y29uc3R7Z2VuOmosZGF0YTpOLG9wdHM6SH09VSxHPWgoUyxILmNvZXJjZVR5cGVzKSxGPVMubGVuZ3RoPjAmJiEoRy5sZW5ndGg9PT0wJiZTLmxlbmd0aD09PTEmJigwLHIuc2NoZW1hSGFzUnVsZXNGb3JUeXBlKShVLFNbMF0pKTtpZihGKXtjb25zdCBXPUMoUyxOLEguc3RyaWN0TnVtYmVycyxpLldyb25nKTtqLmlmKFcsKCk9PntHLmxlbmd0aD9PKFUsUyxHKTpmKFUpfSl9cmV0dXJuIEZ9ZS5jb2VyY2VBbmRDaGVja0RhdGFUeXBlPW07Y29uc3QgYT1uZXcgU2V0KFsic3RyaW5nIiwibnVtYmVyIiwiaW50ZWdlciIsImJvb2xlYW4iLCJudWxsIl0pO2Z1bmN0aW9uIGgoVSxTKXtyZXR1cm4gUz9VLmZpbHRlcihqPT5hLmhhcyhqKXx8Uz09PSJhcnJheSImJmo9PT0iYXJyYXkiKTpbXX1mdW5jdGlvbiBPKFUsUyxqKXtjb25zdHtnZW46TixkYXRhOkgsb3B0czpHfT1VLEY9Ti5sZXQoImRhdGFUeXBlIiwoMCx0Ll8pYHR5cGVvZiAke0h9YCksVz1OLmxldCgiY29lcmNlZCIsKDAsdC5fKWB1bmRlZmluZWRgKTtHLmNvZXJjZVR5cGVzPT09ImFycmF5IiYmTi5pZigoMCx0Ll8pYCR7Rn0gPT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSgke0h9KSAmJiAke0h9Lmxlbmd0aCA9PSAxYCwoKT0+Ti5hc3NpZ24oSCwoMCx0Ll8pYCR7SH1bMF1gKS5hc3NpZ24oRiwoMCx0Ll8pYHR5cGVvZiAke0h9YCkuaWYoQyhTLEgsRy5zdHJpY3ROdW1iZXJzKSwoKT0+Ti5hc3NpZ24oVyxIKSkpLE4uaWYoKDAsdC5fKWAke1d9ICE9PSB1bmRlZmluZWRgKTtmb3IoY29uc3QgeiBvZiBqKShhLmhhcyh6KXx8ej09PSJhcnJheSImJkcuY29lcmNlVHlwZXM9PT0iYXJyYXkiKSYmbWUoeik7Ti5lbHNlKCksZihVKSxOLmVuZElmKCksTi5pZigoMCx0Ll8pYCR7V30gIT09IHVuZGVmaW5lZGAsKCk9PntOLmFzc2lnbihILFcpLEQoVSxXKX0pO2Z1bmN0aW9uIG1lKHope3N3aXRjaCh6KXtjYXNlInN0cmluZyI6Ti5lbHNlSWYoKDAsdC5fKWAke0Z9ID09ICJudW1iZXIiIHx8ICR7Rn0gPT0gImJvb2xlYW4iYCkuYXNzaWduKFcsKDAsdC5fKWAiIiArICR7SH1gKS5lbHNlSWYoKDAsdC5fKWAke0h9ID09PSBudWxsYCkuYXNzaWduKFcsKDAsdC5fKWAiImApO3JldHVybjtjYXNlIm51bWJlciI6Ti5lbHNlSWYoKDAsdC5fKWAke0Z9ID09ICJib29sZWFuIiB8fCAke0h9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7Rn0gPT0gInN0cmluZyIgJiYgJHtIfSAmJiAke0h9ID09ICske0h9KWApLmFzc2lnbihXLCgwLHQuXylgKyR7SH1gKTtyZXR1cm47Y2FzZSJpbnRlZ2VyIjpOLmVsc2VJZigoMCx0Ll8pYCR7Rn0gPT09ICJib29sZWFuIiB8fCAke0h9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7Rn0gPT09ICJzdHJpbmciICYmICR7SH0gJiYgJHtIfSA9PSArJHtIfSAmJiAhKCR7SH0gJSAxKSlgKS5hc3NpZ24oVywoMCx0Ll8pYCske0h9YCk7cmV0dXJuO2Nhc2UiYm9vbGVhbiI6Ti5lbHNlSWYoKDAsdC5fKWAke0h9ID09PSAiZmFsc2UiIHx8ICR7SH0gPT09IDAgfHwgJHtIfSA9PT0gbnVsbGApLmFzc2lnbihXLCExKS5lbHNlSWYoKDAsdC5fKWAke0h9ID09PSAidHJ1ZSIgfHwgJHtIfSA9PT0gMWApLmFzc2lnbihXLCEwKTtyZXR1cm47Y2FzZSJudWxsIjpOLmVsc2VJZigoMCx0Ll8pYCR7SH0gPT09ICIiIHx8ICR7SH0gPT09IDAgfHwgJHtIfSA9PT0gZmFsc2VgKSxOLmFzc2lnbihXLG51bGwpO3JldHVybjtjYXNlImFycmF5IjpOLmVsc2VJZigoMCx0Ll8pYCR7Rn0gPT09ICJzdHJpbmciIHx8ICR7Rn0gPT09ICJudW1iZXIiCiAgICAgICAgICAgICAgfHwgJHtGfSA9PT0gImJvb2xlYW4iIHx8ICR7SH0gPT09IG51bGxgKS5hc3NpZ24oVywoMCx0Ll8pYFske0h9XWApfX19ZnVuY3Rpb24gRCh7Z2VuOlUscGFyZW50RGF0YTpTLHBhcmVudERhdGFQcm9wZXJ0eTpqfSxOKXtVLmlmKCgwLHQuXylgJHtTfSAhPT0gdW5kZWZpbmVkYCwoKT0+VS5hc3NpZ24oKDAsdC5fKWAke1N9WyR7an1dYCxOKSl9ZnVuY3Rpb24gdyhVLFMsaixOPWkuQ29ycmVjdCl7Y29uc3QgSD1OPT09aS5Db3JyZWN0P3Qub3BlcmF0b3JzLkVROnQub3BlcmF0b3JzLk5FUTtsZXQgRztzd2l0Y2goVSl7Y2FzZSJudWxsIjpyZXR1cm4oMCx0Ll8pYCR7U30gJHtIfSBudWxsYDtjYXNlImFycmF5IjpHPSgwLHQuXylgQXJyYXkuaXNBcnJheSgke1N9KWA7YnJlYWs7Y2FzZSJvYmplY3QiOkc9KDAsdC5fKWAke1N9ICYmIHR5cGVvZiAke1N9ID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KCR7U30pYDticmVhaztjYXNlImludGVnZXIiOkc9RigoMCx0Ll8pYCEoJHtTfSAlIDEpICYmICFpc05hTigke1N9KWApO2JyZWFrO2Nhc2UibnVtYmVyIjpHPUYoKTticmVhaztkZWZhdWx0OnJldHVybigwLHQuXylgdHlwZW9mICR7U30gJHtIfSAke1V9YH1yZXR1cm4gTj09PWkuQ29ycmVjdD9HOigwLHQubm90KShHKTtmdW5jdGlvbiBGKFc9dC5uaWwpe3JldHVybigwLHQuYW5kKSgoMCx0Ll8pYHR5cGVvZiAke1N9ID09ICJudW1iZXIiYCxXLGo/KDAsdC5fKWBpc0Zpbml0ZSgke1N9KWA6dC5uaWwpfX1lLmNoZWNrRGF0YVR5cGU9dztmdW5jdGlvbiBDKFUsUyxqLE4pe2lmKFUubGVuZ3RoPT09MSlyZXR1cm4gdyhVWzBdLFMsaixOKTtsZXQgSDtjb25zdCBHPSgwLHMudG9IYXNoKShVKTtpZihHLmFycmF5JiZHLm9iamVjdCl7Y29uc3QgRj0oMCx0Ll8pYHR5cGVvZiAke1N9ICE9ICJvYmplY3QiYDtIPUcubnVsbD9GOigwLHQuXylgISR7U30gfHwgJHtGfWAsZGVsZXRlIEcubnVsbCxkZWxldGUgRy5hcnJheSxkZWxldGUgRy5vYmplY3R9ZWxzZSBIPXQubmlsO0cubnVtYmVyJiZkZWxldGUgRy5pbnRlZ2VyO2Zvcihjb25zdCBGIGluIEcpSD0oMCx0LmFuZCkoSCx3KEYsUyxqLE4pKTtyZXR1cm4gSH1lLmNoZWNrRGF0YVR5cGVzPUM7Y29uc3QgVD17bWVzc2FnZTooe3NjaGVtYTpVfSk9PmBtdXN0IGJlICR7VX1gLHBhcmFtczooe3NjaGVtYTpVLHNjaGVtYVZhbHVlOlN9KT0+dHlwZW9mIFU9PSJzdHJpbmciPygwLHQuXylge3R5cGU6ICR7VX19YDooMCx0Ll8pYHt0eXBlOiAke1N9fWB9O2Z1bmN0aW9uIGYoVSl7Y29uc3QgUz1BKFUpOygwLG8ucmVwb3J0RXJyb3IpKFMsVCl9ZS5yZXBvcnRUeXBlRXJyb3I9ZjtmdW5jdGlvbiBBKFUpe2NvbnN0e2dlbjpTLGRhdGE6aixzY2hlbWE6Tn09VSxIPSgwLHMuc2NoZW1hUmVmT3JWYWwpKFUsTiwidHlwZSIpO3JldHVybntnZW46UyxrZXl3b3JkOiJ0eXBlIixkYXRhOmosc2NoZW1hOk4udHlwZSxzY2hlbWFDb2RlOkgsc2NoZW1hVmFsdWU6SCxwYXJlbnRTY2hlbWE6TixwYXJhbXM6e30saXQ6VX19fSh0byk7dmFyIHNvPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShzbywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksc28uYXNzaWduRGVmYXVsdHM9dm9pZCAwO2NvbnN0IG9yPV9lLHZ1PUFlO2Z1bmN0aW9uIER1KGUsbil7Y29uc3R7cHJvcGVydGllczpyLGl0ZW1zOm99PWUuc2NoZW1hO2lmKG49PT0ib2JqZWN0IiYmcilmb3IoY29uc3QgdCBpbiByKWFzKGUsdCxyW3RdLmRlZmF1bHQpO2Vsc2Ugbj09PSJhcnJheSImJkFycmF5LmlzQXJyYXkobykmJm8uZm9yRWFjaCgodCxzKT0+YXMoZSxzLHQuZGVmYXVsdCkpfXNvLmFzc2lnbkRlZmF1bHRzPUR1O2Z1bmN0aW9uIGFzKGUsbixyKXtjb25zdHtnZW46byxjb21wb3NpdGVSdWxlOnQsZGF0YTpzLG9wdHM6aX09ZTtpZihyPT09dm9pZCAwKXJldHVybjtjb25zdCBsPSgwLG9yLl8pYCR7c30keygwLG9yLmdldFByb3BlcnR5KShuKX1gO2lmKHQpeygwLHZ1LmNoZWNrU3RyaWN0TW9kZSkoZSxgZGVmYXVsdCBpcyBpZ25vcmVkIGZvcjogJHtsfWApO3JldHVybn1sZXQgYz0oMCxvci5fKWAke2x9ID09PSB1bmRlZmluZWRgO2kudXNlRGVmYXVsdHM9PT0iZW1wdHkiJiYoYz0oMCxvci5fKWAke2N9IHx8ICR7bH0gPT09IG51bGwgfHwgJHtsfSA9PT0gIiJgKSxvLmlmKGMsKDAsb3IuXylgJHtsfSA9ICR7KDAsb3Iuc3RyaW5naWZ5KShyKX1gKX12YXIgcWU9e30sb2U9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KG9lLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxvZS52YWxpZGF0ZVVuaW9uPW9lLnZhbGlkYXRlQXJyYXk9b2UudXNlUGF0dGVybj1vZS5jYWxsVmFsaWRhdGVDb2RlPW9lLnNjaGVtYVByb3BlcnRpZXM9b2UuYWxsU2NoZW1hUHJvcGVydGllcz1vZS5ub1Byb3BlcnR5SW5EYXRhPW9lLnByb3BlcnR5SW5EYXRhPW9lLmlzT3duUHJvcGVydHk9b2UuaGFzUHJvcEZ1bmM9b2UucmVwb3J0TWlzc2luZ1Byb3A9b2UuY2hlY2tNaXNzaW5nUHJvcD1vZS5jaGVja1JlcG9ydE1pc3NpbmdQcm9wPXZvaWQgMDtjb25zdCBkZT1fZSxGbz1BZSxUbj1NZSxTdT1BZTtmdW5jdGlvbiBQdShlLG4pe2NvbnN0e2dlbjpyLGRhdGE6byxpdDp0fT1lO3IuaWYoS28ocixvLG4sdC5vcHRzLm93blByb3BlcnRpZXMpLCgpPT57ZS5zZXRQYXJhbXMoe21pc3NpbmdQcm9wZXJ0eTooMCxkZS5fKWAke259YH0sITApLGUuZXJyb3IoKX0pfW9lLmNoZWNrUmVwb3J0TWlzc2luZ1Byb3A9UHU7ZnVuY3Rpb24gd3Uoe2dlbjplLGRhdGE6bixpdDp7b3B0czpyfX0sbyx0KXtyZXR1cm4oMCxkZS5vcikoLi4uby5tYXAocz0+KDAsZGUuYW5kKShLbyhlLG4scyxyLm93blByb3BlcnRpZXMpLCgwLGRlLl8pYCR7dH0gPSAke3N9YCkpKX1vZS5jaGVja01pc3NpbmdQcm9wPXd1O2Z1bmN0aW9uIEd1KGUsbil7ZS5zZXRQYXJhbXMoe21pc3NpbmdQcm9wZXJ0eTpufSwhMCksZS5lcnJvcigpfW9lLnJlcG9ydE1pc3NpbmdQcm9wPUd1O2Z1bmN0aW9uIHVzKGUpe3JldHVybiBlLnNjb3BlVmFsdWUoImZ1bmMiLHtyZWY6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxjb2RlOigwLGRlLl8pYE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHlgfSl9b2UuaGFzUHJvcEZ1bmM9dXM7ZnVuY3Rpb24gVm8oZSxuLHIpe3JldHVybigwLGRlLl8pYCR7dXMoZSl9LmNhbGwoJHtufSwgJHtyfSlgfW9lLmlzT3duUHJvcGVydHk9Vm87ZnVuY3Rpb24gQ3UoZSxuLHIsbyl7Y29uc3QgdD0oMCxkZS5fKWAke259JHsoMCxkZS5nZXRQcm9wZXJ0eSkocil9ICE9PSB1bmRlZmluZWRgO3JldHVybiBvPygwLGRlLl8pYCR7dH0gJiYgJHtWbyhlLG4scil9YDp0fW9lLnByb3BlcnR5SW5EYXRhPUN1O2Z1bmN0aW9uIEtvKGUsbixyLG8pe2NvbnN0IHQ9KDAsZGUuXylgJHtufSR7KDAsZGUuZ2V0UHJvcGVydHkpKHIpfSA9PT0gdW5kZWZpbmVkYDtyZXR1cm4gbz8oMCxkZS5vcikodCwoMCxkZS5ub3QpKFZvKGUsbixyKSkpOnR9b2Uubm9Qcm9wZXJ0eUluRGF0YT1LbztmdW5jdGlvbiBfcyhlKXtyZXR1cm4gZT9PYmplY3Qua2V5cyhlKS5maWx0ZXIobj0+biE9PSJfX3Byb3RvX18iKTpbXX1vZS5hbGxTY2hlbWFQcm9wZXJ0aWVzPV9zO2Z1bmN0aW9uIHl1KGUsbil7cmV0dXJuIF9zKG4pLmZpbHRlcihyPT4hKDAsRm8uYWx3YXlzVmFsaWRTY2hlbWEpKGUsbltyXSkpfW9lLnNjaGVtYVByb3BlcnRpZXM9eXU7ZnVuY3Rpb24gTHUoe3NjaGVtYUNvZGU6ZSxkYXRhOm4saXQ6e2dlbjpyLHRvcFNjaGVtYVJlZjpvLHNjaGVtYVBhdGg6dCxlcnJvclBhdGg6c30saXQ6aX0sbCxjLG0pe2NvbnN0IGE9bT8oMCxkZS5fKWAke2V9LCAke259LCAke299JHt0fWA6bixoPVtbVG4uZGVmYXVsdC5pbnN0YW5jZVBhdGgsKDAsZGUuc3RyQ29uY2F0KShUbi5kZWZhdWx0Lmluc3RhbmNlUGF0aCxzKV0sW1RuLmRlZmF1bHQucGFyZW50RGF0YSxpLnBhcmVudERhdGFdLFtUbi5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSxpLnBhcmVudERhdGFQcm9wZXJ0eV0sW1RuLmRlZmF1bHQucm9vdERhdGEsVG4uZGVmYXVsdC5yb290RGF0YV1dO2kub3B0cy5keW5hbWljUmVmJiZoLnB1c2goW1RuLmRlZmF1bHQuZHluYW1pY0FuY2hvcnMsVG4uZGVmYXVsdC5keW5hbWljQW5jaG9yc10pO2NvbnN0IE89KDAsZGUuXylgJHthfSwgJHtyLm9iamVjdCguLi5oKX1gO3JldHVybiBjIT09ZGUubmlsPygwLGRlLl8pYCR7bH0uY2FsbCgke2N9LCAke099KWA6KDAsZGUuXylgJHtsfSgke099KWB9b2UuY2FsbFZhbGlkYXRlQ29kZT1MdTtjb25zdCBCdT0oMCxkZS5fKWBuZXcgUmVnRXhwYDtmdW5jdGlvbiBrdSh7Z2VuOmUsaXQ6e29wdHM6bn19LHIpe2NvbnN0IG89bi51bmljb2RlUmVnRXhwPyJ1IjoiIix7cmVnRXhwOnR9PW4uY29kZSxzPXQocixvKTtyZXR1cm4gZS5zY29wZVZhbHVlKCJwYXR0ZXJuIix7a2V5OnMudG9TdHJpbmcoKSxyZWY6cyxjb2RlOigwLGRlLl8pYCR7dC5jb2RlPT09Im5ldyBSZWdFeHAiP0J1OigwLFN1LnVzZUZ1bmMpKGUsdCl9KCR7cn0sICR7b30pYH0pfW9lLnVzZVBhdHRlcm49a3U7ZnVuY3Rpb24gTXUoZSl7Y29uc3R7Z2VuOm4sZGF0YTpyLGtleXdvcmQ6byxpdDp0fT1lLHM9bi5uYW1lKCJ2YWxpZCIpO2lmKHQuYWxsRXJyb3JzKXtjb25zdCBsPW4ubGV0KCJ2YWxpZCIsITApO3JldHVybiBpKCgpPT5uLmFzc2lnbihsLCExKSksbH1yZXR1cm4gbi52YXIocywhMCksaSgoKT0+bi5icmVhaygpKSxzO2Z1bmN0aW9uIGkobCl7Y29uc3QgYz1uLmNvbnN0KCJsZW4iLCgwLGRlLl8pYCR7cn0ubGVuZ3RoYCk7bi5mb3JSYW5nZSgiaSIsMCxjLG09PntlLnN1YnNjaGVtYSh7a2V5d29yZDpvLGRhdGFQcm9wOm0sZGF0YVByb3BUeXBlOkZvLlR5cGUuTnVtfSxzKSxuLmlmKCgwLGRlLm5vdCkocyksbCl9KX19b2UudmFsaWRhdGVBcnJheT1NdTtmdW5jdGlvbiBYdShlKXtjb25zdHtnZW46bixzY2hlbWE6cixrZXl3b3JkOm8saXQ6dH09ZTtpZighQXJyYXkuaXNBcnJheShyKSl0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpO2lmKHIuc29tZShjPT4oMCxGby5hbHdheXNWYWxpZFNjaGVtYSkodCxjKSkmJiF0Lm9wdHMudW5ldmFsdWF0ZWQpcmV0dXJuO2NvbnN0IGk9bi5sZXQoInZhbGlkIiwhMSksbD1uLm5hbWUoIl92YWxpZCIpO24uYmxvY2soKCk9PnIuZm9yRWFjaCgoYyxtKT0+e2NvbnN0IGE9ZS5zdWJzY2hlbWEoe2tleXdvcmQ6byxzY2hlbWFQcm9wOm0sY29tcG9zaXRlUnVsZTohMH0sbCk7bi5hc3NpZ24oaSwoMCxkZS5fKWAke2l9IHx8ICR7bH1gKSxlLm1lcmdlVmFsaWRFdmFsdWF0ZWQoYSxsKXx8bi5pZigoMCxkZS5ub3QpKGkpKX0pKSxlLnJlc3VsdChpLCgpPT5lLnJlc2V0KCksKCk9PmUuZXJyb3IoITApKX1vZS52YWxpZGF0ZVVuaW9uPVh1LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscWUudmFsaWRhdGVLZXl3b3JkVXNhZ2U9cWUudmFsaWRTY2hlbWFUeXBlPXFlLmZ1bmNLZXl3b3JkQ29kZT1xZS5tYWNyb0tleXdvcmRDb2RlPXZvaWQgMDtjb25zdCB3ZT1fZSx5bj1NZSwkdT1vZSxqdT1UcjtmdW5jdGlvbiB4dShlLG4pe2NvbnN0e2dlbjpyLGtleXdvcmQ6byxzY2hlbWE6dCxwYXJlbnRTY2hlbWE6cyxpdDppfT1lLGw9bi5tYWNyby5jYWxsKGkuc2VsZix0LHMsaSksYz1jcyhyLG8sbCk7aS5vcHRzLnZhbGlkYXRlU2NoZW1hIT09ITEmJmkuc2VsZi52YWxpZGF0ZVNjaGVtYShsLCEwKTtjb25zdCBtPXIubmFtZSgidmFsaWQiKTtlLnN1YnNjaGVtYSh7c2NoZW1hOmwsc2NoZW1hUGF0aDp3ZS5uaWwsZXJyU2NoZW1hUGF0aDpgJHtpLmVyclNjaGVtYVBhdGh9LyR7b31gLHRvcFNjaGVtYVJlZjpjLGNvbXBvc2l0ZVJ1bGU6ITB9LG0pLGUucGFzcyhtLCgpPT5lLmVycm9yKCEwKSl9cWUubWFjcm9LZXl3b3JkQ29kZT14dTtmdW5jdGlvbiBGdShlLG4pe3ZhciByO2NvbnN0e2dlbjpvLGtleXdvcmQ6dCxzY2hlbWE6cyxwYXJlbnRTY2hlbWE6aSwkZGF0YTpsLGl0OmN9PWU7S3UoYyxuKTtjb25zdCBtPSFsJiZuLmNvbXBpbGU/bi5jb21waWxlLmNhbGwoYy5zZWxmLHMsaSxjKTpuLnZhbGlkYXRlLGE9Y3Mobyx0LG0pLGg9by5sZXQoInZhbGlkIik7ZS5ibG9jayRkYXRhKGgsTyksZS5vaygocj1uLnZhbGlkKSE9PW51bGwmJnIhPT12b2lkIDA/cjpoKTtmdW5jdGlvbiBPKCl7aWYobi5lcnJvcnM9PT0hMSlDKCksbi5tb2RpZnlpbmcmJmxzKGUpLFQoKCk9PmUuZXJyb3IoKSk7ZWxzZXtjb25zdCBmPW4uYXN5bmM/RCgpOncoKTtuLm1vZGlmeWluZyYmbHMoZSksVCgoKT0+VnUoZSxmKSl9fWZ1bmN0aW9uIEQoKXtjb25zdCBmPW8ubGV0KCJydWxlRXJycyIsbnVsbCk7cmV0dXJuIG8udHJ5KCgpPT5DKCgwLHdlLl8pYGF3YWl0IGApLEE9Pm8uYXNzaWduKGgsITEpLmlmKCgwLHdlLl8pYCR7QX0gaW5zdGFuY2VvZiAke2MuVmFsaWRhdGlvbkVycm9yfWAsKCk9Pm8uYXNzaWduKGYsKDAsd2UuXylgJHtBfS5lcnJvcnNgKSwoKT0+by50aHJvdyhBKSkpLGZ9ZnVuY3Rpb24gdygpe2NvbnN0IGY9KDAsd2UuXylgJHthfS5lcnJvcnNgO3JldHVybiBvLmFzc2lnbihmLG51bGwpLEMod2UubmlsKSxmfWZ1bmN0aW9uIEMoZj1uLmFzeW5jPygwLHdlLl8pYGF3YWl0IGA6d2UubmlsKXtjb25zdCBBPWMub3B0cy5wYXNzQ29udGV4dD95bi5kZWZhdWx0LnRoaXM6eW4uZGVmYXVsdC5zZWxmLFU9ISgiY29tcGlsZSJpbiBuJiYhbHx8bi5zY2hlbWE9PT0hMSk7by5hc3NpZ24oaCwoMCx3ZS5fKWAke2Z9JHsoMCwkdS5jYWxsVmFsaWRhdGVDb2RlKShlLGEsQSxVKX1gLG4ubW9kaWZ5aW5nKX1mdW5jdGlvbiBUKGYpe3ZhciBBO28uaWYoKDAsd2Uubm90KSgoQT1uLnZhbGlkKSE9PW51bGwmJkEhPT12b2lkIDA/QTpoKSxmKX19cWUuZnVuY0tleXdvcmRDb2RlPUZ1O2Z1bmN0aW9uIGxzKGUpe2NvbnN0e2dlbjpuLGRhdGE6cixpdDpvfT1lO24uaWYoby5wYXJlbnREYXRhLCgpPT5uLmFzc2lnbihyLCgwLHdlLl8pYCR7by5wYXJlbnREYXRhfVske28ucGFyZW50RGF0YVByb3BlcnR5fV1gKSl9ZnVuY3Rpb24gVnUoZSxuKXtjb25zdHtnZW46cn09ZTtyLmlmKCgwLHdlLl8pYEFycmF5LmlzQXJyYXkoJHtufSlgLCgpPT57ci5hc3NpZ24oeW4uZGVmYXVsdC52RXJyb3JzLCgwLHdlLl8pYCR7eW4uZGVmYXVsdC52RXJyb3JzfSA9PT0gbnVsbCA/ICR7bn0gOiAke3luLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7bn0pYCkuYXNzaWduKHluLmRlZmF1bHQuZXJyb3JzLCgwLHdlLl8pYCR7eW4uZGVmYXVsdC52RXJyb3JzfS5sZW5ndGhgKSwoMCxqdS5leHRlbmRFcnJvcnMpKGUpfSwoKT0+ZS5lcnJvcigpKX1mdW5jdGlvbiBLdSh7c2NoZW1hRW52OmV9LG4pe2lmKG4uYXN5bmMmJiFlLiRhc3luYyl0aHJvdyBuZXcgRXJyb3IoImFzeW5jIGtleXdvcmQgaW4gc3luYyBzY2hlbWEiKX1mdW5jdGlvbiBjcyhlLG4scil7aWYocj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYGtleXdvcmQgIiR7bn0iIGZhaWxlZCB0byBjb21waWxlYCk7cmV0dXJuIGUuc2NvcGVWYWx1ZSgia2V5d29yZCIsdHlwZW9mIHI9PSJmdW5jdGlvbiI/e3JlZjpyfTp7cmVmOnIsY29kZTooMCx3ZS5zdHJpbmdpZnkpKHIpfSl9ZnVuY3Rpb24gV3UoZSxuLHI9ITEpe3JldHVybiFuLmxlbmd0aHx8bi5zb21lKG89Pm89PT0iYXJyYXkiP0FycmF5LmlzQXJyYXkoZSk6bz09PSJvYmplY3QiP2UmJnR5cGVvZiBlPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkoZSk6dHlwZW9mIGU9PW98fHImJnR5cGVvZiBlPT0idW5kZWZpbmVkIil9cWUudmFsaWRTY2hlbWFUeXBlPVd1O2Z1bmN0aW9uIFl1KHtzY2hlbWE6ZSxvcHRzOm4sc2VsZjpyLGVyclNjaGVtYVBhdGg6b30sdCxzKXtpZihBcnJheS5pc0FycmF5KHQua2V5d29yZCk/IXQua2V5d29yZC5pbmNsdWRlcyhzKTp0LmtleXdvcmQhPT1zKXRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7Y29uc3QgaT10LmRlcGVuZGVuY2llcztpZihpIT1udWxsJiZpLnNvbWUobD0+IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLGwpKSl0aHJvdyBuZXcgRXJyb3IoYHBhcmVudCBzY2hlbWEgbXVzdCBoYXZlIGRlcGVuZGVuY2llcyBvZiAke3N9OiAke2kuam9pbigiLCIpfWApO2lmKHQudmFsaWRhdGVTY2hlbWEmJiF0LnZhbGlkYXRlU2NoZW1hKGVbc10pKXtjb25zdCBjPWBrZXl3b3JkICIke3N9IiB2YWx1ZSBpcyBpbnZhbGlkIGF0IHBhdGggIiR7b30iOiBgK3IuZXJyb3JzVGV4dCh0LnZhbGlkYXRlU2NoZW1hLmVycm9ycyk7aWYobi52YWxpZGF0ZVNjaGVtYT09PSJsb2ciKXIubG9nZ2VyLmVycm9yKGMpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKGMpfX1xZS52YWxpZGF0ZUtleXdvcmRVc2FnZT1ZdTt2YXIgTm49e307T2JqZWN0LmRlZmluZVByb3BlcnR5KE5uLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxObi5leHRlbmRTdWJzY2hlbWFNb2RlPU5uLmV4dGVuZFN1YnNjaGVtYURhdGE9Tm4uZ2V0U3Vic2NoZW1hPXZvaWQgMDtjb25zdCBRZT1fZSxkcz1BZTtmdW5jdGlvbiBKdShlLHtrZXl3b3JkOm4sc2NoZW1hUHJvcDpyLHNjaGVtYTpvLHNjaGVtYVBhdGg6dCxlcnJTY2hlbWFQYXRoOnMsdG9wU2NoZW1hUmVmOml9KXtpZihuIT09dm9pZCAwJiZvIT09dm9pZCAwKXRocm93IG5ldyBFcnJvcignYm90aCAia2V5d29yZCIgYW5kICJzY2hlbWEiIHBhc3NlZCwgb25seSBvbmUgYWxsb3dlZCcpO2lmKG4hPT12b2lkIDApe2NvbnN0IGw9ZS5zY2hlbWFbbl07cmV0dXJuIHI9PT12b2lkIDA/e3NjaGVtYTpsLHNjaGVtYVBhdGg6KDAsUWUuXylgJHtlLnNjaGVtYVBhdGh9JHsoMCxRZS5nZXRQcm9wZXJ0eSkobil9YCxlcnJTY2hlbWFQYXRoOmAke2UuZXJyU2NoZW1hUGF0aH0vJHtufWB9OntzY2hlbWE6bFtyXSxzY2hlbWFQYXRoOigwLFFlLl8pYCR7ZS5zY2hlbWFQYXRofSR7KDAsUWUuZ2V0UHJvcGVydHkpKG4pfSR7KDAsUWUuZ2V0UHJvcGVydHkpKHIpfWAsZXJyU2NoZW1hUGF0aDpgJHtlLmVyclNjaGVtYVBhdGh9LyR7bn0vJHsoMCxkcy5lc2NhcGVGcmFnbWVudCkocil9YH19aWYobyE9PXZvaWQgMCl7aWYodD09PXZvaWQgMHx8cz09PXZvaWQgMHx8aT09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoJyJzY2hlbWFQYXRoIiwgImVyclNjaGVtYVBhdGgiIGFuZCAidG9wU2NoZW1hUmVmIiBhcmUgcmVxdWlyZWQgd2l0aCAic2NoZW1hIicpO3JldHVybntzY2hlbWE6byxzY2hlbWFQYXRoOnQsdG9wU2NoZW1hUmVmOmksZXJyU2NoZW1hUGF0aDpzfX10aHJvdyBuZXcgRXJyb3IoJ2VpdGhlciAia2V5d29yZCIgb3IgInNjaGVtYSIgbXVzdCBiZSBwYXNzZWQnKX1Obi5nZXRTdWJzY2hlbWE9SnU7ZnVuY3Rpb24genUoZSxuLHtkYXRhUHJvcDpyLGRhdGFQcm9wVHlwZTpvLGRhdGE6dCxkYXRhVHlwZXM6cyxwcm9wZXJ0eU5hbWU6aX0pe2lmKHQhPT12b2lkIDAmJnIhPT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCdib3RoICJkYXRhIiBhbmQgImRhdGFQcm9wIiBwYXNzZWQsIG9ubHkgb25lIGFsbG93ZWQnKTtjb25zdHtnZW46bH09bjtpZihyIT09dm9pZCAwKXtjb25zdHtlcnJvclBhdGg6bSxkYXRhUGF0aEFycjphLG9wdHM6aH09bixPPWwubGV0KCJkYXRhIiwoMCxRZS5fKWAke24uZGF0YX0keygwLFFlLmdldFByb3BlcnR5KShyKX1gLCEwKTtjKE8pLGUuZXJyb3JQYXRoPSgwLFFlLnN0cilgJHttfSR7KDAsZHMuZ2V0RXJyb3JQYXRoKShyLG8saC5qc1Byb3BlcnR5U3ludGF4KX1gLGUucGFyZW50RGF0YVByb3BlcnR5PSgwLFFlLl8pYCR7cn1gLGUuZGF0YVBhdGhBcnI9Wy4uLmEsZS5wYXJlbnREYXRhUHJvcGVydHldfWlmKHQhPT12b2lkIDApe2NvbnN0IG09dCBpbnN0YW5jZW9mIFFlLk5hbWU/dDpsLmxldCgiZGF0YSIsdCwhMCk7YyhtKSxpIT09dm9pZCAwJiYoZS5wcm9wZXJ0eU5hbWU9aSl9cyYmKGUuZGF0YVR5cGVzPXMpO2Z1bmN0aW9uIGMobSl7ZS5kYXRhPW0sZS5kYXRhTGV2ZWw9bi5kYXRhTGV2ZWwrMSxlLmRhdGFUeXBlcz1bXSxuLmRlZmluZWRQcm9wZXJ0aWVzPW5ldyBTZXQsZS5wYXJlbnREYXRhPW4uZGF0YSxlLmRhdGFOYW1lcz1bLi4ubi5kYXRhTmFtZXMsbV19fU5uLmV4dGVuZFN1YnNjaGVtYURhdGE9enU7ZnVuY3Rpb24gcXUoZSx7anRkRGlzY3JpbWluYXRvcjpuLGp0ZE1ldGFkYXRhOnIsY29tcG9zaXRlUnVsZTpvLGNyZWF0ZUVycm9yczp0LGFsbEVycm9yczpzfSl7byE9PXZvaWQgMCYmKGUuY29tcG9zaXRlUnVsZT1vKSx0IT09dm9pZCAwJiYoZS5jcmVhdGVFcnJvcnM9dCkscyE9PXZvaWQgMCYmKGUuYWxsRXJyb3JzPXMpLGUuanRkRGlzY3JpbWluYXRvcj1uLGUuanRkTWV0YWRhdGE9cn1Obi5leHRlbmRTdWJzY2hlbWFNb2RlPXF1O3ZhciBEZT17fSxRdT1mdW5jdGlvbiBlKG4scil7aWYobj09PXIpcmV0dXJuITA7aWYobiYmciYmdHlwZW9mIG49PSJvYmplY3QiJiZ0eXBlb2Ygcj09Im9iamVjdCIpe2lmKG4uY29uc3RydWN0b3IhPT1yLmNvbnN0cnVjdG9yKXJldHVybiExO3ZhciBvLHQscztpZihBcnJheS5pc0FycmF5KG4pKXtpZihvPW4ubGVuZ3RoLG8hPXIubGVuZ3RoKXJldHVybiExO2Zvcih0PW87dC0tIT09MDspaWYoIWUoblt0XSxyW3RdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihuLmNvbnN0cnVjdG9yPT09UmVnRXhwKXJldHVybiBuLnNvdXJjZT09PXIuc291cmNlJiZuLmZsYWdzPT09ci5mbGFncztpZihuLnZhbHVlT2YhPT1PYmplY3QucHJvdG90eXBlLnZhbHVlT2YpcmV0dXJuIG4udmFsdWVPZigpPT09ci52YWx1ZU9mKCk7aWYobi50b1N0cmluZyE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpcmV0dXJuIG4udG9TdHJpbmcoKT09PXIudG9TdHJpbmcoKTtpZihzPU9iamVjdC5rZXlzKG4pLG89cy5sZW5ndGgsbyE9PU9iamVjdC5rZXlzKHIpLmxlbmd0aClyZXR1cm4hMTtmb3IodD1vO3QtLSE9PTA7KWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixzW3RdKSlyZXR1cm4hMTtmb3IodD1vO3QtLSE9PTA7KXt2YXIgaT1zW3RdO2lmKCFlKG5baV0scltpXSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIG4hPT1uJiZyIT09cn0saHM9e2V4cG9ydHM6e319LGduPWhzLmV4cG9ydHM9ZnVuY3Rpb24oZSxuLHIpe3R5cGVvZiBuPT0iZnVuY3Rpb24iJiYocj1uLG49e30pLHI9bi5jYnx8cjt2YXIgbz10eXBlb2Ygcj09ImZ1bmN0aW9uIj9yOnIucHJlfHxmdW5jdGlvbigpe30sdD1yLnBvc3R8fGZ1bmN0aW9uKCl7fTtpbyhuLG8sdCxlLCIiLGUpfTtnbi5rZXl3b3Jkcz17YWRkaXRpb25hbEl0ZW1zOiEwLGl0ZW1zOiEwLGNvbnRhaW5zOiEwLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiEwLHByb3BlcnR5TmFtZXM6ITAsbm90OiEwLGlmOiEwLHRoZW46ITAsZWxzZTohMH0sZ24uYXJyYXlLZXl3b3Jkcz17aXRlbXM6ITAsYWxsT2Y6ITAsYW55T2Y6ITAsb25lT2Y6ITB9LGduLnByb3BzS2V5d29yZHM9eyRkZWZzOiEwLGRlZmluaXRpb25zOiEwLHByb3BlcnRpZXM6ITAscGF0dGVyblByb3BlcnRpZXM6ITAsZGVwZW5kZW5jaWVzOiEwfSxnbi5za2lwS2V5d29yZHM9e2RlZmF1bHQ6ITAsZW51bTohMCxjb25zdDohMCxyZXF1aXJlZDohMCxtYXhpbXVtOiEwLG1pbmltdW06ITAsZXhjbHVzaXZlTWF4aW11bTohMCxleGNsdXNpdmVNaW5pbXVtOiEwLG11bHRpcGxlT2Y6ITAsbWF4TGVuZ3RoOiEwLG1pbkxlbmd0aDohMCxwYXR0ZXJuOiEwLGZvcm1hdDohMCxtYXhJdGVtczohMCxtaW5JdGVtczohMCx1bmlxdWVJdGVtczohMCxtYXhQcm9wZXJ0aWVzOiEwLG1pblByb3BlcnRpZXM6ITB9O2Z1bmN0aW9uIGlvKGUsbixyLG8sdCxzLGksbCxjLG0pe2lmKG8mJnR5cGVvZiBvPT0ib2JqZWN0IiYmIUFycmF5LmlzQXJyYXkobykpe24obyx0LHMsaSxsLGMsbSk7Zm9yKHZhciBhIGluIG8pe3ZhciBoPW9bYV07aWYoQXJyYXkuaXNBcnJheShoKSl7aWYoYSBpbiBnbi5hcnJheUtleXdvcmRzKWZvcih2YXIgTz0wO088aC5sZW5ndGg7TysrKWlvKGUsbixyLGhbT10sdCsiLyIrYSsiLyIrTyxzLHQsYSxvLE8pfWVsc2UgaWYoYSBpbiBnbi5wcm9wc0tleXdvcmRzKXtpZihoJiZ0eXBlb2YgaD09Im9iamVjdCIpZm9yKHZhciBEIGluIGgpaW8oZSxuLHIsaFtEXSx0KyIvIithKyIvIitadShEKSxzLHQsYSxvLEQpfWVsc2UoYSBpbiBnbi5rZXl3b3Jkc3x8ZS5hbGxLZXlzJiYhKGEgaW4gZ24uc2tpcEtleXdvcmRzKSkmJmlvKGUsbixyLGgsdCsiLyIrYSxzLHQsYSxvKX1yKG8sdCxzLGksbCxjLG0pfX1mdW5jdGlvbiBadShlKXtyZXR1cm4gZS5yZXBsYWNlKC9+L2csIn4wIikucmVwbGFjZSgvXC8vZywifjEiKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoRGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLERlLmdldFNjaGVtYVJlZnM9RGUucmVzb2x2ZVVybD1EZS5ub3JtYWxpemVJZD1EZS5fZ2V0RnVsbFBhdGg9RGUuZ2V0RnVsbFBhdGg9RGUuaW5saW5lUmVmPXZvaWQgMDtjb25zdCBlXz1BZSxuXz1RdSxyXz1ocy5leHBvcnRzLG9fPW5ldyBTZXQoWyJ0eXBlIiwiZm9ybWF0IiwicGF0dGVybiIsIm1heExlbmd0aCIsIm1pbkxlbmd0aCIsIm1heFByb3BlcnRpZXMiLCJtaW5Qcm9wZXJ0aWVzIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsIm1heGltdW0iLCJtaW5pbXVtIiwidW5pcXVlSXRlbXMiLCJtdWx0aXBsZU9mIiwicmVxdWlyZWQiLCJlbnVtIiwiY29uc3QiXSk7ZnVuY3Rpb24gdF8oZSxuPSEwKXtyZXR1cm4gdHlwZW9mIGU9PSJib29sZWFuIj8hMDpuPT09ITA/IVdvKGUpOm4/bXMoZSk8PW46ITF9RGUuaW5saW5lUmVmPXRfO2NvbnN0IHNfPW5ldyBTZXQoWyIkcmVmIiwiJHJlY3Vyc2l2ZVJlZiIsIiRyZWN1cnNpdmVBbmNob3IiLCIkZHluYW1pY1JlZiIsIiRkeW5hbWljQW5jaG9yIl0pO2Z1bmN0aW9uIFdvKGUpe2Zvcihjb25zdCBuIGluIGUpe2lmKHNfLmhhcyhuKSlyZXR1cm4hMDtjb25zdCByPWVbbl07aWYoQXJyYXkuaXNBcnJheShyKSYmci5zb21lKFdvKXx8dHlwZW9mIHI9PSJvYmplY3QiJiZXbyhyKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBtcyhlKXtsZXQgbj0wO2Zvcihjb25zdCByIGluIGUpe2lmKHI9PT0iJHJlZiIpcmV0dXJuIDEvMDtpZihuKyssIW9fLmhhcyhyKSYmKHR5cGVvZiBlW3JdPT0ib2JqZWN0IiYmKDAsZV8uZWFjaEl0ZW0pKGVbcl0sbz0+bis9bXMobykpLG49PT0xLzApKXJldHVybiAxLzB9cmV0dXJuIG59ZnVuY3Rpb24gcHMoZSxuPSIiLHIpe3IhPT0hMSYmKG49dHIobikpO2NvbnN0IG89ZS5wYXJzZShuKTtyZXR1cm4gRXMoZSxvKX1EZS5nZXRGdWxsUGF0aD1wcztmdW5jdGlvbiBFcyhlLG4pe3JldHVybiBlLnNlcmlhbGl6ZShuKS5zcGxpdCgiIyIpWzBdKyIjIn1EZS5fZ2V0RnVsbFBhdGg9RXM7Y29uc3QgaV89LyNcLz8kLztmdW5jdGlvbiB0cihlKXtyZXR1cm4gZT9lLnJlcGxhY2UoaV8sIiIpOiIifURlLm5vcm1hbGl6ZUlkPXRyO2Z1bmN0aW9uIGFfKGUsbixyKXtyZXR1cm4gcj10cihyKSxlLnJlc29sdmUobixyKX1EZS5yZXNvbHZlVXJsPWFfO2NvbnN0IHVfPS9eW2Etel9dWy1hLXowLTkuX10qJC9pO2Z1bmN0aW9uIF9fKGUsbil7aWYodHlwZW9mIGU9PSJib29sZWFuIilyZXR1cm57fTtjb25zdHtzY2hlbWFJZDpyLHVyaVJlc29sdmVyOm99PXRoaXMub3B0cyx0PXRyKGVbcl18fG4pLHM9eyIiOnR9LGk9cHMobyx0LCExKSxsPXt9LGM9bmV3IFNldDtyZXR1cm4gcl8oZSx7YWxsS2V5czohMH0sKGgsTyxELHcpPT57aWYodz09PXZvaWQgMClyZXR1cm47Y29uc3QgQz1pK087bGV0IFQ9c1t3XTt0eXBlb2YgaFtyXT09InN0cmluZyImJihUPWYuY2FsbCh0aGlzLGhbcl0pKSxBLmNhbGwodGhpcyxoLiRhbmNob3IpLEEuY2FsbCh0aGlzLGguJGR5bmFtaWNBbmNob3IpLHNbT109VDtmdW5jdGlvbiBmKFUpe2NvbnN0IFM9dGhpcy5vcHRzLnVyaVJlc29sdmVyLnJlc29sdmU7aWYoVT10cihUP1MoVCxVKTpVKSxjLmhhcyhVKSl0aHJvdyBhKFUpO2MuYWRkKFUpO2xldCBqPXRoaXMucmVmc1tVXTtyZXR1cm4gdHlwZW9mIGo9PSJzdHJpbmciJiYoaj10aGlzLnJlZnNbal0pLHR5cGVvZiBqPT0ib2JqZWN0Ij9tKGgsai5zY2hlbWEsVSk6VSE9PXRyKEMpJiYoVVswXT09PSIjIj8obShoLGxbVV0sVSksbFtVXT1oKTp0aGlzLnJlZnNbVV09QyksVX1mdW5jdGlvbiBBKFUpe2lmKHR5cGVvZiBVPT0ic3RyaW5nIil7aWYoIXVfLnRlc3QoVSkpdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFuY2hvciAiJHtVfSJgKTtmLmNhbGwodGhpcyxgIyR7VX1gKX19fSksbDtmdW5jdGlvbiBtKGgsTyxEKXtpZihPIT09dm9pZCAwJiYhbl8oaCxPKSl0aHJvdyBhKEQpfWZ1bmN0aW9uIGEoaCl7cmV0dXJuIG5ldyBFcnJvcihgcmVmZXJlbmNlICIke2h9IiByZXNvbHZlcyB0byBtb3JlIHRoYW4gb25lIHNjaGVtYWApfX1EZS5nZXRTY2hlbWFSZWZzPV9fLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh6ZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksemUuZ2V0RGF0YT16ZS5LZXl3b3JkQ3h0PXplLnZhbGlkYXRlRnVuY3Rpb25Db2RlPXZvaWQgMDtjb25zdCBmcz1ycixScz10byxZbz1jbixhbz10byxsXz1zbyxncj1xZSxKbz1ObixrPV9lLFY9TWUsY189RGUsZG49QWUsSXI9VHI7ZnVuY3Rpb24gZF8oZSl7aWYoZ3MoZSkmJihJcyhlKSxOcyhlKSkpe3BfKGUpO3JldHVybn1PcyhlLCgpPT4oMCxmcy50b3BCb29sT3JFbXB0eVNjaGVtYSkoZSkpfXplLnZhbGlkYXRlRnVuY3Rpb25Db2RlPWRfO2Z1bmN0aW9uIE9zKHtnZW46ZSx2YWxpZGF0ZU5hbWU6bixzY2hlbWE6cixzY2hlbWFFbnY6byxvcHRzOnR9LHMpe3QuY29kZS5lczU/ZS5mdW5jKG4sKDAsay5fKWAke1YuZGVmYXVsdC5kYXRhfSwgJHtWLmRlZmF1bHQudmFsQ3h0fWAsby4kYXN5bmMsKCk9PntlLmNvZGUoKDAsay5fKWAidXNlIHN0cmljdCI7ICR7VHMocix0KX1gKSxtXyhlLHQpLGUuY29kZShzKX0pOmUuZnVuYyhuLCgwLGsuXylgJHtWLmRlZmF1bHQuZGF0YX0sICR7aF8odCl9YCxvLiRhc3luYywoKT0+ZS5jb2RlKFRzKHIsdCkpLmNvZGUocykpfWZ1bmN0aW9uIGhfKGUpe3JldHVybigwLGsuXylgeyR7Vi5kZWZhdWx0Lmluc3RhbmNlUGF0aH09IiIsICR7Vi5kZWZhdWx0LnBhcmVudERhdGF9LCAke1YuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHl9LCAke1YuZGVmYXVsdC5yb290RGF0YX09JHtWLmRlZmF1bHQuZGF0YX0ke2UuZHluYW1pY1JlZj8oMCxrLl8pYCwgJHtWLmRlZmF1bHQuZHluYW1pY0FuY2hvcnN9PXt9YDprLm5pbH19PXt9YH1mdW5jdGlvbiBtXyhlLG4pe2UuaWYoVi5kZWZhdWx0LnZhbEN4dCwoKT0+e2UudmFyKFYuZGVmYXVsdC5pbnN0YW5jZVBhdGgsKDAsay5fKWAke1YuZGVmYXVsdC52YWxDeHR9LiR7Vi5kZWZhdWx0Lmluc3RhbmNlUGF0aH1gKSxlLnZhcihWLmRlZmF1bHQucGFyZW50RGF0YSwoMCxrLl8pYCR7Vi5kZWZhdWx0LnZhbEN4dH0uJHtWLmRlZmF1bHQucGFyZW50RGF0YX1gKSxlLnZhcihWLmRlZmF1bHQucGFyZW50RGF0YVByb3BlcnR5LCgwLGsuXylgJHtWLmRlZmF1bHQudmFsQ3h0fS4ke1YuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHl9YCksZS52YXIoVi5kZWZhdWx0LnJvb3REYXRhLCgwLGsuXylgJHtWLmRlZmF1bHQudmFsQ3h0fS4ke1YuZGVmYXVsdC5yb290RGF0YX1gKSxuLmR5bmFtaWNSZWYmJmUudmFyKFYuZGVmYXVsdC5keW5hbWljQW5jaG9ycywoMCxrLl8pYCR7Vi5kZWZhdWx0LnZhbEN4dH0uJHtWLmRlZmF1bHQuZHluYW1pY0FuY2hvcnN9YCl9LCgpPT57ZS52YXIoVi5kZWZhdWx0Lmluc3RhbmNlUGF0aCwoMCxrLl8pYCIiYCksZS52YXIoVi5kZWZhdWx0LnBhcmVudERhdGEsKDAsay5fKWB1bmRlZmluZWRgKSxlLnZhcihWLmRlZmF1bHQucGFyZW50RGF0YVByb3BlcnR5LCgwLGsuXylgdW5kZWZpbmVkYCksZS52YXIoVi5kZWZhdWx0LnJvb3REYXRhLFYuZGVmYXVsdC5kYXRhKSxuLmR5bmFtaWNSZWYmJmUudmFyKFYuZGVmYXVsdC5keW5hbWljQW5jaG9ycywoMCxrLl8pYHt9YCl9KX1mdW5jdGlvbiBwXyhlKXtjb25zdHtzY2hlbWE6bixvcHRzOnIsZ2VuOm99PWU7T3MoZSwoKT0+e3IuJGNvbW1lbnQmJm4uJGNvbW1lbnQmJkFzKGUpLFRfKGUpLG8ubGV0KFYuZGVmYXVsdC52RXJyb3JzLG51bGwpLG8ubGV0KFYuZGVmYXVsdC5lcnJvcnMsMCksci51bmV2YWx1YXRlZCYmRV8oZSksYnMoZSksSV8oZSl9KX1mdW5jdGlvbiBFXyhlKXtjb25zdHtnZW46bix2YWxpZGF0ZU5hbWU6cn09ZTtlLmV2YWx1YXRlZD1uLmNvbnN0KCJldmFsdWF0ZWQiLCgwLGsuXylgJHtyfS5ldmFsdWF0ZWRgKSxuLmlmKCgwLGsuXylgJHtlLmV2YWx1YXRlZH0uZHluYW1pY1Byb3BzYCwoKT0+bi5hc3NpZ24oKDAsay5fKWAke2UuZXZhbHVhdGVkfS5wcm9wc2AsKDAsay5fKWB1bmRlZmluZWRgKSksbi5pZigoMCxrLl8pYCR7ZS5ldmFsdWF0ZWR9LmR5bmFtaWNJdGVtc2AsKCk9Pm4uYXNzaWduKCgwLGsuXylgJHtlLmV2YWx1YXRlZH0uaXRlbXNgLCgwLGsuXylgdW5kZWZpbmVkYCkpfWZ1bmN0aW9uIFRzKGUsbil7Y29uc3Qgcj10eXBlb2YgZT09Im9iamVjdCImJmVbbi5zY2hlbWFJZF07cmV0dXJuIHImJihuLmNvZGUuc291cmNlfHxuLmNvZGUucHJvY2Vzcyk/KDAsay5fKWAvKiMgc291cmNlVVJMPSR7cn0gKi9gOmsubmlsfWZ1bmN0aW9uIGZfKGUsbil7aWYoZ3MoZSkmJihJcyhlKSxOcyhlKSkpe1JfKGUsbik7cmV0dXJufSgwLGZzLmJvb2xPckVtcHR5U2NoZW1hKShlLG4pfWZ1bmN0aW9uIE5zKHtzY2hlbWE6ZSxzZWxmOm59KXtpZih0eXBlb2YgZT09ImJvb2xlYW4iKXJldHVybiFlO2Zvcihjb25zdCByIGluIGUpaWYobi5SVUxFUy5hbGxbcl0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZ3MoZSl7cmV0dXJuIHR5cGVvZiBlLnNjaGVtYSE9ImJvb2xlYW4ifWZ1bmN0aW9uIFJfKGUsbil7Y29uc3R7c2NoZW1hOnIsZ2VuOm8sb3B0czp0fT1lO3QuJGNvbW1lbnQmJnIuJGNvbW1lbnQmJkFzKGUpLE5fKGUpLGdfKGUpO2NvbnN0IHM9by5jb25zdCgiX2VycnMiLFYuZGVmYXVsdC5lcnJvcnMpO2JzKGUscyksby52YXIobiwoMCxrLl8pYCR7c30gPT09ICR7Vi5kZWZhdWx0LmVycm9yc31gKX1mdW5jdGlvbiBJcyhlKXsoMCxkbi5jaGVja1Vua25vd25SdWxlcykoZSksT18oZSl9ZnVuY3Rpb24gYnMoZSxuKXtpZihlLm9wdHMuanRkKXJldHVybiBVcyhlLFtdLCExLG4pO2NvbnN0IHI9KDAsUnMuZ2V0U2NoZW1hVHlwZXMpKGUuc2NoZW1hKSxvPSgwLFJzLmNvZXJjZUFuZENoZWNrRGF0YVR5cGUpKGUscik7VXMoZSxyLCFvLG4pfWZ1bmN0aW9uIE9fKGUpe2NvbnN0e3NjaGVtYTpuLGVyclNjaGVtYVBhdGg6cixvcHRzOm8sc2VsZjp0fT1lO24uJHJlZiYmby5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYmJigwLGRuLnNjaGVtYUhhc1J1bGVzQnV0UmVmKShuLHQuUlVMRVMpJiZ0LmxvZ2dlci53YXJuKGAkcmVmOiBrZXl3b3JkcyBpZ25vcmVkIGluIHNjaGVtYSBhdCBwYXRoICIke3J9ImApfWZ1bmN0aW9uIFRfKGUpe2NvbnN0e3NjaGVtYTpuLG9wdHM6cn09ZTtuLmRlZmF1bHQhPT12b2lkIDAmJnIudXNlRGVmYXVsdHMmJnIuc3RyaWN0U2NoZW1hJiYoMCxkbi5jaGVja1N0cmljdE1vZGUpKGUsImRlZmF1bHQgaXMgaWdub3JlZCBpbiB0aGUgc2NoZW1hIHJvb3QiKX1mdW5jdGlvbiBOXyhlKXtjb25zdCBuPWUuc2NoZW1hW2Uub3B0cy5zY2hlbWFJZF07biYmKGUuYmFzZUlkPSgwLGNfLnJlc29sdmVVcmwpKGUub3B0cy51cmlSZXNvbHZlcixlLmJhc2VJZCxuKSl9ZnVuY3Rpb24gZ18oZSl7aWYoZS5zY2hlbWEuJGFzeW5jJiYhZS5zY2hlbWFFbnYuJGFzeW5jKXRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIGluIHN5bmMgc2NoZW1hIil9ZnVuY3Rpb24gQXMoe2dlbjplLHNjaGVtYUVudjpuLHNjaGVtYTpyLGVyclNjaGVtYVBhdGg6byxvcHRzOnR9KXtjb25zdCBzPXIuJGNvbW1lbnQ7aWYodC4kY29tbWVudD09PSEwKWUuY29kZSgoMCxrLl8pYCR7Vi5kZWZhdWx0LnNlbGZ9LmxvZ2dlci5sb2coJHtzfSlgKTtlbHNlIGlmKHR5cGVvZiB0LiRjb21tZW50PT0iZnVuY3Rpb24iKXtjb25zdCBpPSgwLGsuc3RyKWAke299LyRjb21tZW50YCxsPWUuc2NvcGVWYWx1ZSgicm9vdCIse3JlZjpuLnJvb3R9KTtlLmNvZGUoKDAsay5fKWAke1YuZGVmYXVsdC5zZWxmfS5vcHRzLiRjb21tZW50KCR7c30sICR7aX0sICR7bH0uc2NoZW1hKWApfX1mdW5jdGlvbiBJXyhlKXtjb25zdHtnZW46bixzY2hlbWFFbnY6cix2YWxpZGF0ZU5hbWU6byxWYWxpZGF0aW9uRXJyb3I6dCxvcHRzOnN9PWU7ci4kYXN5bmM/bi5pZigoMCxrLl8pYCR7Vi5kZWZhdWx0LmVycm9yc30gPT09IDBgLCgpPT5uLnJldHVybihWLmRlZmF1bHQuZGF0YSksKCk9Pm4udGhyb3coKDAsay5fKWBuZXcgJHt0fSgke1YuZGVmYXVsdC52RXJyb3JzfSlgKSk6KG4uYXNzaWduKCgwLGsuXylgJHtvfS5lcnJvcnNgLFYuZGVmYXVsdC52RXJyb3JzKSxzLnVuZXZhbHVhdGVkJiZiXyhlKSxuLnJldHVybigoMCxrLl8pYCR7Vi5kZWZhdWx0LmVycm9yc30gPT09IDBgKSl9ZnVuY3Rpb24gYl8oe2dlbjplLGV2YWx1YXRlZDpuLHByb3BzOnIsaXRlbXM6b30pe3IgaW5zdGFuY2VvZiBrLk5hbWUmJmUuYXNzaWduKCgwLGsuXylgJHtufS5wcm9wc2AsciksbyBpbnN0YW5jZW9mIGsuTmFtZSYmZS5hc3NpZ24oKDAsay5fKWAke259Lml0ZW1zYCxvKX1mdW5jdGlvbiBVcyhlLG4scixvKXtjb25zdHtnZW46dCxzY2hlbWE6cyxkYXRhOmksYWxsRXJyb3JzOmwsb3B0czpjLHNlbGY6bX09ZSx7UlVMRVM6YX09bTtpZihzLiRyZWYmJihjLmlnbm9yZUtleXdvcmRzV2l0aFJlZnx8ISgwLGRuLnNjaGVtYUhhc1J1bGVzQnV0UmVmKShzLGEpKSl7dC5ibG9jaygoKT0+U3MoZSwiJHJlZiIsYS5hbGwuJHJlZi5kZWZpbml0aW9uKSk7cmV0dXJufWMuanRkfHxBXyhlLG4pLHQuYmxvY2soKCk9Pntmb3IoY29uc3QgTyBvZiBhLnJ1bGVzKWgoTyk7aChhLnBvc3QpfSk7ZnVuY3Rpb24gaChPKXshKDAsWW8uc2hvdWxkVXNlR3JvdXApKHMsTyl8fChPLnR5cGU/KHQuaWYoKDAsYW8uY2hlY2tEYXRhVHlwZSkoTy50eXBlLGksYy5zdHJpY3ROdW1iZXJzKSksSHMoZSxPKSxuLmxlbmd0aD09PTEmJm5bMF09PT1PLnR5cGUmJnImJih0LmVsc2UoKSwoMCxhby5yZXBvcnRUeXBlRXJyb3IpKGUpKSx0LmVuZElmKCkpOkhzKGUsTyksbHx8dC5pZigoMCxrLl8pYCR7Vi5kZWZhdWx0LmVycm9yc30gPT09ICR7b3x8MH1gKSl9fWZ1bmN0aW9uIEhzKGUsbil7Y29uc3R7Z2VuOnIsc2NoZW1hOm8sb3B0czp7dXNlRGVmYXVsdHM6dH19PWU7dCYmKDAsbF8uYXNzaWduRGVmYXVsdHMpKGUsbi50eXBlKSxyLmJsb2NrKCgpPT57Zm9yKGNvbnN0IHMgb2Ygbi5ydWxlcykoMCxZby5zaG91bGRVc2VSdWxlKShvLHMpJiZTcyhlLHMua2V5d29yZCxzLmRlZmluaXRpb24sbi50eXBlKX0pfWZ1bmN0aW9uIEFfKGUsbil7ZS5zY2hlbWFFbnYubWV0YXx8IWUub3B0cy5zdHJpY3RUeXBlc3x8KFVfKGUsbiksZS5vcHRzLmFsbG93VW5pb25UeXBlc3x8SF8oZSxuKSx2XyhlLGUuZGF0YVR5cGVzKSl9ZnVuY3Rpb24gVV8oZSxuKXtpZighIW4ubGVuZ3RoKXtpZighZS5kYXRhVHlwZXMubGVuZ3RoKXtlLmRhdGFUeXBlcz1uO3JldHVybn1uLmZvckVhY2gocj0+e3ZzKGUuZGF0YVR5cGVzLHIpfHx6byhlLGB0eXBlICIke3J9IiBub3QgYWxsb3dlZCBieSBjb250ZXh0ICIke2UuZGF0YVR5cGVzLmpvaW4oIiwiKX0iYCl9KSxlLmRhdGFUeXBlcz1lLmRhdGFUeXBlcy5maWx0ZXIocj0+dnMobixyKSl9fWZ1bmN0aW9uIEhfKGUsbil7bi5sZW5ndGg+MSYmIShuLmxlbmd0aD09PTImJm4uaW5jbHVkZXMoIm51bGwiKSkmJnpvKGUsInVzZSBhbGxvd1VuaW9uVHlwZXMgdG8gYWxsb3cgdW5pb24gdHlwZSBrZXl3b3JkIil9ZnVuY3Rpb24gdl8oZSxuKXtjb25zdCByPWUuc2VsZi5SVUxFUy5hbGw7Zm9yKGNvbnN0IG8gaW4gcil7Y29uc3QgdD1yW29dO2lmKHR5cGVvZiB0PT0ib2JqZWN0IiYmKDAsWW8uc2hvdWxkVXNlUnVsZSkoZS5zY2hlbWEsdCkpe2NvbnN0e3R5cGU6c309dC5kZWZpbml0aW9uO3MubGVuZ3RoJiYhcy5zb21lKGk9PkRfKG4saSkpJiZ6byhlLGBtaXNzaW5nIHR5cGUgIiR7cy5qb2luKCIsIil9IiBmb3Iga2V5d29yZCAiJHtvfSJgKX19fWZ1bmN0aW9uIERfKGUsbil7cmV0dXJuIGUuaW5jbHVkZXMobil8fG49PT0ibnVtYmVyIiYmZS5pbmNsdWRlcygiaW50ZWdlciIpfWZ1bmN0aW9uIHZzKGUsbil7cmV0dXJuIGUuaW5jbHVkZXMobil8fG49PT0iaW50ZWdlciImJmUuaW5jbHVkZXMoIm51bWJlciIpfWZ1bmN0aW9uIHpvKGUsbil7bis9YCBhdCAiJHtlLnNjaGVtYUVudi5iYXNlSWQrZS5lcnJTY2hlbWFQYXRofSIgKHN0cmljdFR5cGVzKWAsKDAsZG4uY2hlY2tTdHJpY3RNb2RlKShlLG4sZS5vcHRzLnN0cmljdFR5cGVzKX1jbGFzcyBEc3tjb25zdHJ1Y3RvcihuLHIsbyl7aWYoKDAsZ3IudmFsaWRhdGVLZXl3b3JkVXNhZ2UpKG4scixvKSx0aGlzLmdlbj1uLmdlbix0aGlzLmFsbEVycm9ycz1uLmFsbEVycm9ycyx0aGlzLmtleXdvcmQ9byx0aGlzLmRhdGE9bi5kYXRhLHRoaXMuc2NoZW1hPW4uc2NoZW1hW29dLHRoaXMuJGRhdGE9ci4kZGF0YSYmbi5vcHRzLiRkYXRhJiZ0aGlzLnNjaGVtYSYmdGhpcy5zY2hlbWEuJGRhdGEsdGhpcy5zY2hlbWFWYWx1ZT0oMCxkbi5zY2hlbWFSZWZPclZhbCkobix0aGlzLnNjaGVtYSxvLHRoaXMuJGRhdGEpLHRoaXMuc2NoZW1hVHlwZT1yLnNjaGVtYVR5cGUsdGhpcy5wYXJlbnRTY2hlbWE9bi5zY2hlbWEsdGhpcy5wYXJhbXM9e30sdGhpcy5pdD1uLHRoaXMuZGVmPXIsdGhpcy4kZGF0YSl0aGlzLnNjaGVtYUNvZGU9bi5nZW4uY29uc3QoInZTY2hlbWEiLFBzKHRoaXMuJGRhdGEsbikpO2Vsc2UgaWYodGhpcy5zY2hlbWFDb2RlPXRoaXMuc2NoZW1hVmFsdWUsISgwLGdyLnZhbGlkU2NoZW1hVHlwZSkodGhpcy5zY2hlbWEsci5zY2hlbWFUeXBlLHIuYWxsb3dVbmRlZmluZWQpKXRocm93IG5ldyBFcnJvcihgJHtvfSB2YWx1ZSBtdXN0IGJlICR7SlNPTi5zdHJpbmdpZnkoci5zY2hlbWFUeXBlKX1gKTsoImNvZGUiaW4gcj9yLnRyYWNrRXJyb3JzOnIuZXJyb3JzIT09ITEpJiYodGhpcy5lcnJzQ291bnQ9bi5nZW4uY29uc3QoIl9lcnJzIixWLmRlZmF1bHQuZXJyb3JzKSl9cmVzdWx0KG4scixvKXt0aGlzLmZhaWxSZXN1bHQoKDAsay5ub3QpKG4pLHIsbyl9ZmFpbFJlc3VsdChuLHIsbyl7dGhpcy5nZW4uaWYobiksbz9vKCk6dGhpcy5lcnJvcigpLHI/KHRoaXMuZ2VuLmVsc2UoKSxyKCksdGhpcy5hbGxFcnJvcnMmJnRoaXMuZ2VuLmVuZElmKCkpOnRoaXMuYWxsRXJyb3JzP3RoaXMuZ2VuLmVuZElmKCk6dGhpcy5nZW4uZWxzZSgpfXBhc3MobixyKXt0aGlzLmZhaWxSZXN1bHQoKDAsay5ub3QpKG4pLHZvaWQgMCxyKX1mYWlsKG4pe2lmKG49PT12b2lkIDApe3RoaXMuZXJyb3IoKSx0aGlzLmFsbEVycm9yc3x8dGhpcy5nZW4uaWYoITEpO3JldHVybn10aGlzLmdlbi5pZihuKSx0aGlzLmVycm9yKCksdGhpcy5hbGxFcnJvcnM/dGhpcy5nZW4uZW5kSWYoKTp0aGlzLmdlbi5lbHNlKCl9ZmFpbCRkYXRhKG4pe2lmKCF0aGlzLiRkYXRhKXJldHVybiB0aGlzLmZhaWwobik7Y29uc3R7c2NoZW1hQ29kZTpyfT10aGlzO3RoaXMuZmFpbCgoMCxrLl8pYCR7cn0gIT09IHVuZGVmaW5lZCAmJiAoJHsoMCxrLm9yKSh0aGlzLmludmFsaWQkZGF0YSgpLG4pfSlgKX1lcnJvcihuLHIsbyl7aWYocil7dGhpcy5zZXRQYXJhbXMociksdGhpcy5fZXJyb3IobixvKSx0aGlzLnNldFBhcmFtcyh7fSk7cmV0dXJufXRoaXMuX2Vycm9yKG4sbyl9X2Vycm9yKG4scil7KG4/SXIucmVwb3J0RXh0cmFFcnJvcjpJci5yZXBvcnRFcnJvcikodGhpcyx0aGlzLmRlZi5lcnJvcixyKX0kZGF0YUVycm9yKCl7KDAsSXIucmVwb3J0RXJyb3IpKHRoaXMsdGhpcy5kZWYuJGRhdGFFcnJvcnx8SXIua2V5d29yZCREYXRhRXJyb3IpfXJlc2V0KCl7aWYodGhpcy5lcnJzQ291bnQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCdhZGQgInRyYWNrRXJyb3JzIiB0byBrZXl3b3JkIGRlZmluaXRpb24nKTsoMCxJci5yZXNldEVycm9yc0NvdW50KSh0aGlzLmdlbix0aGlzLmVycnNDb3VudCl9b2sobil7dGhpcy5hbGxFcnJvcnN8fHRoaXMuZ2VuLmlmKG4pfXNldFBhcmFtcyhuLHIpe3I/T2JqZWN0LmFzc2lnbih0aGlzLnBhcmFtcyxuKTp0aGlzLnBhcmFtcz1ufWJsb2NrJGRhdGEobixyLG89ay5uaWwpe3RoaXMuZ2VuLmJsb2NrKCgpPT57dGhpcy5jaGVjayRkYXRhKG4sbykscigpfSl9Y2hlY2skZGF0YShuPWsubmlsLHI9ay5uaWwpe2lmKCF0aGlzLiRkYXRhKXJldHVybjtjb25zdHtnZW46byxzY2hlbWFDb2RlOnQsc2NoZW1hVHlwZTpzLGRlZjppfT10aGlzO28uaWYoKDAsay5vcikoKDAsay5fKWAke3R9ID09PSB1bmRlZmluZWRgLHIpKSxuIT09ay5uaWwmJm8uYXNzaWduKG4sITApLChzLmxlbmd0aHx8aS52YWxpZGF0ZVNjaGVtYSkmJihvLmVsc2VJZih0aGlzLmludmFsaWQkZGF0YSgpKSx0aGlzLiRkYXRhRXJyb3IoKSxuIT09ay5uaWwmJm8uYXNzaWduKG4sITEpKSxvLmVsc2UoKX1pbnZhbGlkJGRhdGEoKXtjb25zdHtnZW46bixzY2hlbWFDb2RlOnIsc2NoZW1hVHlwZTpvLGRlZjp0LGl0OnN9PXRoaXM7cmV0dXJuKDAsay5vcikoaSgpLGwoKSk7ZnVuY3Rpb24gaSgpe2lmKG8ubGVuZ3RoKXtpZighKHIgaW5zdGFuY2VvZiBrLk5hbWUpKXRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7Y29uc3QgYz1BcnJheS5pc0FycmF5KG8pP286W29dO3JldHVybigwLGsuXylgJHsoMCxhby5jaGVja0RhdGFUeXBlcykoYyxyLHMub3B0cy5zdHJpY3ROdW1iZXJzLGFvLkRhdGFUeXBlLldyb25nKX1gfXJldHVybiBrLm5pbH1mdW5jdGlvbiBsKCl7aWYodC52YWxpZGF0ZVNjaGVtYSl7Y29uc3QgYz1uLnNjb3BlVmFsdWUoInZhbGlkYXRlJGRhdGEiLHtyZWY6dC52YWxpZGF0ZVNjaGVtYX0pO3JldHVybigwLGsuXylgISR7Y30oJHtyfSlgfXJldHVybiBrLm5pbH19c3Vic2NoZW1hKG4scil7Y29uc3Qgbz0oMCxKby5nZXRTdWJzY2hlbWEpKHRoaXMuaXQsbik7KDAsSm8uZXh0ZW5kU3Vic2NoZW1hRGF0YSkobyx0aGlzLml0LG4pLCgwLEpvLmV4dGVuZFN1YnNjaGVtYU1vZGUpKG8sbik7Y29uc3QgdD1sZShZKFkoe30sdGhpcy5pdCksbykse2l0ZW1zOnZvaWQgMCxwcm9wczp2b2lkIDB9KTtyZXR1cm4gZl8odCxyKSx0fW1lcmdlRXZhbHVhdGVkKG4scil7Y29uc3R7aXQ6byxnZW46dH09dGhpczshby5vcHRzLnVuZXZhbHVhdGVkfHwoby5wcm9wcyE9PSEwJiZuLnByb3BzIT09dm9pZCAwJiYoby5wcm9wcz1kbi5tZXJnZUV2YWx1YXRlZC5wcm9wcyh0LG4ucHJvcHMsby5wcm9wcyxyKSksby5pdGVtcyE9PSEwJiZuLml0ZW1zIT09dm9pZCAwJiYoby5pdGVtcz1kbi5tZXJnZUV2YWx1YXRlZC5pdGVtcyh0LG4uaXRlbXMsby5pdGVtcyxyKSkpfW1lcmdlVmFsaWRFdmFsdWF0ZWQobixyKXtjb25zdHtpdDpvLGdlbjp0fT10aGlzO2lmKG8ub3B0cy51bmV2YWx1YXRlZCYmKG8ucHJvcHMhPT0hMHx8by5pdGVtcyE9PSEwKSlyZXR1cm4gdC5pZihyLCgpPT50aGlzLm1lcmdlRXZhbHVhdGVkKG4say5OYW1lKSksITB9fXplLktleXdvcmRDeHQ9RHM7ZnVuY3Rpb24gU3MoZSxuLHIsbyl7Y29uc3QgdD1uZXcgRHMoZSxyLG4pOyJjb2RlImluIHI/ci5jb2RlKHQsbyk6dC4kZGF0YSYmci52YWxpZGF0ZT8oMCxnci5mdW5jS2V5d29yZENvZGUpKHQscik6Im1hY3JvImluIHI/KDAsZ3IubWFjcm9LZXl3b3JkQ29kZSkodCxyKTooci5jb21waWxlfHxyLnZhbGlkYXRlKSYmKDAsZ3IuZnVuY0tleXdvcmRDb2RlKSh0LHIpfWNvbnN0IFNfPS9eXC8oPzpbXn5dfH4wfH4xKSokLyxQXz0vXihbMC05XSspKCN8XC8oPzpbXn5dfH4wfH4xKSopPyQvO2Z1bmN0aW9uIFBzKGUse2RhdGFMZXZlbDpuLGRhdGFOYW1lczpyLGRhdGFQYXRoQXJyOm99KXtsZXQgdCxzO2lmKGU9PT0iIilyZXR1cm4gVi5kZWZhdWx0LnJvb3REYXRhO2lmKGVbMF09PT0iLyIpe2lmKCFTXy50ZXN0KGUpKXRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKU09OLXBvaW50ZXI6ICR7ZX1gKTt0PWUscz1WLmRlZmF1bHQucm9vdERhdGF9ZWxzZXtjb25zdCBtPVBfLmV4ZWMoZSk7aWYoIW0pdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEpTT04tcG9pbnRlcjogJHtlfWApO2NvbnN0IGE9K21bMV07aWYodD1tWzJdLHQ9PT0iIyIpe2lmKGE+PW4pdGhyb3cgbmV3IEVycm9yKGMoInByb3BlcnR5L2luZGV4IixhKSk7cmV0dXJuIG9bbi1hXX1pZihhPm4pdGhyb3cgbmV3IEVycm9yKGMoImRhdGEiLGEpKTtpZihzPXJbbi1hXSwhdClyZXR1cm4gc31sZXQgaT1zO2NvbnN0IGw9dC5zcGxpdCgiLyIpO2Zvcihjb25zdCBtIG9mIGwpbSYmKHM9KDAsay5fKWAke3N9JHsoMCxrLmdldFByb3BlcnR5KSgoMCxkbi51bmVzY2FwZUpzb25Qb2ludGVyKShtKSl9YCxpPSgwLGsuXylgJHtpfSAmJiAke3N9YCk7cmV0dXJuIGk7ZnVuY3Rpb24gYyhtLGEpe3JldHVybmBDYW5ub3QgYWNjZXNzICR7bX0gJHthfSBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJHtufWB9fXplLmdldERhdGE9UHM7dmFyIHVvPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1bywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Y2xhc3Mgd18gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihuKXtzdXBlcigidmFsaWRhdGlvbiBmYWlsZWQiKSx0aGlzLmVycm9ycz1uLHRoaXMuYWp2PXRoaXMudmFsaWRhdGlvbj0hMH19dW8uZGVmYXVsdD13Xzt2YXIgTG49e307T2JqZWN0LmRlZmluZVByb3BlcnR5KExuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBxbz1EZTtjbGFzcyBHXyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKG4scixvLHQpe3N1cGVyKHR8fGBjYW4ndCByZXNvbHZlIHJlZmVyZW5jZSAke299IGZyb20gaWQgJHtyfWApLHRoaXMubWlzc2luZ1JlZj0oMCxxby5yZXNvbHZlVXJsKShuLHIsbyksdGhpcy5taXNzaW5nU2NoZW1hPSgwLHFvLm5vcm1hbGl6ZUlkKSgoMCxxby5nZXRGdWxsUGF0aCkobix0aGlzLm1pc3NpbmdSZWYpKX19TG4uZGVmYXVsdD1HXzt2YXIgUGU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFBlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxQZS5yZXNvbHZlU2NoZW1hPVBlLmdldENvbXBpbGluZ1NjaGVtYT1QZS5yZXNvbHZlUmVmPVBlLmNvbXBpbGVTY2hlbWE9UGUuU2NoZW1hRW52PXZvaWQgMDtjb25zdCBZZT1fZSxDXz11byxCbj1NZSxKZT1EZSx3cz1BZSx5Xz16ZTtjbGFzcyBfb3tjb25zdHJ1Y3RvcihuKXt2YXIgcjt0aGlzLnJlZnM9e30sdGhpcy5keW5hbWljQW5jaG9ycz17fTtsZXQgbzt0eXBlb2Ygbi5zY2hlbWE9PSJvYmplY3QiJiYobz1uLnNjaGVtYSksdGhpcy5zY2hlbWE9bi5zY2hlbWEsdGhpcy5zY2hlbWFJZD1uLnNjaGVtYUlkLHRoaXMucm9vdD1uLnJvb3R8fHRoaXMsdGhpcy5iYXNlSWQ9KHI9bi5iYXNlSWQpIT09bnVsbCYmciE9PXZvaWQgMD9yOigwLEplLm5vcm1hbGl6ZUlkKShvPT1udWxsP3ZvaWQgMDpvW24uc2NoZW1hSWR8fCIkaWQiXSksdGhpcy5zY2hlbWFQYXRoPW4uc2NoZW1hUGF0aCx0aGlzLmxvY2FsUmVmcz1uLmxvY2FsUmVmcyx0aGlzLm1ldGE9bi5tZXRhLHRoaXMuJGFzeW5jPW89PW51bGw/dm9pZCAwOm8uJGFzeW5jLHRoaXMucmVmcz17fX19UGUuU2NoZW1hRW52PV9vO2Z1bmN0aW9uIFFvKGUpe2NvbnN0IG49R3MuY2FsbCh0aGlzLGUpO2lmKG4pcmV0dXJuIG47Y29uc3Qgcj0oMCxKZS5nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLGUucm9vdC5iYXNlSWQpLHtlczU6byxsaW5lczp0fT10aGlzLm9wdHMuY29kZSx7b3duUHJvcGVydGllczpzfT10aGlzLm9wdHMsaT1uZXcgWWUuQ29kZUdlbih0aGlzLnNjb3BlLHtlczU6byxsaW5lczp0LG93blByb3BlcnRpZXM6c30pO2xldCBsO2UuJGFzeW5jJiYobD1pLnNjb3BlVmFsdWUoIkVycm9yIix7cmVmOkNfLmRlZmF1bHQsY29kZTooMCxZZS5fKWByZXF1aXJlKCJhanYvZGlzdC9ydW50aW1lL3ZhbGlkYXRpb25fZXJyb3IiKS5kZWZhdWx0YH0pKTtjb25zdCBjPWkuc2NvcGVOYW1lKCJ2YWxpZGF0ZSIpO2UudmFsaWRhdGVOYW1lPWM7Y29uc3QgbT17Z2VuOmksYWxsRXJyb3JzOnRoaXMub3B0cy5hbGxFcnJvcnMsZGF0YTpCbi5kZWZhdWx0LmRhdGEscGFyZW50RGF0YTpCbi5kZWZhdWx0LnBhcmVudERhdGEscGFyZW50RGF0YVByb3BlcnR5OkJuLmRlZmF1bHQucGFyZW50RGF0YVByb3BlcnR5LGRhdGFOYW1lczpbQm4uZGVmYXVsdC5kYXRhXSxkYXRhUGF0aEFycjpbWWUubmlsXSxkYXRhTGV2ZWw6MCxkYXRhVHlwZXM6W10sZGVmaW5lZFByb3BlcnRpZXM6bmV3IFNldCx0b3BTY2hlbWFSZWY6aS5zY29wZVZhbHVlKCJzY2hlbWEiLHRoaXMub3B0cy5jb2RlLnNvdXJjZT09PSEwP3tyZWY6ZS5zY2hlbWEsY29kZTooMCxZZS5zdHJpbmdpZnkpKGUuc2NoZW1hKX06e3JlZjplLnNjaGVtYX0pLHZhbGlkYXRlTmFtZTpjLFZhbGlkYXRpb25FcnJvcjpsLHNjaGVtYTplLnNjaGVtYSxzY2hlbWFFbnY6ZSxyb290SWQ6cixiYXNlSWQ6ZS5iYXNlSWR8fHIsc2NoZW1hUGF0aDpZZS5uaWwsZXJyU2NoZW1hUGF0aDplLnNjaGVtYVBhdGh8fCh0aGlzLm9wdHMuanRkPyIiOiIjIiksZXJyb3JQYXRoOigwLFllLl8pYCIiYCxvcHRzOnRoaXMub3B0cyxzZWxmOnRoaXN9O2xldCBhO3RyeXt0aGlzLl9jb21waWxhdGlvbnMuYWRkKGUpLCgwLHlfLnZhbGlkYXRlRnVuY3Rpb25Db2RlKShtKSxpLm9wdGltaXplKHRoaXMub3B0cy5jb2RlLm9wdGltaXplKTtjb25zdCBoPWkudG9TdHJpbmcoKTthPWAke2kuc2NvcGVSZWZzKEJuLmRlZmF1bHQuc2NvcGUpfXJldHVybiAke2h9YCx0aGlzLm9wdHMuY29kZS5wcm9jZXNzJiYoYT10aGlzLm9wdHMuY29kZS5wcm9jZXNzKGEsZSkpO2NvbnN0IEQ9bmV3IEZ1bmN0aW9uKGAke0JuLmRlZmF1bHQuc2VsZn1gLGAke0JuLmRlZmF1bHQuc2NvcGV9YCxhKSh0aGlzLHRoaXMuc2NvcGUuZ2V0KCkpO2lmKHRoaXMuc2NvcGUudmFsdWUoYyx7cmVmOkR9KSxELmVycm9ycz1udWxsLEQuc2NoZW1hPWUuc2NoZW1hLEQuc2NoZW1hRW52PWUsZS4kYXN5bmMmJihELiRhc3luYz0hMCksdGhpcy5vcHRzLmNvZGUuc291cmNlPT09ITAmJihELnNvdXJjZT17dmFsaWRhdGVOYW1lOmMsdmFsaWRhdGVDb2RlOmgsc2NvcGVWYWx1ZXM6aS5fdmFsdWVzfSksdGhpcy5vcHRzLnVuZXZhbHVhdGVkKXtjb25zdHtwcm9wczp3LGl0ZW1zOkN9PW07RC5ldmFsdWF0ZWQ9e3Byb3BzOncgaW5zdGFuY2VvZiBZZS5OYW1lP3ZvaWQgMDp3LGl0ZW1zOkMgaW5zdGFuY2VvZiBZZS5OYW1lP3ZvaWQgMDpDLGR5bmFtaWNQcm9wczp3IGluc3RhbmNlb2YgWWUuTmFtZSxkeW5hbWljSXRlbXM6QyBpbnN0YW5jZW9mIFllLk5hbWV9LEQuc291cmNlJiYoRC5zb3VyY2UuZXZhbHVhdGVkPSgwLFllLnN0cmluZ2lmeSkoRC5ldmFsdWF0ZWQpKX1yZXR1cm4gZS52YWxpZGF0ZT1ELGV9Y2F0Y2goaCl7dGhyb3cgZGVsZXRlIGUudmFsaWRhdGUsZGVsZXRlIGUudmFsaWRhdGVOYW1lLGEmJnRoaXMubG9nZ2VyLmVycm9yKCJFcnJvciBjb21waWxpbmcgc2NoZW1hLCBmdW5jdGlvbiBjb2RlOiIsYSksaH1maW5hbGx5e3RoaXMuX2NvbXBpbGF0aW9ucy5kZWxldGUoZSl9fVBlLmNvbXBpbGVTY2hlbWE9UW87ZnVuY3Rpb24gTF8oZSxuLHIpe3ZhciBvO3I9KDAsSmUucmVzb2x2ZVVybCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLG4scik7Y29uc3QgdD1lLnJlZnNbcl07aWYodClyZXR1cm4gdDtsZXQgcz1NXy5jYWxsKHRoaXMsZSxyKTtpZihzPT09dm9pZCAwKXtjb25zdCBpPShvPWUubG9jYWxSZWZzKT09PW51bGx8fG89PT12b2lkIDA/dm9pZCAwOm9bcl0se3NjaGVtYUlkOmx9PXRoaXMub3B0cztpJiYocz1uZXcgX28oe3NjaGVtYTppLHNjaGVtYUlkOmwscm9vdDplLGJhc2VJZDpufSkpfWlmKHMhPT12b2lkIDApcmV0dXJuIGUucmVmc1tyXT1CXy5jYWxsKHRoaXMscyl9UGUucmVzb2x2ZVJlZj1MXztmdW5jdGlvbiBCXyhlKXtyZXR1cm4oMCxKZS5pbmxpbmVSZWYpKGUuc2NoZW1hLHRoaXMub3B0cy5pbmxpbmVSZWZzKT9lLnNjaGVtYTplLnZhbGlkYXRlP2U6UW8uY2FsbCh0aGlzLGUpfWZ1bmN0aW9uIEdzKGUpe2Zvcihjb25zdCBuIG9mIHRoaXMuX2NvbXBpbGF0aW9ucylpZihrXyhuLGUpKXJldHVybiBufVBlLmdldENvbXBpbGluZ1NjaGVtYT1HcztmdW5jdGlvbiBrXyhlLG4pe3JldHVybiBlLnNjaGVtYT09PW4uc2NoZW1hJiZlLnJvb3Q9PT1uLnJvb3QmJmUuYmFzZUlkPT09bi5iYXNlSWR9ZnVuY3Rpb24gTV8oZSxuKXtsZXQgcjtmb3IoO3R5cGVvZihyPXRoaXMucmVmc1tuXSk9PSJzdHJpbmciOyluPXI7cmV0dXJuIHJ8fHRoaXMuc2NoZW1hc1tuXXx8bG8uY2FsbCh0aGlzLGUsbil9ZnVuY3Rpb24gbG8oZSxuKXtjb25zdCByPXRoaXMub3B0cy51cmlSZXNvbHZlci5wYXJzZShuKSxvPSgwLEplLl9nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLHIpO2xldCB0PSgwLEplLmdldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsZS5iYXNlSWQsdm9pZCAwKTtpZihPYmplY3Qua2V5cyhlLnNjaGVtYSkubGVuZ3RoPjAmJm89PT10KXJldHVybiBaby5jYWxsKHRoaXMscixlKTtjb25zdCBzPSgwLEplLm5vcm1hbGl6ZUlkKShvKSxpPXRoaXMucmVmc1tzXXx8dGhpcy5zY2hlbWFzW3NdO2lmKHR5cGVvZiBpPT0ic3RyaW5nIil7Y29uc3QgbD1sby5jYWxsKHRoaXMsZSxpKTtyZXR1cm4gdHlwZW9mKGw9PW51bGw/dm9pZCAwOmwuc2NoZW1hKSE9Im9iamVjdCI/dm9pZCAwOlpvLmNhbGwodGhpcyxyLGwpfWlmKHR5cGVvZihpPT1udWxsP3ZvaWQgMDppLnNjaGVtYSk9PSJvYmplY3QiKXtpZihpLnZhbGlkYXRlfHxRby5jYWxsKHRoaXMsaSkscz09PSgwLEplLm5vcm1hbGl6ZUlkKShuKSl7Y29uc3R7c2NoZW1hOmx9PWkse3NjaGVtYUlkOmN9PXRoaXMub3B0cyxtPWxbY107cmV0dXJuIG0mJih0PSgwLEplLnJlc29sdmVVcmwpKHRoaXMub3B0cy51cmlSZXNvbHZlcix0LG0pKSxuZXcgX28oe3NjaGVtYTpsLHNjaGVtYUlkOmMscm9vdDplLGJhc2VJZDp0fSl9cmV0dXJuIFpvLmNhbGwodGhpcyxyLGkpfX1QZS5yZXNvbHZlU2NoZW1hPWxvO2NvbnN0IFhfPW5ldyBTZXQoWyJwcm9wZXJ0aWVzIiwicGF0dGVyblByb3BlcnRpZXMiLCJlbnVtIiwiZGVwZW5kZW5jaWVzIiwiZGVmaW5pdGlvbnMiXSk7ZnVuY3Rpb24gWm8oZSx7YmFzZUlkOm4sc2NoZW1hOnIscm9vdDpvfSl7dmFyIHQ7aWYoKCh0PWUuZnJhZ21lbnQpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dFswXSkhPT0iLyIpcmV0dXJuO2Zvcihjb25zdCBsIG9mIGUuZnJhZ21lbnQuc2xpY2UoMSkuc3BsaXQoIi8iKSl7aWYodHlwZW9mIHI9PSJib29sZWFuIilyZXR1cm47Y29uc3QgYz1yWygwLHdzLnVuZXNjYXBlRnJhZ21lbnQpKGwpXTtpZihjPT09dm9pZCAwKXJldHVybjtyPWM7Y29uc3QgbT10eXBlb2Ygcj09Im9iamVjdCImJnJbdGhpcy5vcHRzLnNjaGVtYUlkXTshWF8uaGFzKGwpJiZtJiYobj0oMCxKZS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsbixtKSl9bGV0IHM7aWYodHlwZW9mIHIhPSJib29sZWFuIiYmci4kcmVmJiYhKDAsd3Muc2NoZW1hSGFzUnVsZXNCdXRSZWYpKHIsdGhpcy5SVUxFUykpe2NvbnN0IGw9KDAsSmUucmVzb2x2ZVVybCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLG4sci4kcmVmKTtzPWxvLmNhbGwodGhpcyxvLGwpfWNvbnN0e3NjaGVtYUlkOml9PXRoaXMub3B0cztpZihzPXN8fG5ldyBfbyh7c2NoZW1hOnIsc2NoZW1hSWQ6aSxyb290Om8sYmFzZUlkOm59KSxzLnNjaGVtYSE9PXMucm9vdC5zY2hlbWEpcmV0dXJuIHN9dmFyICRfPXskaWQ6Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIyIsZGVzY3JpcHRpb246Ik1ldGEtc2NoZW1hIGZvciAkZGF0YSByZWZlcmVuY2UgKEpTT04gQW55U2NoZW1hIGV4dGVuc2lvbiBwcm9wb3NhbCkiLHR5cGU6Im9iamVjdCIscmVxdWlyZWQ6WyIkZGF0YSJdLHByb3BlcnRpZXM6eyRkYXRhOnt0eXBlOiJzdHJpbmciLGFueU9mOlt7Zm9ybWF0OiJyZWxhdGl2ZS1qc29uLXBvaW50ZXIifSx7Zm9ybWF0OiJqc29uLXBvaW50ZXIifV19fSxhZGRpdGlvbmFsUHJvcGVydGllczohMX0sZXQ9e30sbnQ9e2V4cG9ydHM6e319Oy8qKiBAbGljZW5zZSBVUkkuanMgdjQuNC4xIChjKSAyMDExIEdhcnkgQ291cnQuIExpY2Vuc2U6IGh0dHA6Ly9naXRodWIuY29tL2dhcnljb3VydC91cmktanMgKi8oZnVuY3Rpb24oZSxuKXsoZnVuY3Rpb24ocixvKXtvKG4pfSkoZWUsZnVuY3Rpb24ocil7ZnVuY3Rpb24gbygpe2Zvcih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLF89QXJyYXkoZCksRT0wO0U8ZDtFKyspX1tFXT1hcmd1bWVudHNbRV07aWYoXy5sZW5ndGg+MSl7X1swXT1fWzBdLnNsaWNlKDAsLTEpO2Zvcih2YXIgYj1fLmxlbmd0aC0xLEk9MTtJPGI7KytJKV9bSV09X1tJXS5zbGljZSgxLC0xKTtyZXR1cm4gX1tiXT1fW2JdLnNsaWNlKDEpLF8uam9pbigiIil9ZWxzZSByZXR1cm4gX1swXX1mdW5jdGlvbiB0KGQpe3JldHVybiIoPzoiK2QrIikifWZ1bmN0aW9uIHMoZCl7cmV0dXJuIGQ9PT12b2lkIDA/InVuZGVmaW5lZCI6ZD09PW51bGw/Im51bGwiOk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zcGxpdCgiICIpLnBvcCgpLnNwbGl0KCJdIikuc2hpZnQoKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGkoZCl7cmV0dXJuIGQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBsKGQpe3JldHVybiBkIT1udWxsP2QgaW5zdGFuY2VvZiBBcnJheT9kOnR5cGVvZiBkLmxlbmd0aCE9Im51bWJlciJ8fGQuc3BsaXR8fGQuc2V0SW50ZXJ2YWx8fGQuY2FsbD9bZF06QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZCk6W119ZnVuY3Rpb24gYyhkLF8pe3ZhciBFPWQ7aWYoXylmb3IodmFyIGIgaW4gXylFW2JdPV9bYl07cmV0dXJuIEV9ZnVuY3Rpb24gbShkKXt2YXIgXz0iW0EtWmEtel0iLEU9IlswLTldIixiPW8oRSwiW0EtRmEtZl0iKSxJPXQodCgiJVtFRmVmXSIrYisiJSIrYitiKyIlIitiK2IpKyJ8Iit0KCIlWzg5QS1GYS1mXSIrYisiJSIrYitiKSsifCIrdCgiJSIrYitiKSksJD0iW1xcOlxcL1xcP1xcI1xcW1xcXVxcQF0iLHg9IltcXCFcXCRcXCZcXCdcXChcXClcXCpcXCtcXCxcXDtcXD1dIix0ZT1vKCQseCkscGU9ZD8iW1xceEEwLVxcdTIwMERcXHUyMDEwLVxcdTIwMjlcXHUyMDJGLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdIjoiW10iLE5lPWQ/IltcXHVFMDAwLVxcdUY4RkZdIjoiW10iLFo9byhfLEUsIltcXC1cXC5cXF9cXH5dIixwZSk7dChfK28oXyxFLCJbXFwrXFwtXFwuXSIpKyIqIiksdCh0KEkrInwiK28oWix4LCJbXFw6XSIpKSsiKiIpO3ZhciBjZT10KHQoIjI1WzAtNV0iKSsifCIrdCgiMlswLTRdIitFKSsifCIrdCgiMSIrRStFKSsifCIrdCgiMD9bMS05XSIrRSkrInwwPzA/IitFKSxnZT10KGNlKyJcXC4iK2NlKyJcXC4iK2NlKyJcXC4iK2NlKSxLPXQoYisiezEsNH0iKSxmZT10KHQoSysiXFw6IitLKSsifCIrZ2UpLGJlPXQodChLKyJcXDoiKSsiezZ9IitmZSksUmU9dCgiXFw6XFw6Iit0KEsrIlxcOiIpKyJ7NX0iK2ZlKSxEbj10KHQoSykrIj9cXDpcXDoiK3QoSysiXFw6IikrIns0fSIrZmUpLHNuPXQodCh0KEsrIlxcOiIpKyJ7MCwxfSIrSykrIj9cXDpcXDoiK3QoSysiXFw6IikrInszfSIrZmUpLGFuPXQodCh0KEsrIlxcOiIpKyJ7MCwyfSIrSykrIj9cXDpcXDoiK3QoSysiXFw6IikrInsyfSIrZmUpLGZyPXQodCh0KEsrIlxcOiIpKyJ7MCwzfSIrSykrIj9cXDpcXDoiK0srIlxcOiIrZmUpLFduPXQodCh0KEsrIlxcOiIpKyJ7MCw0fSIrSykrIj9cXDpcXDoiK2ZlKSxLZT10KHQodChLKyJcXDoiKSsiezAsNX0iK0spKyI/XFw6XFw6IitLKSx1bj10KHQodChLKyJcXDoiKSsiezAsNn0iK0spKyI/XFw6XFw6IiksWW49dChbYmUsUmUsRG4sc24sYW4sZnIsV24sS2UsdW5dLmpvaW4oInwiKSksUm49dCh0KForInwiK0kpKyIrIik7dCgiW3ZWXSIrYisiK1xcLiIrbyhaLHgsIltcXDpdIikrIisiKSx0KHQoSSsifCIrbyhaLHgpKSsiKiIpO3ZhciBWcj10KEkrInwiK28oWix4LCJbXFw6XFxAXSIpKTtyZXR1cm4gdCh0KEkrInwiK28oWix4LCJbXFxAXSIpKSsiKyIpLHQodChWcisifCIrbygiW1xcL1xcP10iLE5lKSkrIioiKSx7Tk9UX1NDSEVNRTpuZXcgUmVnRXhwKG8oIlteXSIsXyxFLCJbXFwrXFwtXFwuXSIpLCJnIiksTk9UX1VTRVJJTkZPOm5ldyBSZWdFeHAobygiW15cXCVcXDpdIixaLHgpLCJnIiksTk9UX0hPU1Q6bmV3IFJlZ0V4cChvKCJbXlxcJVxcW1xcXVxcOl0iLFoseCksImciKSxOT1RfUEFUSDpuZXcgUmVnRXhwKG8oIlteXFwlXFwvXFw6XFxAXSIsWix4KSwiZyIpLE5PVF9QQVRIX05PU0NIRU1FOm5ldyBSZWdFeHAobygiW15cXCVcXC9cXEBdIixaLHgpLCJnIiksTk9UX1FVRVJZOm5ldyBSZWdFeHAobygiW15cXCVdIixaLHgsIltcXDpcXEBcXC9cXD9dIixOZSksImciKSxOT1RfRlJBR01FTlQ6bmV3IFJlZ0V4cChvKCJbXlxcJV0iLFoseCwiW1xcOlxcQFxcL1xcP10iKSwiZyIpLEVTQ0FQRTpuZXcgUmVnRXhwKG8oIlteXSIsWix4KSwiZyIpLFVOUkVTRVJWRUQ6bmV3IFJlZ0V4cChaLCJnIiksT1RIRVJfQ0hBUlM6bmV3IFJlZ0V4cChvKCJbXlxcJV0iLFosdGUpLCJnIiksUENUX0VOQ09ERUQ6bmV3IFJlZ0V4cChJLCJnIiksSVBWNEFERFJFU1M6bmV3IFJlZ0V4cCgiXigiK2dlKyIpJCIpLElQVjZBRERSRVNTOm5ldyBSZWdFeHAoIl5cXFs/KCIrWW4rIikiK3QodCgiXFwlMjV8XFwlKD8hIitiKyJ7Mn0pIikrIigiK1JuKyIpIikrIj9cXF0/JCIpfX12YXIgYT1tKCExKSxoPW0oITApLE89ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKF8sRSl7dmFyIGI9W10sST0hMCwkPSExLHg9dm9pZCAwO3RyeXtmb3IodmFyIHRlPV9bU3ltYm9sLml0ZXJhdG9yXSgpLHBlOyEoST0ocGU9dGUubmV4dCgpKS5kb25lKSYmKGIucHVzaChwZS52YWx1ZSksIShFJiZiLmxlbmd0aD09PUUpKTtJPSEwKTt9Y2F0Y2goTmUpeyQ9ITAseD1OZX1maW5hbGx5e3RyeXshSSYmdGUucmV0dXJuJiZ0ZS5yZXR1cm4oKX1maW5hbGx5e2lmKCQpdGhyb3cgeH19cmV0dXJuIGJ9cmV0dXJuIGZ1bmN0aW9uKF8sRSl7aWYoQXJyYXkuaXNBcnJheShfKSlyZXR1cm4gXztpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KF8pKXJldHVybiBkKF8sRSk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfX0oKSxEPWZ1bmN0aW9uKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpe2Zvcih2YXIgXz0wLEU9QXJyYXkoZC5sZW5ndGgpO188ZC5sZW5ndGg7XysrKUVbX109ZFtfXTtyZXR1cm4gRX1lbHNlIHJldHVybiBBcnJheS5mcm9tKGQpfSx3PTIxNDc0ODM2NDcsQz0zNixUPTEsZj0yNixBPTM4LFU9NzAwLFM9NzIsaj0xMjgsTj0iLSIsSD0vXnhuLS0vLEc9L1teXDAtXHg3RV0vLEY9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLFc9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LG1lPUMtVCx6PU1hdGguZmxvb3IsaWU9U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlvbiBxKGQpe3Rocm93IG5ldyBSYW5nZUVycm9yKFdbZF0pfWZ1bmN0aW9uIEVlKGQsXyl7Zm9yKHZhciBFPVtdLGI9ZC5sZW5ndGg7Yi0tOylFW2JdPV8oZFtiXSk7cmV0dXJuIEV9ZnVuY3Rpb24gT2UoZCxfKXt2YXIgRT1kLnNwbGl0KCJAIiksYj0iIjtFLmxlbmd0aD4xJiYoYj1FWzBdKyJAIixkPUVbMV0pLGQ9ZC5yZXBsYWNlKEYsIi4iKTt2YXIgST1kLnNwbGl0KCIuIiksJD1FZShJLF8pLmpvaW4oIi4iKTtyZXR1cm4gYiskfWZ1bmN0aW9uIEhlKGQpe2Zvcih2YXIgXz1bXSxFPTAsYj1kLmxlbmd0aDtFPGI7KXt2YXIgST1kLmNoYXJDb2RlQXQoRSsrKTtpZihJPj01NTI5NiYmSTw9NTYzMTkmJkU8Yil7dmFyICQ9ZC5jaGFyQ29kZUF0KEUrKyk7KCQmNjQ1MTIpPT01NjMyMD9fLnB1c2goKChJJjEwMjMpPDwxMCkrKCQmMTAyMykrNjU1MzYpOihfLnB1c2goSSksRS0tKX1lbHNlIF8ucHVzaChJKX1yZXR1cm4gX312YXIgRmU9ZnVuY3Rpb24oXyl7cmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50LmFwcGx5KFN0cmluZyxEKF8pKX0sbHI9ZnVuY3Rpb24oXyl7cmV0dXJuIF8tNDg8MTA/Xy0yMjpfLTY1PDI2P18tNjU6Xy05NzwyNj9fLTk3OkN9LHk9ZnVuY3Rpb24oXyxFKXtyZXR1cm4gXysyMis3NSooXzwyNiktKChFIT0wKTw8NSl9LFI9ZnVuY3Rpb24oXyxFLGIpe3ZhciBJPTA7Zm9yKF89Yj96KF8vVSk6Xz4+MSxfKz16KF8vRSk7Xz5tZSpmPj4xO0krPUMpXz16KF8vbWUpO3JldHVybiB6KEkrKG1lKzEpKl8vKF8rQSkpfSxQPWZ1bmN0aW9uKF8pe3ZhciBFPVtdLGI9Xy5sZW5ndGgsST0wLCQ9aix4PVMsdGU9Xy5sYXN0SW5kZXhPZihOKTt0ZTwwJiYodGU9MCk7Zm9yKHZhciBwZT0wO3BlPHRlOysrcGUpXy5jaGFyQ29kZUF0KHBlKT49MTI4JiZxKCJub3QtYmFzaWMiKSxFLnB1c2goXy5jaGFyQ29kZUF0KHBlKSk7Zm9yKHZhciBOZT10ZT4wP3RlKzE6MDtOZTxiOyl7Zm9yKHZhciBaPUksY2U9MSxnZT1DOztnZSs9Qyl7TmU+PWImJnEoImludmFsaWQtaW5wdXQiKTt2YXIgSz1scihfLmNoYXJDb2RlQXQoTmUrKykpOyhLPj1DfHxLPnooKHctSSkvY2UpKSYmcSgib3ZlcmZsb3ciKSxJKz1LKmNlO3ZhciBmZT1nZTw9eD9UOmdlPj14K2Y/ZjpnZS14O2lmKEs8ZmUpYnJlYWs7dmFyIGJlPUMtZmU7Y2U+eih3L2JlKSYmcSgib3ZlcmZsb3ciKSxjZSo9YmV9dmFyIFJlPUUubGVuZ3RoKzE7eD1SKEktWixSZSxaPT0wKSx6KEkvUmUpPnctJCYmcSgib3ZlcmZsb3ciKSwkKz16KEkvUmUpLEklPVJlLEUuc3BsaWNlKEkrKywwLCQpfXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseShTdHJpbmcsRSl9LGc9ZnVuY3Rpb24oXyl7dmFyIEU9W107Xz1IZShfKTt2YXIgYj1fLmxlbmd0aCxJPWosJD0wLHg9Uyx0ZT0hMCxwZT0hMSxOZT12b2lkIDA7dHJ5e2Zvcih2YXIgWj1fW1N5bWJvbC5pdGVyYXRvcl0oKSxjZTshKHRlPShjZT1aLm5leHQoKSkuZG9uZSk7dGU9ITApe3ZhciBnZT1jZS52YWx1ZTtnZTwxMjgmJkUucHVzaChpZShnZSkpfX1jYXRjaChLcil7cGU9ITAsTmU9S3J9ZmluYWxseXt0cnl7IXRlJiZaLnJldHVybiYmWi5yZXR1cm4oKX1maW5hbGx5e2lmKHBlKXRocm93IE5lfX12YXIgSz1FLmxlbmd0aCxmZT1LO2ZvcihLJiZFLnB1c2goTik7ZmU8Yjspe3ZhciBiZT13LFJlPSEwLERuPSExLHNuPXZvaWQgMDt0cnl7Zm9yKHZhciBhbj1fW1N5bWJvbC5pdGVyYXRvcl0oKSxmcjshKFJlPShmcj1hbi5uZXh0KCkpLmRvbmUpO1JlPSEwKXt2YXIgV249ZnIudmFsdWU7V24+PUkmJlduPGJlJiYoYmU9V24pfX1jYXRjaChLcil7RG49ITAsc249S3J9ZmluYWxseXt0cnl7IVJlJiZhbi5yZXR1cm4mJmFuLnJldHVybigpfWZpbmFsbHl7aWYoRG4pdGhyb3cgc259fXZhciBLZT1mZSsxO2JlLUk+eigody0kKS9LZSkmJnEoIm92ZXJmbG93IiksJCs9KGJlLUkpKktlLEk9YmU7dmFyIHVuPSEwLFluPSExLFJuPXZvaWQgMDt0cnl7Zm9yKHZhciBWcj1fW1N5bWJvbC5pdGVyYXRvcl0oKSxMaTshKHVuPShMaT1Wci5uZXh0KCkpLmRvbmUpO3VuPSEwKXt2YXIgQmk9TGkudmFsdWU7aWYoQmk8SSYmKyskPncmJnEoIm92ZXJmbG93IiksQmk9PUkpe2Zvcih2YXIgYm89JCxBbz1DOztBbys9Qyl7dmFyIFVvPUFvPD14P1Q6QW8+PXgrZj9mOkFvLXg7aWYoYm88VW8pYnJlYWs7dmFyIGtpPWJvLVVvLE1pPUMtVW87RS5wdXNoKGllKHkoVW8ra2klTWksMCkpKSxibz16KGtpL01pKX1FLnB1c2goaWUoeShibywwKSkpLHg9UigkLEtlLGZlPT1LKSwkPTAsKytmZX19fWNhdGNoKEtyKXtZbj0hMCxSbj1Lcn1maW5hbGx5e3RyeXshdW4mJlZyLnJldHVybiYmVnIucmV0dXJuKCl9ZmluYWxseXtpZihZbil0aHJvdyBSbn19KyskLCsrSX1yZXR1cm4gRS5qb2luKCIiKX0sdT1mdW5jdGlvbihfKXtyZXR1cm4gT2UoXyxmdW5jdGlvbihFKXtyZXR1cm4gSC50ZXN0KEUpP1AoRS5zbGljZSg0KS50b0xvd2VyQ2FzZSgpKTpFfSl9LHA9ZnVuY3Rpb24oXyl7cmV0dXJuIE9lKF8sZnVuY3Rpb24oRSl7cmV0dXJuIEcudGVzdChFKT8ieG4tLSIrZyhFKTpFfSl9LHY9e3ZlcnNpb246IjIuMS4wIix1Y3MyOntkZWNvZGU6SGUsZW5jb2RlOkZlfSxkZWNvZGU6UCxlbmNvZGU6Zyx0b0FTQ0lJOnAsdG9Vbmljb2RlOnV9LEw9e307ZnVuY3Rpb24gQihkKXt2YXIgXz1kLmNoYXJDb2RlQXQoMCksRT12b2lkIDA7cmV0dXJuIF88MTY/RT0iJTAiK18udG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk6XzwxMjg/RT0iJSIrXy50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTpfPDIwNDg/RT0iJSIrKF8+PjZ8MTkyKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiJSIrKF8mNjN8MTI4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTpFPSIlIisoXz4+MTJ8MjI0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiJSIrKF8+PjYmNjN8MTI4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSsiJSIrKF8mNjN8MTI4KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKSxFfWZ1bmN0aW9uIFEoZCl7Zm9yKHZhciBfPSIiLEU9MCxiPWQubGVuZ3RoO0U8Yjspe3ZhciBJPXBhcnNlSW50KGQuc3Vic3RyKEUrMSwyKSwxNik7aWYoSTwxMjgpXys9U3RyaW5nLmZyb21DaGFyQ29kZShJKSxFKz0zO2Vsc2UgaWYoST49MTk0JiZJPDIyNCl7aWYoYi1FPj02KXt2YXIgJD1wYXJzZUludChkLnN1YnN0cihFKzQsMiksMTYpO18rPVN0cmluZy5mcm9tQ2hhckNvZGUoKEkmMzEpPDw2fCQmNjMpfWVsc2UgXys9ZC5zdWJzdHIoRSw2KTtFKz02fWVsc2UgaWYoST49MjI0KXtpZihiLUU+PTkpe3ZhciB4PXBhcnNlSW50KGQuc3Vic3RyKEUrNCwyKSwxNiksdGU9cGFyc2VJbnQoZC5zdWJzdHIoRSs3LDIpLDE2KTtfKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChJJjE1KTw8MTJ8KHgmNjMpPDw2fHRlJjYzKX1lbHNlIF8rPWQuc3Vic3RyKEUsOSk7RSs9OX1lbHNlIF8rPWQuc3Vic3RyKEUsMyksRSs9M31yZXR1cm4gX31mdW5jdGlvbiByZShkLF8pe2Z1bmN0aW9uIEUoYil7dmFyIEk9UShiKTtyZXR1cm4gSS5tYXRjaChfLlVOUkVTRVJWRUQpP0k6Yn1yZXR1cm4gZC5zY2hlbWUmJihkLnNjaGVtZT1TdHJpbmcoZC5zY2hlbWUpLnJlcGxhY2UoXy5QQ1RfRU5DT0RFRCxFKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoXy5OT1RfU0NIRU1FLCIiKSksZC51c2VyaW5mbyE9PXZvaWQgMCYmKGQudXNlcmluZm89U3RyaW5nKGQudXNlcmluZm8pLnJlcGxhY2UoXy5QQ1RfRU5DT0RFRCxFKS5yZXBsYWNlKF8uTk9UX1VTRVJJTkZPLEIpLnJlcGxhY2UoXy5QQ1RfRU5DT0RFRCxpKSksZC5ob3N0IT09dm9pZCAwJiYoZC5ob3N0PVN0cmluZyhkLmhvc3QpLnJlcGxhY2UoXy5QQ1RfRU5DT0RFRCxFKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoXy5OT1RfSE9TVCxCKS5yZXBsYWNlKF8uUENUX0VOQ09ERUQsaSkpLGQucGF0aCE9PXZvaWQgMCYmKGQucGF0aD1TdHJpbmcoZC5wYXRoKS5yZXBsYWNlKF8uUENUX0VOQ09ERUQsRSkucmVwbGFjZShkLnNjaGVtZT9fLk5PVF9QQVRIOl8uTk9UX1BBVEhfTk9TQ0hFTUUsQikucmVwbGFjZShfLlBDVF9FTkNPREVELGkpKSxkLnF1ZXJ5IT09dm9pZCAwJiYoZC5xdWVyeT1TdHJpbmcoZC5xdWVyeSkucmVwbGFjZShfLlBDVF9FTkNPREVELEUpLnJlcGxhY2UoXy5OT1RfUVVFUlksQikucmVwbGFjZShfLlBDVF9FTkNPREVELGkpKSxkLmZyYWdtZW50IT09dm9pZCAwJiYoZC5mcmFnbWVudD1TdHJpbmcoZC5mcmFnbWVudCkucmVwbGFjZShfLlBDVF9FTkNPREVELEUpLnJlcGxhY2UoXy5OT1RfRlJBR01FTlQsQikucmVwbGFjZShfLlBDVF9FTkNPREVELGkpKSxkfWZ1bmN0aW9uIFRlKGQpe3JldHVybiBkLnJlcGxhY2UoL14wKiguKikvLCIkMSIpfHwiMCJ9ZnVuY3Rpb24gcm4oZCxfKXt2YXIgRT1kLm1hdGNoKF8uSVBWNEFERFJFU1MpfHxbXSxiPU8oRSwyKSxJPWJbMV07cmV0dXJuIEk/SS5zcGxpdCgiLiIpLm1hcChUZSkuam9pbigiLiIpOmR9ZnVuY3Rpb24gY3IoZCxfKXt2YXIgRT1kLm1hdGNoKF8uSVBWNkFERFJFU1MpfHxbXSxiPU8oRSwzKSxJPWJbMV0sJD1iWzJdO2lmKEkpe2Zvcih2YXIgeD1JLnRvTG93ZXJDYXNlKCkuc3BsaXQoIjo6IikucmV2ZXJzZSgpLHRlPU8oeCwyKSxwZT10ZVswXSxOZT10ZVsxXSxaPU5lP05lLnNwbGl0KCI6IikubWFwKFRlKTpbXSxjZT1wZS5zcGxpdCgiOiIpLm1hcChUZSksZ2U9Xy5JUFY0QUREUkVTUy50ZXN0KGNlW2NlLmxlbmd0aC0xXSksSz1nZT83OjgsZmU9Y2UubGVuZ3RoLUssYmU9QXJyYXkoSyksUmU9MDtSZTxLOysrUmUpYmVbUmVdPVpbUmVdfHxjZVtmZStSZV18fCIiO2dlJiYoYmVbSy0xXT1ybihiZVtLLTFdLF8pKTt2YXIgRG49YmUucmVkdWNlKGZ1bmN0aW9uKEtlLHVuLFluKXtpZighdW58fHVuPT09IjAiKXt2YXIgUm49S2VbS2UubGVuZ3RoLTFdO1JuJiZSbi5pbmRleCtSbi5sZW5ndGg9PT1Zbj9Sbi5sZW5ndGgrKzpLZS5wdXNoKHtpbmRleDpZbixsZW5ndGg6MX0pfXJldHVybiBLZX0sW10pLHNuPURuLnNvcnQoZnVuY3Rpb24oS2UsdW4pe3JldHVybiB1bi5sZW5ndGgtS2UubGVuZ3RofSlbMF0sYW49dm9pZCAwO2lmKHNuJiZzbi5sZW5ndGg+MSl7dmFyIGZyPWJlLnNsaWNlKDAsc24uaW5kZXgpLFduPWJlLnNsaWNlKHNuLmluZGV4K3NuLmxlbmd0aCk7YW49ZnIuam9pbigiOiIpKyI6OiIrV24uam9pbigiOiIpfWVsc2UgYW49YmUuam9pbigiOiIpO3JldHVybiAkJiYoYW4rPSIlIiskKSxhbn1lbHNlIHJldHVybiBkfXZhciBrcj0vXig/OihbXjpcLz8jXSspOik/KD86XC9cLygoPzooW15cLz8jQF0qKUApPyhcW1teXC8/I1xdXStcXXxbXlwvPyM6XSopKD86XDooXGQqKSk/KSk/KFtePyNdKikoPzpcPyhbXiNdKikpPyg/OiMoKD86LnxcbnxccikqKSk/L2ksTXI9IiIubWF0Y2goLygpezB9LylbMV09PT12b2lkIDA7ZnVuY3Rpb24ga2UoZCl7dmFyIF89YXJndW1lbnRzLmxlbmd0aD4xJiZhcmd1bWVudHNbMV0hPT12b2lkIDA/YXJndW1lbnRzWzFdOnt9LEU9e30sYj1fLmlyaSE9PSExP2g6YTtfLnJlZmVyZW5jZT09PSJzdWZmaXgiJiYoZD0oXy5zY2hlbWU/Xy5zY2hlbWUrIjoiOiIiKSsiLy8iK2QpO3ZhciBJPWQubWF0Y2goa3IpO2lmKEkpe01yPyhFLnNjaGVtZT1JWzFdLEUudXNlcmluZm89SVszXSxFLmhvc3Q9SVs0XSxFLnBvcnQ9cGFyc2VJbnQoSVs1XSwxMCksRS5wYXRoPUlbNl18fCIiLEUucXVlcnk9SVs3XSxFLmZyYWdtZW50PUlbOF0saXNOYU4oRS5wb3J0KSYmKEUucG9ydD1JWzVdKSk6KEUuc2NoZW1lPUlbMV18fHZvaWQgMCxFLnVzZXJpbmZvPWQuaW5kZXhPZigiQCIpIT09LTE/SVszXTp2b2lkIDAsRS5ob3N0PWQuaW5kZXhPZigiLy8iKSE9PS0xP0lbNF06dm9pZCAwLEUucG9ydD1wYXJzZUludChJWzVdLDEwKSxFLnBhdGg9SVs2XXx8IiIsRS5xdWVyeT1kLmluZGV4T2YoIj8iKSE9PS0xP0lbN106dm9pZCAwLEUuZnJhZ21lbnQ9ZC5pbmRleE9mKCIjIikhPT0tMT9JWzhdOnZvaWQgMCxpc05hTihFLnBvcnQpJiYoRS5wb3J0PWQubWF0Y2goL1wvXC8oPzoufFxuKSpcOig/OlwvfFw/fFwjfCQpLyk/SVs0XTp2b2lkIDApKSxFLmhvc3QmJihFLmhvc3Q9Y3Iocm4oRS5ob3N0LGIpLGIpKSxFLnNjaGVtZT09PXZvaWQgMCYmRS51c2VyaW5mbz09PXZvaWQgMCYmRS5ob3N0PT09dm9pZCAwJiZFLnBvcnQ9PT12b2lkIDAmJiFFLnBhdGgmJkUucXVlcnk9PT12b2lkIDA/RS5yZWZlcmVuY2U9InNhbWUtZG9jdW1lbnQiOkUuc2NoZW1lPT09dm9pZCAwP0UucmVmZXJlbmNlPSJyZWxhdGl2ZSI6RS5mcmFnbWVudD09PXZvaWQgMD9FLnJlZmVyZW5jZT0iYWJzb2x1dGUiOkUucmVmZXJlbmNlPSJ1cmkiLF8ucmVmZXJlbmNlJiZfLnJlZmVyZW5jZSE9PSJzdWZmaXgiJiZfLnJlZmVyZW5jZSE9PUUucmVmZXJlbmNlJiYoRS5lcnJvcj1FLmVycm9yfHwiVVJJIGlzIG5vdCBhICIrXy5yZWZlcmVuY2UrIiByZWZlcmVuY2UuIik7dmFyICQ9TFsoXy5zY2hlbWV8fEUuc2NoZW1lfHwiIikudG9Mb3dlckNhc2UoKV07aWYoIV8udW5pY29kZVN1cHBvcnQmJighJHx8ISQudW5pY29kZVN1cHBvcnQpKXtpZihFLmhvc3QmJihfLmRvbWFpbkhvc3R8fCQmJiQuZG9tYWluSG9zdCkpdHJ5e0UuaG9zdD12LnRvQVNDSUkoRS5ob3N0LnJlcGxhY2UoYi5QQ1RfRU5DT0RFRCxRKS50b0xvd2VyQ2FzZSgpKX1jYXRjaCh4KXtFLmVycm9yPUUuZXJyb3J8fCJIb3N0J3MgZG9tYWluIG5hbWUgY2FuIG5vdCBiZSBjb252ZXJ0ZWQgdG8gQVNDSUkgdmlhIHB1bnljb2RlOiAiK3h9cmUoRSxhKX1lbHNlIHJlKEUsYik7JCYmJC5wYXJzZSYmJC5wYXJzZShFLF8pfWVsc2UgRS5lcnJvcj1FLmVycm9yfHwiVVJJIGNhbiBub3QgYmUgcGFyc2VkLiI7cmV0dXJuIEV9ZnVuY3Rpb24gWHIoZCxfKXt2YXIgRT1fLmlyaSE9PSExP2g6YSxiPVtdO3JldHVybiBkLnVzZXJpbmZvIT09dm9pZCAwJiYoYi5wdXNoKGQudXNlcmluZm8pLGIucHVzaCgiQCIpKSxkLmhvc3QhPT12b2lkIDAmJmIucHVzaChjcihybihTdHJpbmcoZC5ob3N0KSxFKSxFKS5yZXBsYWNlKEUuSVBWNkFERFJFU1MsZnVuY3Rpb24oSSwkLHgpe3JldHVybiJbIiskKyh4PyIlMjUiK3g6IiIpKyJdIn0pKSwodHlwZW9mIGQucG9ydD09Im51bWJlciJ8fHR5cGVvZiBkLnBvcnQ9PSJzdHJpbmciKSYmKGIucHVzaCgiOiIpLGIucHVzaChTdHJpbmcoZC5wb3J0KSkpLGIubGVuZ3RoP2Iuam9pbigiIik6dm9pZCAwfXZhciBkcj0vXlwuXC4/XC8vLGhyPS9eXC9cLihcL3wkKS8sbXI9L15cL1wuXC4oXC98JCkvLCRyPS9eXC8/KD86LnxcbikqPyg/PVwvfCQpLztmdW5jdGlvbiBvbihkKXtmb3IodmFyIF89W107ZC5sZW5ndGg7KWlmKGQubWF0Y2goZHIpKWQ9ZC5yZXBsYWNlKGRyLCIiKTtlbHNlIGlmKGQubWF0Y2goaHIpKWQ9ZC5yZXBsYWNlKGhyLCIvIik7ZWxzZSBpZihkLm1hdGNoKG1yKSlkPWQucmVwbGFjZShtciwiLyIpLF8ucG9wKCk7ZWxzZSBpZihkPT09Ii4ifHxkPT09Ii4uIilkPSIiO2Vsc2V7dmFyIEU9ZC5tYXRjaCgkcik7aWYoRSl7dmFyIGI9RVswXTtkPWQuc2xpY2UoYi5sZW5ndGgpLF8ucHVzaChiKX1lbHNlIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBkb3Qgc2VnbWVudCBjb25kaXRpb24iKX1yZXR1cm4gXy5qb2luKCIiKX1mdW5jdGlvbiB5ZShkKXt2YXIgXz1hcmd1bWVudHMubGVuZ3RoPjEmJmFyZ3VtZW50c1sxXSE9PXZvaWQgMD9hcmd1bWVudHNbMV06e30sRT1fLmlyaT9oOmEsYj1bXSxJPUxbKF8uc2NoZW1lfHxkLnNjaGVtZXx8IiIpLnRvTG93ZXJDYXNlKCldO2lmKEkmJkkuc2VyaWFsaXplJiZJLnNlcmlhbGl6ZShkLF8pLGQuaG9zdCYmIUUuSVBWNkFERFJFU1MudGVzdChkLmhvc3QpKXtpZihfLmRvbWFpbkhvc3R8fEkmJkkuZG9tYWluSG9zdCl0cnl7ZC5ob3N0PV8uaXJpP3YudG9Vbmljb2RlKGQuaG9zdCk6di50b0FTQ0lJKGQuaG9zdC5yZXBsYWNlKEUuUENUX0VOQ09ERUQsUSkudG9Mb3dlckNhc2UoKSl9Y2F0Y2godGUpe2QuZXJyb3I9ZC5lcnJvcnx8Ikhvc3QncyBkb21haW4gbmFtZSBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byAiKyhfLmlyaT8iVW5pY29kZSI6IkFTQ0lJIikrIiB2aWEgcHVueWNvZGU6ICIrdGV9fXJlKGQsRSksXy5yZWZlcmVuY2UhPT0ic3VmZml4IiYmZC5zY2hlbWUmJihiLnB1c2goZC5zY2hlbWUpLGIucHVzaCgiOiIpKTt2YXIgJD1YcihkLF8pO2lmKCQhPT12b2lkIDAmJihfLnJlZmVyZW5jZSE9PSJzdWZmaXgiJiZiLnB1c2goIi8vIiksYi5wdXNoKCQpLGQucGF0aCYmZC5wYXRoLmNoYXJBdCgwKSE9PSIvIiYmYi5wdXNoKCIvIikpLGQucGF0aCE9PXZvaWQgMCl7dmFyIHg9ZC5wYXRoOyFfLmFic29sdXRlUGF0aCYmKCFJfHwhSS5hYnNvbHV0ZVBhdGgpJiYoeD1vbih4KSksJD09PXZvaWQgMCYmKHg9eC5yZXBsYWNlKC9eXC9cLy8sIi8lMkYiKSksYi5wdXNoKHgpfXJldHVybiBkLnF1ZXJ5IT09dm9pZCAwJiYoYi5wdXNoKCI/IiksYi5wdXNoKGQucXVlcnkpKSxkLmZyYWdtZW50IT09dm9pZCAwJiYoYi5wdXNoKCIjIiksYi5wdXNoKGQuZnJhZ21lbnQpKSxiLmpvaW4oIiIpfWZ1bmN0aW9uIHByKGQsXyl7dmFyIEU9YXJndW1lbnRzLmxlbmd0aD4yJiZhcmd1bWVudHNbMl0hPT12b2lkIDA/YXJndW1lbnRzWzJdOnt9LGI9YXJndW1lbnRzWzNdLEk9e307cmV0dXJuIGJ8fChkPWtlKHllKGQsRSksRSksXz1rZSh5ZShfLEUpLEUpKSxFPUV8fHt9LCFFLnRvbGVyYW50JiZfLnNjaGVtZT8oSS5zY2hlbWU9Xy5zY2hlbWUsSS51c2VyaW5mbz1fLnVzZXJpbmZvLEkuaG9zdD1fLmhvc3QsSS5wb3J0PV8ucG9ydCxJLnBhdGg9b24oXy5wYXRofHwiIiksSS5xdWVyeT1fLnF1ZXJ5KTooXy51c2VyaW5mbyE9PXZvaWQgMHx8Xy5ob3N0IT09dm9pZCAwfHxfLnBvcnQhPT12b2lkIDA/KEkudXNlcmluZm89Xy51c2VyaW5mbyxJLmhvc3Q9Xy5ob3N0LEkucG9ydD1fLnBvcnQsSS5wYXRoPW9uKF8ucGF0aHx8IiIpLEkucXVlcnk9Xy5xdWVyeSk6KF8ucGF0aD8oXy5wYXRoLmNoYXJBdCgwKT09PSIvIj9JLnBhdGg9b24oXy5wYXRoKTooKGQudXNlcmluZm8hPT12b2lkIDB8fGQuaG9zdCE9PXZvaWQgMHx8ZC5wb3J0IT09dm9pZCAwKSYmIWQucGF0aD9JLnBhdGg9Ii8iK18ucGF0aDpkLnBhdGg/SS5wYXRoPWQucGF0aC5zbGljZSgwLGQucGF0aC5sYXN0SW5kZXhPZigiLyIpKzEpK18ucGF0aDpJLnBhdGg9Xy5wYXRoLEkucGF0aD1vbihJLnBhdGgpKSxJLnF1ZXJ5PV8ucXVlcnkpOihJLnBhdGg9ZC5wYXRoLF8ucXVlcnkhPT12b2lkIDA/SS5xdWVyeT1fLnF1ZXJ5OkkucXVlcnk9ZC5xdWVyeSksSS51c2VyaW5mbz1kLnVzZXJpbmZvLEkuaG9zdD1kLmhvc3QsSS5wb3J0PWQucG9ydCksSS5zY2hlbWU9ZC5zY2hlbWUpLEkuZnJhZ21lbnQ9Xy5mcmFnbWVudCxJfWZ1bmN0aW9uIGpyKGQsXyxFKXt2YXIgYj1jKHtzY2hlbWU6Im51bGwifSxFKTtyZXR1cm4geWUocHIoa2UoZCxiKSxrZShfLGIpLGIsITApLGIpfWZ1bmN0aW9uIFZuKGQsXyl7cmV0dXJuIHR5cGVvZiBkPT0ic3RyaW5nIj9kPXllKGtlKGQsXyksXyk6cyhkKT09PSJvYmplY3QiJiYoZD1rZSh5ZShkLF8pLF8pKSxkfWZ1bmN0aW9uIHhyKGQsXyxFKXtyZXR1cm4gdHlwZW9mIGQ9PSJzdHJpbmciP2Q9eWUoa2UoZCxFKSxFKTpzKGQpPT09Im9iamVjdCImJihkPXllKGQsRSkpLHR5cGVvZiBfPT0ic3RyaW5nIj9fPXllKGtlKF8sRSksRSk6cyhfKT09PSJvYmplY3QiJiYoXz15ZShfLEUpKSxkPT09X31mdW5jdGlvbiBJbyhkLF8pe3JldHVybiBkJiZkLnRvU3RyaW5nKCkucmVwbGFjZSghX3x8IV8uaXJpP2EuRVNDQVBFOmguRVNDQVBFLEIpfWZ1bmN0aW9uIFZlKGQsXyl7cmV0dXJuIGQmJmQudG9TdHJpbmcoKS5yZXBsYWNlKCFffHwhXy5pcmk/YS5QQ1RfRU5DT0RFRDpoLlBDVF9FTkNPREVELFEpfXZhciBLbj17c2NoZW1lOiJodHRwIixkb21haW5Ib3N0OiEwLHBhcnNlOmZ1bmN0aW9uKF8sRSl7cmV0dXJuIF8uaG9zdHx8KF8uZXJyb3I9Xy5lcnJvcnx8IkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LiIpLF99LHNlcmlhbGl6ZTpmdW5jdGlvbihfLEUpe3ZhciBiPVN0cmluZyhfLnNjaGVtZSkudG9Mb3dlckNhc2UoKT09PSJodHRwcyI7cmV0dXJuKF8ucG9ydD09PShiPzQ0Mzo4MCl8fF8ucG9ydD09PSIiKSYmKF8ucG9ydD12b2lkIDApLF8ucGF0aHx8KF8ucGF0aD0iLyIpLF99fSx2aT17c2NoZW1lOiJodHRwcyIsZG9tYWluSG9zdDpLbi5kb21haW5Ib3N0LHBhcnNlOktuLnBhcnNlLHNlcmlhbGl6ZTpLbi5zZXJpYWxpemV9O2Z1bmN0aW9uIERpKGQpe3JldHVybiB0eXBlb2YgZC5zZWN1cmU9PSJib29sZWFuIj9kLnNlY3VyZTpTdHJpbmcoZC5zY2hlbWUpLnRvTG93ZXJDYXNlKCk9PT0id3NzIn12YXIgRnI9e3NjaGVtZToid3MiLGRvbWFpbkhvc3Q6ITAscGFyc2U6ZnVuY3Rpb24oXyxFKXt2YXIgYj1fO3JldHVybiBiLnNlY3VyZT1EaShiKSxiLnJlc291cmNlTmFtZT0oYi5wYXRofHwiLyIpKyhiLnF1ZXJ5PyI/IitiLnF1ZXJ5OiIiKSxiLnBhdGg9dm9pZCAwLGIucXVlcnk9dm9pZCAwLGJ9LHNlcmlhbGl6ZTpmdW5jdGlvbihfLEUpe2lmKChfLnBvcnQ9PT0oRGkoXyk/NDQzOjgwKXx8Xy5wb3J0PT09IiIpJiYoXy5wb3J0PXZvaWQgMCksdHlwZW9mIF8uc2VjdXJlPT0iYm9vbGVhbiImJihfLnNjaGVtZT1fLnNlY3VyZT8id3NzIjoid3MiLF8uc2VjdXJlPXZvaWQgMCksXy5yZXNvdXJjZU5hbWUpe3ZhciBiPV8ucmVzb3VyY2VOYW1lLnNwbGl0KCI/IiksST1PKGIsMiksJD1JWzBdLHg9SVsxXTtfLnBhdGg9JCYmJCE9PSIvIj8kOnZvaWQgMCxfLnF1ZXJ5PXgsXy5yZXNvdXJjZU5hbWU9dm9pZCAwfXJldHVybiBfLmZyYWdtZW50PXZvaWQgMCxffX0sU2k9e3NjaGVtZToid3NzIixkb21haW5Ib3N0OkZyLmRvbWFpbkhvc3QscGFyc2U6RnIucGFyc2Usc2VyaWFsaXplOkZyLnNlcmlhbGl6ZX0sSmM9e30sUGk9IltBLVphLXowLTlcXC1cXC5cXF9cXH5cXHhBMC1cXHUyMDBEXFx1MjAxMC1cXHUyMDI5XFx1MjAyRi1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSIsdG49IlswLTlBLUZhLWZdIix6Yz10KHQoIiVbRUZlZl0iK3RuKyIlIit0bit0bisiJSIrdG4rdG4pKyJ8Iit0KCIlWzg5QS1GYS1mXSIrdG4rIiUiK3RuK3RuKSsifCIrdCgiJSIrdG4rdG4pKSxxYz0iW0EtWmEtejAtOVxcIVxcJFxcJVxcJ1xcKlxcK1xcLVxcXlxcX1xcYFxce1xcfFxcfVxcfl0iLFFjPSJbXFwhXFwkXFwlXFwnXFwoXFwpXFwqXFwrXFwsXFwtXFwuMC05XFw8XFw+QS1aXFx4NUUtXFx4N0VdIixaYz1vKFFjLCdbXFwiXFxcXF0nKSxlZD0iW1xcIVxcJFxcJ1xcKFxcKVxcKlxcK1xcLFxcO1xcOlxcQF0iLG5kPW5ldyBSZWdFeHAoUGksImciKSxFcj1uZXcgUmVnRXhwKHpjLCJnIikscmQ9bmV3IFJlZ0V4cChvKCJbXl0iLHFjLCJbXFwuXSIsJ1tcXCJdJyxaYyksImciKSx3aT1uZXcgUmVnRXhwKG8oIlteXSIsUGksZWQpLCJnIiksb2Q9d2k7ZnVuY3Rpb24gVXQoZCl7dmFyIF89UShkKTtyZXR1cm4gXy5tYXRjaChuZCk/XzpkfXZhciBHaT17c2NoZW1lOiJtYWlsdG8iLHBhcnNlOmZ1bmN0aW9uKF8sRSl7dmFyIGI9XyxJPWIudG89Yi5wYXRoP2IucGF0aC5zcGxpdCgiLCIpOltdO2lmKGIucGF0aD12b2lkIDAsYi5xdWVyeSl7Zm9yKHZhciAkPSExLHg9e30sdGU9Yi5xdWVyeS5zcGxpdCgiJiIpLHBlPTAsTmU9dGUubGVuZ3RoO3BlPE5lOysrcGUpe3ZhciBaPXRlW3BlXS5zcGxpdCgiPSIpO3N3aXRjaChaWzBdKXtjYXNlInRvIjpmb3IodmFyIGNlPVpbMV0uc3BsaXQoIiwiKSxnZT0wLEs9Y2UubGVuZ3RoO2dlPEs7KytnZSlJLnB1c2goY2VbZ2VdKTticmVhaztjYXNlInN1YmplY3QiOmIuc3ViamVjdD1WZShaWzFdLEUpO2JyZWFrO2Nhc2UiYm9keSI6Yi5ib2R5PVZlKFpbMV0sRSk7YnJlYWs7ZGVmYXVsdDokPSEwLHhbVmUoWlswXSxFKV09VmUoWlsxXSxFKTticmVha319JCYmKGIuaGVhZGVycz14KX1iLnF1ZXJ5PXZvaWQgMDtmb3IodmFyIGZlPTAsYmU9SS5sZW5ndGg7ZmU8YmU7KytmZSl7dmFyIFJlPUlbZmVdLnNwbGl0KCJAIik7aWYoUmVbMF09VmUoUmVbMF0pLEUudW5pY29kZVN1cHBvcnQpUmVbMV09VmUoUmVbMV0sRSkudG9Mb3dlckNhc2UoKTtlbHNlIHRyeXtSZVsxXT12LnRvQVNDSUkoVmUoUmVbMV0sRSkudG9Mb3dlckNhc2UoKSl9Y2F0Y2goRG4pe2IuZXJyb3I9Yi5lcnJvcnx8IkVtYWlsIGFkZHJlc3MncyBkb21haW4gbmFtZSBjYW4gbm90IGJlIGNvbnZlcnRlZCB0byBBU0NJSSB2aWEgcHVueWNvZGU6ICIrRG59SVtmZV09UmUuam9pbigiQCIpfXJldHVybiBifSxzZXJpYWxpemU6ZnVuY3Rpb24oXyxFKXt2YXIgYj1fLEk9bChfLnRvKTtpZihJKXtmb3IodmFyICQ9MCx4PUkubGVuZ3RoOyQ8eDsrKyQpe3ZhciB0ZT1TdHJpbmcoSVskXSkscGU9dGUubGFzdEluZGV4T2YoIkAiKSxOZT10ZS5zbGljZSgwLHBlKS5yZXBsYWNlKEVyLFV0KS5yZXBsYWNlKEVyLGkpLnJlcGxhY2UocmQsQiksWj10ZS5zbGljZShwZSsxKTt0cnl7Wj1FLmlyaT92LnRvVW5pY29kZShaKTp2LnRvQVNDSUkoVmUoWixFKS50b0xvd2VyQ2FzZSgpKX1jYXRjaChmZSl7Yi5lcnJvcj1iLmVycm9yfHwiRW1haWwgYWRkcmVzcydzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvICIrKEUuaXJpPyJVbmljb2RlIjoiQVNDSUkiKSsiIHZpYSBwdW55Y29kZTogIitmZX1JWyRdPU5lKyJAIitafWIucGF0aD1JLmpvaW4oIiwiKX12YXIgY2U9Xy5oZWFkZXJzPV8uaGVhZGVyc3x8e307Xy5zdWJqZWN0JiYoY2Uuc3ViamVjdD1fLnN1YmplY3QpLF8uYm9keSYmKGNlLmJvZHk9Xy5ib2R5KTt2YXIgZ2U9W107Zm9yKHZhciBLIGluIGNlKWNlW0tdIT09SmNbS10mJmdlLnB1c2goSy5yZXBsYWNlKEVyLFV0KS5yZXBsYWNlKEVyLGkpLnJlcGxhY2Uod2ksQikrIj0iK2NlW0tdLnJlcGxhY2UoRXIsVXQpLnJlcGxhY2UoRXIsaSkucmVwbGFjZShvZCxCKSk7cmV0dXJuIGdlLmxlbmd0aCYmKGIucXVlcnk9Z2Uuam9pbigiJiIpKSxifX0sdGQ9L14oW15cOl0rKVw6KC4qKS8sQ2k9e3NjaGVtZToidXJuIixwYXJzZTpmdW5jdGlvbihfLEUpe3ZhciBiPV8ucGF0aCYmXy5wYXRoLm1hdGNoKHRkKSxJPV87aWYoYil7dmFyICQ9RS5zY2hlbWV8fEkuc2NoZW1lfHwidXJuIix4PWJbMV0udG9Mb3dlckNhc2UoKSx0ZT1iWzJdLHBlPSQrIjoiKyhFLm5pZHx8eCksTmU9TFtwZV07SS5uaWQ9eCxJLm5zcz10ZSxJLnBhdGg9dm9pZCAwLE5lJiYoST1OZS5wYXJzZShJLEUpKX1lbHNlIEkuZXJyb3I9SS5lcnJvcnx8IlVSTiBjYW4gbm90IGJlIHBhcnNlZC4iO3JldHVybiBJfSxzZXJpYWxpemU6ZnVuY3Rpb24oXyxFKXt2YXIgYj1FLnNjaGVtZXx8Xy5zY2hlbWV8fCJ1cm4iLEk9Xy5uaWQsJD1iKyI6IisoRS5uaWR8fEkpLHg9TFskXTt4JiYoXz14LnNlcmlhbGl6ZShfLEUpKTt2YXIgdGU9XyxwZT1fLm5zcztyZXR1cm4gdGUucGF0aD0oSXx8RS5uaWQpKyI6IitwZSx0ZX19LHNkPS9eWzAtOUEtRmEtZl17OH0oPzpcLVswLTlBLUZhLWZdezR9KXszfVwtWzAtOUEtRmEtZl17MTJ9JC8seWk9e3NjaGVtZToidXJuOnV1aWQiLHBhcnNlOmZ1bmN0aW9uKF8sRSl7dmFyIGI9XztyZXR1cm4gYi51dWlkPWIubnNzLGIubnNzPXZvaWQgMCwhRS50b2xlcmFudCYmKCFiLnV1aWR8fCFiLnV1aWQubWF0Y2goc2QpKSYmKGIuZXJyb3I9Yi5lcnJvcnx8IlVVSUQgaXMgbm90IHZhbGlkLiIpLGJ9LHNlcmlhbGl6ZTpmdW5jdGlvbihfLEUpe3ZhciBiPV87cmV0dXJuIGIubnNzPShfLnV1aWR8fCIiKS50b0xvd2VyQ2FzZSgpLGJ9fTtMW0tuLnNjaGVtZV09S24sTFt2aS5zY2hlbWVdPXZpLExbRnIuc2NoZW1lXT1GcixMW1NpLnNjaGVtZV09U2ksTFtHaS5zY2hlbWVdPUdpLExbQ2kuc2NoZW1lXT1DaSxMW3lpLnNjaGVtZV09eWksci5TQ0hFTUVTPUwsci5wY3RFbmNDaGFyPUIsci5wY3REZWNDaGFycz1RLHIucGFyc2U9a2Usci5yZW1vdmVEb3RTZWdtZW50cz1vbixyLnNlcmlhbGl6ZT15ZSxyLnJlc29sdmVDb21wb25lbnRzPXByLHIucmVzb2x2ZT1qcixyLm5vcm1hbGl6ZT1WbixyLmVxdWFsPXhyLHIuZXNjYXBlQ29tcG9uZW50PUlvLHIudW5lc2NhcGVDb21wb25lbnQ9VmUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSl9KShudCxudC5leHBvcnRzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZXQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IENzPW50LmV4cG9ydHM7Q3MuY29kZT0ncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91cmkiKS5kZWZhdWx0JyxldC5kZWZhdWx0PUNzLGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNvZGVHZW49ZS5OYW1lPWUubmlsPWUuc3RyaW5naWZ5PWUuc3RyPWUuXz1lLktleXdvcmRDeHQ9dm9pZCAwO3ZhciBuPXplO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJLZXl3b3JkQ3h0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5LZXl3b3JkQ3h0fX0pO3ZhciByPV9lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5ffX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJzdHIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLnN0cn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwic3RyaW5naWZ5Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5zdHJpbmdpZnl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm5pbCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHIubmlsfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJOYW1lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5OYW1lfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJDb2RlR2VuIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5Db2RlR2VufX0pO2NvbnN0IG89dW8sdD1MbixzPUNuLGk9UGUsbD1fZSxjPURlLG09dG8sYT1BZSxoPSRfLE89ZXQsRD0oeSxSKT0+bmV3IFJlZ0V4cCh5LFIpO0QuY29kZT0ibmV3IFJlZ0V4cCI7Y29uc3Qgdz1bInJlbW92ZUFkZGl0aW9uYWwiLCJ1c2VEZWZhdWx0cyIsImNvZXJjZVR5cGVzIl0sQz1uZXcgU2V0KFsidmFsaWRhdGUiLCJzZXJpYWxpemUiLCJwYXJzZSIsIndyYXBwZXIiLCJyb290Iiwic2NoZW1hIiwia2V5d29yZCIsInBhdHRlcm4iLCJmb3JtYXRzIiwidmFsaWRhdGUkZGF0YSIsImZ1bmMiLCJvYmoiLCJFcnJvciJdKSxUPXtlcnJvckRhdGFQYXRoOiIiLGZvcm1hdDoiYHZhbGlkYXRlRm9ybWF0czogZmFsc2VgIGNhbiBiZSB1c2VkIGluc3RlYWQuIixudWxsYWJsZTonIm51bGxhYmxlIiBrZXl3b3JkIGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0LicsanNvblBvaW50ZXJzOiJEZXByZWNhdGVkIGpzUHJvcGVydHlTeW50YXggY2FuIGJlIHVzZWQgaW5zdGVhZC4iLGV4dGVuZFJlZnM6IkRlcHJlY2F0ZWQgaWdub3JlS2V5d29yZHNXaXRoUmVmIGNhbiBiZSB1c2VkIGluc3RlYWQuIixtaXNzaW5nUmVmczoiUGFzcyBlbXB0eSBzY2hlbWEgd2l0aCAkaWQgdGhhdCBzaG91bGQgYmUgaWdub3JlZCB0byBhanYuYWRkU2NoZW1hLiIscHJvY2Vzc0NvZGU6IlVzZSBvcHRpb24gYGNvZGU6IHtwcm9jZXNzOiAoY29kZSwgc2NoZW1hRW52OiBvYmplY3QpID0+IHN0cmluZ31gIixzb3VyY2VDb2RlOiJVc2Ugb3B0aW9uIGBjb2RlOiB7c291cmNlOiB0cnVlfWAiLHN0cmljdERlZmF1bHRzOiJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLHN0cmljdEtleXdvcmRzOiJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLHVuaXF1ZUl0ZW1zOicidW5pcXVlSXRlbXMiIGtleXdvcmQgaXMgYWx3YXlzIHZhbGlkYXRlZC4nLHVua25vd25Gb3JtYXRzOiJEaXNhYmxlIHN0cmljdCBtb2RlIG9yIHBhc3MgYHRydWVgIHRvIGBhanYuYWRkRm9ybWF0YCAob3IgYGZvcm1hdHNgIG9wdGlvbikuIixjYWNoZToiTWFwIGlzIHVzZWQgYXMgY2FjaGUsIHNjaGVtYSBvYmplY3QgYXMga2V5LiIsc2VyaWFsaXplOiJNYXAgaXMgdXNlZCBhcyBjYWNoZSwgc2NoZW1hIG9iamVjdCBhcyBrZXkuIixhanZFcnJvcnM6Ikl0IGlzIGRlZmF1bHQgbm93LiJ9LGY9e2lnbm9yZUtleXdvcmRzV2l0aFJlZjoiIixqc1Byb3BlcnR5U3ludGF4OiIiLHVuaWNvZGU6JyJtaW5MZW5ndGgiLyJtYXhMZW5ndGgiIGFjY291bnQgZm9yIHVuaWNvZGUgY2hhcmFjdGVycyBieSBkZWZhdWx0Lid9LEE9MjAwO2Z1bmN0aW9uIFUoeSl7dmFyIFIsUCxnLHUscCx2LEwsQixRLHJlLFRlLHJuLGNyLGtyLE1yLGtlLFhyLGRyLGhyLG1yLCRyLG9uLHllLHByLGpyO2NvbnN0IFZuPXkuc3RyaWN0LHhyPShSPXkuY29kZSk9PT1udWxsfHxSPT09dm9pZCAwP3ZvaWQgMDpSLm9wdGltaXplLElvPXhyPT09ITB8fHhyPT09dm9pZCAwPzE6eHJ8fDAsVmU9KGc9KFA9eS5jb2RlKT09PW51bGx8fFA9PT12b2lkIDA/dm9pZCAwOlAucmVnRXhwKSE9PW51bGwmJmchPT12b2lkIDA/ZzpELEtuPSh1PXkudXJpUmVzb2x2ZXIpIT09bnVsbCYmdSE9PXZvaWQgMD91Ok8uZGVmYXVsdDtyZXR1cm57c3RyaWN0U2NoZW1hOih2PShwPXkuc3RyaWN0U2NoZW1hKSE9PW51bGwmJnAhPT12b2lkIDA/cDpWbikhPT1udWxsJiZ2IT09dm9pZCAwP3Y6ITAsc3RyaWN0TnVtYmVyczooQj0oTD15LnN0cmljdE51bWJlcnMpIT09bnVsbCYmTCE9PXZvaWQgMD9MOlZuKSE9PW51bGwmJkIhPT12b2lkIDA/QjohMCxzdHJpY3RUeXBlczoocmU9KFE9eS5zdHJpY3RUeXBlcykhPT1udWxsJiZRIT09dm9pZCAwP1E6Vm4pIT09bnVsbCYmcmUhPT12b2lkIDA/cmU6ImxvZyIsc3RyaWN0VHVwbGVzOihybj0oVGU9eS5zdHJpY3RUdXBsZXMpIT09bnVsbCYmVGUhPT12b2lkIDA/VGU6Vm4pIT09bnVsbCYmcm4hPT12b2lkIDA/cm46ImxvZyIsc3RyaWN0UmVxdWlyZWQ6KGtyPShjcj15LnN0cmljdFJlcXVpcmVkKSE9PW51bGwmJmNyIT09dm9pZCAwP2NyOlZuKSE9PW51bGwmJmtyIT09dm9pZCAwP2tyOiExLGNvZGU6eS5jb2RlP2xlKFkoe30seS5jb2RlKSx7b3B0aW1pemU6SW8scmVnRXhwOlZlfSk6e29wdGltaXplOklvLHJlZ0V4cDpWZX0sbG9vcFJlcXVpcmVkOihNcj15Lmxvb3BSZXF1aXJlZCkhPT1udWxsJiZNciE9PXZvaWQgMD9NcjpBLGxvb3BFbnVtOihrZT15Lmxvb3BFbnVtKSE9PW51bGwmJmtlIT09dm9pZCAwP2tlOkEsbWV0YTooWHI9eS5tZXRhKSE9PW51bGwmJlhyIT09dm9pZCAwP1hyOiEwLG1lc3NhZ2VzOihkcj15Lm1lc3NhZ2VzKSE9PW51bGwmJmRyIT09dm9pZCAwP2RyOiEwLGlubGluZVJlZnM6KGhyPXkuaW5saW5lUmVmcykhPT1udWxsJiZociE9PXZvaWQgMD9ocjohMCxzY2hlbWFJZDoobXI9eS5zY2hlbWFJZCkhPT1udWxsJiZtciE9PXZvaWQgMD9tcjoiJGlkIixhZGRVc2VkU2NoZW1hOigkcj15LmFkZFVzZWRTY2hlbWEpIT09bnVsbCYmJHIhPT12b2lkIDA/JHI6ITAsdmFsaWRhdGVTY2hlbWE6KG9uPXkudmFsaWRhdGVTY2hlbWEpIT09bnVsbCYmb24hPT12b2lkIDA/b246ITAsdmFsaWRhdGVGb3JtYXRzOih5ZT15LnZhbGlkYXRlRm9ybWF0cykhPT1udWxsJiZ5ZSE9PXZvaWQgMD95ZTohMCx1bmljb2RlUmVnRXhwOihwcj15LnVuaWNvZGVSZWdFeHApIT09bnVsbCYmcHIhPT12b2lkIDA/cHI6ITAsaW50MzJyYW5nZTooanI9eS5pbnQzMnJhbmdlKSE9PW51bGwmJmpyIT09dm9pZCAwP2pyOiEwLHVyaVJlc29sdmVyOktufX1jbGFzcyBTe2NvbnN0cnVjdG9yKFI9e30pe3RoaXMuc2NoZW1hcz17fSx0aGlzLnJlZnM9e30sdGhpcy5mb3JtYXRzPXt9LHRoaXMuX2NvbXBpbGF0aW9ucz1uZXcgU2V0LHRoaXMuX2xvYWRpbmc9e30sdGhpcy5fY2FjaGU9bmV3IE1hcCxSPXRoaXMub3B0cz1ZKFkoe30sUiksVShSKSk7Y29uc3R7ZXM1OlAsbGluZXM6Z309dGhpcy5vcHRzLmNvZGU7dGhpcy5zY29wZT1uZXcgbC5WYWx1ZVNjb3BlKHtzY29wZTp7fSxwcmVmaXhlczpDLGVzNTpQLGxpbmVzOmd9KSx0aGlzLmxvZ2dlcj16KFIubG9nZ2VyKTtjb25zdCB1PVIudmFsaWRhdGVGb3JtYXRzO1IudmFsaWRhdGVGb3JtYXRzPSExLHRoaXMuUlVMRVM9KDAscy5nZXRSdWxlcykoKSxqLmNhbGwodGhpcyxULFIsIk5PVCBTVVBQT1JURUQiKSxqLmNhbGwodGhpcyxmLFIsIkRFUFJFQ0FURUQiLCJ3YXJuIiksdGhpcy5fbWV0YU9wdHM9Vy5jYWxsKHRoaXMpLFIuZm9ybWF0cyYmRy5jYWxsKHRoaXMpLHRoaXMuX2FkZFZvY2FidWxhcmllcygpLHRoaXMuX2FkZERlZmF1bHRNZXRhU2NoZW1hKCksUi5rZXl3b3JkcyYmRi5jYWxsKHRoaXMsUi5rZXl3b3JkcyksdHlwZW9mIFIubWV0YT09Im9iamVjdCImJnRoaXMuYWRkTWV0YVNjaGVtYShSLm1ldGEpLEguY2FsbCh0aGlzKSxSLnZhbGlkYXRlRm9ybWF0cz11fV9hZGRWb2NhYnVsYXJpZXMoKXt0aGlzLmFkZEtleXdvcmQoIiRhc3luYyIpfV9hZGREZWZhdWx0TWV0YVNjaGVtYSgpe2NvbnN0eyRkYXRhOlIsbWV0YTpQLHNjaGVtYUlkOmd9PXRoaXMub3B0cztsZXQgdT1oO2c9PT0iaWQiJiYodT1ZKHt9LGgpLHUuaWQ9dS4kaWQsZGVsZXRlIHUuJGlkKSxQJiZSJiZ0aGlzLmFkZE1ldGFTY2hlbWEodSx1W2ddLCExKX1kZWZhdWx0TWV0YSgpe2NvbnN0e21ldGE6UixzY2hlbWFJZDpQfT10aGlzLm9wdHM7cmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YT10eXBlb2YgUj09Im9iamVjdCI/UltQXXx8Ujp2b2lkIDB9dmFsaWRhdGUoUixQKXtsZXQgZztpZih0eXBlb2YgUj09InN0cmluZyIpe2lmKGc9dGhpcy5nZXRTY2hlbWEoUiksIWcpdGhyb3cgbmV3IEVycm9yKGBubyBzY2hlbWEgd2l0aCBrZXkgb3IgcmVmICIke1J9ImApfWVsc2UgZz10aGlzLmNvbXBpbGUoUik7Y29uc3QgdT1nKFApO3JldHVybiIkYXN5bmMiaW4gZ3x8KHRoaXMuZXJyb3JzPWcuZXJyb3JzKSx1fWNvbXBpbGUoUixQKXtjb25zdCBnPXRoaXMuX2FkZFNjaGVtYShSLFApO3JldHVybiBnLnZhbGlkYXRlfHx0aGlzLl9jb21waWxlU2NoZW1hRW52KGcpfWNvbXBpbGVBc3luYyhSLFApe2lmKHR5cGVvZiB0aGlzLm9wdHMubG9hZFNjaGVtYSE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpO2NvbnN0e2xvYWRTY2hlbWE6Z309dGhpcy5vcHRzO3JldHVybiB1LmNhbGwodGhpcyxSLFApO2FzeW5jIGZ1bmN0aW9uIHUocmUsVGUpe2F3YWl0IHAuY2FsbCh0aGlzLHJlLiRzY2hlbWEpO2NvbnN0IHJuPXRoaXMuX2FkZFNjaGVtYShyZSxUZSk7cmV0dXJuIHJuLnZhbGlkYXRlfHx2LmNhbGwodGhpcyxybil9YXN5bmMgZnVuY3Rpb24gcChyZSl7cmUmJiF0aGlzLmdldFNjaGVtYShyZSkmJmF3YWl0IHUuY2FsbCh0aGlzLHskcmVmOnJlfSwhMCl9YXN5bmMgZnVuY3Rpb24gdihyZSl7dHJ5e3JldHVybiB0aGlzLl9jb21waWxlU2NoZW1hRW52KHJlKX1jYXRjaChUZSl7aWYoIShUZSBpbnN0YW5jZW9mIHQuZGVmYXVsdCkpdGhyb3cgVGU7cmV0dXJuIEwuY2FsbCh0aGlzLFRlKSxhd2FpdCBCLmNhbGwodGhpcyxUZS5taXNzaW5nU2NoZW1hKSx2LmNhbGwodGhpcyxyZSl9fWZ1bmN0aW9uIEwoe21pc3NpbmdTY2hlbWE6cmUsbWlzc2luZ1JlZjpUZX0pe2lmKHRoaXMucmVmc1tyZV0pdGhyb3cgbmV3IEVycm9yKGBBbnlTY2hlbWEgJHtyZX0gaXMgbG9hZGVkIGJ1dCAke1RlfSBjYW5ub3QgYmUgcmVzb2x2ZWRgKX1hc3luYyBmdW5jdGlvbiBCKHJlKXtjb25zdCBUZT1hd2FpdCBRLmNhbGwodGhpcyxyZSk7dGhpcy5yZWZzW3JlXXx8YXdhaXQgcC5jYWxsKHRoaXMsVGUuJHNjaGVtYSksdGhpcy5yZWZzW3JlXXx8dGhpcy5hZGRTY2hlbWEoVGUscmUsUCl9YXN5bmMgZnVuY3Rpb24gUShyZSl7Y29uc3QgVGU9dGhpcy5fbG9hZGluZ1tyZV07aWYoVGUpcmV0dXJuIFRlO3RyeXtyZXR1cm4gYXdhaXQodGhpcy5fbG9hZGluZ1tyZV09ZyhyZSkpfWZpbmFsbHl7ZGVsZXRlIHRoaXMuX2xvYWRpbmdbcmVdfX19YWRkU2NoZW1hKFIsUCxnLHU9dGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKXtpZihBcnJheS5pc0FycmF5KFIpKXtmb3IoY29uc3QgdiBvZiBSKXRoaXMuYWRkU2NoZW1hKHYsdm9pZCAwLGcsdSk7cmV0dXJuIHRoaXN9bGV0IHA7aWYodHlwZW9mIFI9PSJvYmplY3QiKXtjb25zdHtzY2hlbWFJZDp2fT10aGlzLm9wdHM7aWYocD1SW3ZdLHAhPT12b2lkIDAmJnR5cGVvZiBwIT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSAke3Z9IG11c3QgYmUgc3RyaW5nYCl9cmV0dXJuIFA9KDAsYy5ub3JtYWxpemVJZCkoUHx8cCksdGhpcy5fY2hlY2tVbmlxdWUoUCksdGhpcy5zY2hlbWFzW1BdPXRoaXMuX2FkZFNjaGVtYShSLGcsUCx1LCEwKSx0aGlzfWFkZE1ldGFTY2hlbWEoUixQLGc9dGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKXtyZXR1cm4gdGhpcy5hZGRTY2hlbWEoUixQLCEwLGcpLHRoaXN9dmFsaWRhdGVTY2hlbWEoUixQKXtpZih0eXBlb2YgUj09ImJvb2xlYW4iKXJldHVybiEwO2xldCBnO2lmKGc9Ui4kc2NoZW1hLGchPT12b2lkIDAmJnR5cGVvZiBnIT0ic3RyaW5nIil0aHJvdyBuZXcgRXJyb3IoIiRzY2hlbWEgbXVzdCBiZSBhIHN0cmluZyIpO2lmKGc9Z3x8dGhpcy5vcHRzLmRlZmF1bHRNZXRhfHx0aGlzLmRlZmF1bHRNZXRhKCksIWcpcmV0dXJuIHRoaXMubG9nZ2VyLndhcm4oIm1ldGEtc2NoZW1hIG5vdCBhdmFpbGFibGUiKSx0aGlzLmVycm9ycz1udWxsLCEwO2NvbnN0IHU9dGhpcy52YWxpZGF0ZShnLFIpO2lmKCF1JiZQKXtjb25zdCBwPSJzY2hlbWEgaXMgaW52YWxpZDogIit0aGlzLmVycm9yc1RleHQoKTtpZih0aGlzLm9wdHMudmFsaWRhdGVTY2hlbWE9PT0ibG9nIil0aGlzLmxvZ2dlci5lcnJvcihwKTtlbHNlIHRocm93IG5ldyBFcnJvcihwKX1yZXR1cm4gdX1nZXRTY2hlbWEoUil7bGV0IFA7Zm9yKDt0eXBlb2YoUD1OLmNhbGwodGhpcyxSKSk9PSJzdHJpbmciOylSPVA7aWYoUD09PXZvaWQgMCl7Y29uc3R7c2NoZW1hSWQ6Z309dGhpcy5vcHRzLHU9bmV3IGkuU2NoZW1hRW52KHtzY2hlbWE6e30sc2NoZW1hSWQ6Z30pO2lmKFA9aS5yZXNvbHZlU2NoZW1hLmNhbGwodGhpcyx1LFIpLCFQKXJldHVybjt0aGlzLnJlZnNbUl09UH1yZXR1cm4gUC52YWxpZGF0ZXx8dGhpcy5fY29tcGlsZVNjaGVtYUVudihQKX1yZW1vdmVTY2hlbWEoUil7aWYoUiBpbnN0YW5jZW9mIFJlZ0V4cClyZXR1cm4gdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMsUiksdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnJlZnMsUiksdGhpcztzd2l0Y2godHlwZW9mIFIpe2Nhc2UidW5kZWZpbmVkIjpyZXR1cm4gdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMpLHRoaXMuX3JlbW92ZUFsbFNjaGVtYXModGhpcy5yZWZzKSx0aGlzLl9jYWNoZS5jbGVhcigpLHRoaXM7Y2FzZSJzdHJpbmciOntjb25zdCBQPU4uY2FsbCh0aGlzLFIpO3JldHVybiB0eXBlb2YgUD09Im9iamVjdCImJnRoaXMuX2NhY2hlLmRlbGV0ZShQLnNjaGVtYSksZGVsZXRlIHRoaXMuc2NoZW1hc1tSXSxkZWxldGUgdGhpcy5yZWZzW1JdLHRoaXN9Y2FzZSJvYmplY3QiOntjb25zdCBQPVI7dGhpcy5fY2FjaGUuZGVsZXRlKFApO2xldCBnPVJbdGhpcy5vcHRzLnNjaGVtYUlkXTtyZXR1cm4gZyYmKGc9KDAsYy5ub3JtYWxpemVJZCkoZyksZGVsZXRlIHRoaXMuc2NoZW1hc1tnXSxkZWxldGUgdGhpcy5yZWZzW2ddKSx0aGlzfWRlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJhanYucmVtb3ZlU2NoZW1hOiBpbnZhbGlkIHBhcmFtZXRlciIpfX1hZGRWb2NhYnVsYXJ5KFIpe2Zvcihjb25zdCBQIG9mIFIpdGhpcy5hZGRLZXl3b3JkKFApO3JldHVybiB0aGlzfWFkZEtleXdvcmQoUixQKXtsZXQgZztpZih0eXBlb2YgUj09InN0cmluZyIpZz1SLHR5cGVvZiBQPT0ib2JqZWN0IiYmKHRoaXMubG9nZ2VyLndhcm4oInRoZXNlIHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQsIHNlZSBkb2NzIGZvciBhZGRLZXl3b3JkIiksUC5rZXl3b3JkPWcpO2Vsc2UgaWYodHlwZW9mIFI9PSJvYmplY3QiJiZQPT09dm9pZCAwKXtpZihQPVIsZz1QLmtleXdvcmQsQXJyYXkuaXNBcnJheShnKSYmIWcubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYWRkS2V5d29yZHM6IGtleXdvcmQgbXVzdCBiZSBzdHJpbmcgb3Igbm9uLWVtcHR5IGFycmF5Iil9ZWxzZSB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYWRkS2V5d29yZHMgcGFyYW1ldGVycyIpO2lmKHEuY2FsbCh0aGlzLGcsUCksIVApcmV0dXJuKDAsYS5lYWNoSXRlbSkoZyxwPT5FZS5jYWxsKHRoaXMscCkpLHRoaXM7SGUuY2FsbCh0aGlzLFApO2NvbnN0IHU9bGUoWSh7fSxQKSx7dHlwZTooMCxtLmdldEpTT05UeXBlcykoUC50eXBlKSxzY2hlbWFUeXBlOigwLG0uZ2V0SlNPTlR5cGVzKShQLnNjaGVtYVR5cGUpfSk7cmV0dXJuKDAsYS5lYWNoSXRlbSkoZyx1LnR5cGUubGVuZ3RoPT09MD9wPT5FZS5jYWxsKHRoaXMscCx1KTpwPT51LnR5cGUuZm9yRWFjaCh2PT5FZS5jYWxsKHRoaXMscCx1LHYpKSksdGhpc31nZXRLZXl3b3JkKFIpe2NvbnN0IFA9dGhpcy5SVUxFUy5hbGxbUl07cmV0dXJuIHR5cGVvZiBQPT0ib2JqZWN0Ij9QLmRlZmluaXRpb246ISFQfXJlbW92ZUtleXdvcmQoUil7Y29uc3R7UlVMRVM6UH09dGhpcztkZWxldGUgUC5rZXl3b3Jkc1tSXSxkZWxldGUgUC5hbGxbUl07Zm9yKGNvbnN0IGcgb2YgUC5ydWxlcyl7Y29uc3QgdT1nLnJ1bGVzLmZpbmRJbmRleChwPT5wLmtleXdvcmQ9PT1SKTt1Pj0wJiZnLnJ1bGVzLnNwbGljZSh1LDEpfXJldHVybiB0aGlzfWFkZEZvcm1hdChSLFApe3JldHVybiB0eXBlb2YgUD09InN0cmluZyImJihQPW5ldyBSZWdFeHAoUCkpLHRoaXMuZm9ybWF0c1tSXT1QLHRoaXN9ZXJyb3JzVGV4dChSPXRoaXMuZXJyb3JzLHtzZXBhcmF0b3I6UD0iLCAiLGRhdGFWYXI6Zz0iZGF0YSJ9PXt9KXtyZXR1cm4hUnx8Ui5sZW5ndGg9PT0wPyJObyBlcnJvcnMiOlIubWFwKHU9PmAke2d9JHt1Lmluc3RhbmNlUGF0aH0gJHt1Lm1lc3NhZ2V9YCkucmVkdWNlKCh1LHApPT51K1ArcCl9JGRhdGFNZXRhU2NoZW1hKFIsUCl7Y29uc3QgZz10aGlzLlJVTEVTLmFsbDtSPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoUikpO2Zvcihjb25zdCB1IG9mIFApe2NvbnN0IHA9dS5zcGxpdCgiLyIpLnNsaWNlKDEpO2xldCB2PVI7Zm9yKGNvbnN0IEwgb2YgcCl2PXZbTF07Zm9yKGNvbnN0IEwgaW4gZyl7Y29uc3QgQj1nW0xdO2lmKHR5cGVvZiBCIT0ib2JqZWN0Iiljb250aW51ZTtjb25zdHskZGF0YTpRfT1CLmRlZmluaXRpb24scmU9dltMXTtRJiZyZSYmKHZbTF09bHIocmUpKX19cmV0dXJuIFJ9X3JlbW92ZUFsbFNjaGVtYXMoUixQKXtmb3IoY29uc3QgZyBpbiBSKXtjb25zdCB1PVJbZ107KCFQfHxQLnRlc3QoZykpJiYodHlwZW9mIHU9PSJzdHJpbmciP2RlbGV0ZSBSW2ddOnUmJiF1Lm1ldGEmJih0aGlzLl9jYWNoZS5kZWxldGUodS5zY2hlbWEpLGRlbGV0ZSBSW2ddKSl9fV9hZGRTY2hlbWEoUixQLGcsdT10aGlzLm9wdHMudmFsaWRhdGVTY2hlbWEscD10aGlzLm9wdHMuYWRkVXNlZFNjaGVtYSl7bGV0IHY7Y29uc3R7c2NoZW1hSWQ6TH09dGhpcy5vcHRzO2lmKHR5cGVvZiBSPT0ib2JqZWN0Iil2PVJbTF07ZWxzZXtpZih0aGlzLm9wdHMuanRkKXRocm93IG5ldyBFcnJvcigic2NoZW1hIG11c3QgYmUgb2JqZWN0Iik7aWYodHlwZW9mIFIhPSJib29sZWFuIil0aHJvdyBuZXcgRXJyb3IoInNjaGVtYSBtdXN0IGJlIG9iamVjdCBvciBib29sZWFuIil9bGV0IEI9dGhpcy5fY2FjaGUuZ2V0KFIpO2lmKEIhPT12b2lkIDApcmV0dXJuIEI7Zz0oMCxjLm5vcm1hbGl6ZUlkKSh2fHxnKTtjb25zdCBRPWMuZ2V0U2NoZW1hUmVmcy5jYWxsKHRoaXMsUixnKTtyZXR1cm4gQj1uZXcgaS5TY2hlbWFFbnYoe3NjaGVtYTpSLHNjaGVtYUlkOkwsbWV0YTpQLGJhc2VJZDpnLGxvY2FsUmVmczpRfSksdGhpcy5fY2FjaGUuc2V0KEIuc2NoZW1hLEIpLHAmJiFnLnN0YXJ0c1dpdGgoIiMiKSYmKGcmJnRoaXMuX2NoZWNrVW5pcXVlKGcpLHRoaXMucmVmc1tnXT1CKSx1JiZ0aGlzLnZhbGlkYXRlU2NoZW1hKFIsITApLEJ9X2NoZWNrVW5pcXVlKFIpe2lmKHRoaXMuc2NoZW1hc1tSXXx8dGhpcy5yZWZzW1JdKXRocm93IG5ldyBFcnJvcihgc2NoZW1hIHdpdGgga2V5IG9yIGlkICIke1J9IiBhbHJlYWR5IGV4aXN0c2ApfV9jb21waWxlU2NoZW1hRW52KFIpe2lmKFIubWV0YT90aGlzLl9jb21waWxlTWV0YVNjaGVtYShSKTppLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLFIpLCFSLnZhbGlkYXRlKXRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7cmV0dXJuIFIudmFsaWRhdGV9X2NvbXBpbGVNZXRhU2NoZW1hKFIpe2NvbnN0IFA9dGhpcy5vcHRzO3RoaXMub3B0cz10aGlzLl9tZXRhT3B0czt0cnl7aS5jb21waWxlU2NoZW1hLmNhbGwodGhpcyxSKX1maW5hbGx5e3RoaXMub3B0cz1QfX19ZS5kZWZhdWx0PVMsUy5WYWxpZGF0aW9uRXJyb3I9by5kZWZhdWx0LFMuTWlzc2luZ1JlZkVycm9yPXQuZGVmYXVsdDtmdW5jdGlvbiBqKHksUixQLGc9ImVycm9yIil7Zm9yKGNvbnN0IHUgaW4geSl7Y29uc3QgcD11O3AgaW4gUiYmdGhpcy5sb2dnZXJbZ10oYCR7UH06IG9wdGlvbiAke3V9LiAke3lbcF19YCl9fWZ1bmN0aW9uIE4oeSl7cmV0dXJuIHk9KDAsYy5ub3JtYWxpemVJZCkoeSksdGhpcy5zY2hlbWFzW3ldfHx0aGlzLnJlZnNbeV19ZnVuY3Rpb24gSCgpe2NvbnN0IHk9dGhpcy5vcHRzLnNjaGVtYXM7aWYoISF5KWlmKEFycmF5LmlzQXJyYXkoeSkpdGhpcy5hZGRTY2hlbWEoeSk7ZWxzZSBmb3IoY29uc3QgUiBpbiB5KXRoaXMuYWRkU2NoZW1hKHlbUl0sUil9ZnVuY3Rpb24gRygpe2Zvcihjb25zdCB5IGluIHRoaXMub3B0cy5mb3JtYXRzKXtjb25zdCBSPXRoaXMub3B0cy5mb3JtYXRzW3ldO1ImJnRoaXMuYWRkRm9ybWF0KHksUil9fWZ1bmN0aW9uIEYoeSl7aWYoQXJyYXkuaXNBcnJheSh5KSl7dGhpcy5hZGRWb2NhYnVsYXJ5KHkpO3JldHVybn10aGlzLmxvZ2dlci53YXJuKCJrZXl3b3JkcyBvcHRpb24gYXMgbWFwIGlzIGRlcHJlY2F0ZWQsIHBhc3MgYXJyYXkiKTtmb3IoY29uc3QgUiBpbiB5KXtjb25zdCBQPXlbUl07UC5rZXl3b3JkfHwoUC5rZXl3b3JkPVIpLHRoaXMuYWRkS2V5d29yZChQKX19ZnVuY3Rpb24gVygpe2NvbnN0IHk9WSh7fSx0aGlzLm9wdHMpO2Zvcihjb25zdCBSIG9mIHcpZGVsZXRlIHlbUl07cmV0dXJuIHl9Y29uc3QgbWU9e2xvZygpe30sd2Fybigpe30sZXJyb3IoKXt9fTtmdW5jdGlvbiB6KHkpe2lmKHk9PT0hMSlyZXR1cm4gbWU7aWYoeT09PXZvaWQgMClyZXR1cm4gY29uc29sZTtpZih5LmxvZyYmeS53YXJuJiZ5LmVycm9yKXJldHVybiB5O3Rocm93IG5ldyBFcnJvcigibG9nZ2VyIG11c3QgaW1wbGVtZW50IGxvZywgd2FybiBhbmQgZXJyb3IgbWV0aG9kcyIpfWNvbnN0IGllPS9eW2Etel8kXVthLXowLTlfJDotXSokL2k7ZnVuY3Rpb24gcSh5LFIpe2NvbnN0e1JVTEVTOlB9PXRoaXM7aWYoKDAsYS5lYWNoSXRlbSkoeSxnPT57aWYoUC5rZXl3b3Jkc1tnXSl0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtnfSBpcyBhbHJlYWR5IGRlZmluZWRgKTtpZighaWUudGVzdChnKSl0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtnfSBoYXMgaW52YWxpZCBuYW1lYCl9KSwhIVImJlIuJGRhdGEmJiEoImNvZGUiaW4gUnx8InZhbGlkYXRlImluIFIpKXRocm93IG5ldyBFcnJvcignJGRhdGEga2V5d29yZCBtdXN0IGhhdmUgImNvZGUiIG9yICJ2YWxpZGF0ZSIgZnVuY3Rpb24nKX1mdW5jdGlvbiBFZSh5LFIsUCl7dmFyIGc7Y29uc3QgdT1SPT1udWxsP3ZvaWQgMDpSLnBvc3Q7aWYoUCYmdSl0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgd2l0aCAicG9zdCIgZmxhZyBjYW5ub3QgaGF2ZSAidHlwZSInKTtjb25zdHtSVUxFUzpwfT10aGlzO2xldCB2PXU/cC5wb3N0OnAucnVsZXMuZmluZCgoe3R5cGU6Qn0pPT5CPT09UCk7aWYodnx8KHY9e3R5cGU6UCxydWxlczpbXX0scC5ydWxlcy5wdXNoKHYpKSxwLmtleXdvcmRzW3ldPSEwLCFSKXJldHVybjtjb25zdCBMPXtrZXl3b3JkOnksZGVmaW5pdGlvbjpsZShZKHt9LFIpLHt0eXBlOigwLG0uZ2V0SlNPTlR5cGVzKShSLnR5cGUpLHNjaGVtYVR5cGU6KDAsbS5nZXRKU09OVHlwZXMpKFIuc2NoZW1hVHlwZSl9KX07Ui5iZWZvcmU/T2UuY2FsbCh0aGlzLHYsTCxSLmJlZm9yZSk6di5ydWxlcy5wdXNoKEwpLHAuYWxsW3ldPUwsKGc9Ui5pbXBsZW1lbnRzKT09PW51bGx8fGc9PT12b2lkIDB8fGcuZm9yRWFjaChCPT50aGlzLmFkZEtleXdvcmQoQikpfWZ1bmN0aW9uIE9lKHksUixQKXtjb25zdCBnPXkucnVsZXMuZmluZEluZGV4KHU9PnUua2V5d29yZD09PVApO2c+PTA/eS5ydWxlcy5zcGxpY2UoZywwLFIpOih5LnJ1bGVzLnB1c2goUiksdGhpcy5sb2dnZXIud2FybihgcnVsZSAke1B9IGlzIG5vdCBkZWZpbmVkYCkpfWZ1bmN0aW9uIEhlKHkpe2xldHttZXRhU2NoZW1hOlJ9PXk7UiE9PXZvaWQgMCYmKHkuJGRhdGEmJnRoaXMub3B0cy4kZGF0YSYmKFI9bHIoUikpLHkudmFsaWRhdGVTY2hlbWE9dGhpcy5jb21waWxlKFIsITApKX1jb25zdCBGZT17JHJlZjoiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jIn07ZnVuY3Rpb24gbHIoeSl7cmV0dXJue2FueU9mOlt5LEZlXX19fShvcyk7dmFyIHJ0PXt9LGtuPXt9LE1uPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShNbiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTW4uY2FsbFJlZj1Nbi5nZXRWYWxpZGF0ZT12b2lkIDA7Y29uc3Qgal89TG4seXM9b2UsQ2U9X2Usc3I9TWUsTHM9UGUsY289QWUseF89e2tleXdvcmQ6IiRyZWYiLHNjaGVtYVR5cGU6InN0cmluZyIsY29kZShlKXtjb25zdHtnZW46bixzY2hlbWE6cixpdDpvfT1lLHtiYXNlSWQ6dCxzY2hlbWFFbnY6cyx2YWxpZGF0ZU5hbWU6aSxvcHRzOmwsc2VsZjpjfT1vLHtyb290Om19PXM7aWYoKHI9PT0iIyJ8fHI9PT0iIy8iKSYmdD09PW0uYmFzZUlkKXJldHVybiBoKCk7Y29uc3QgYT1Mcy5yZXNvbHZlUmVmLmNhbGwoYyxtLHQscik7aWYoYT09PXZvaWQgMCl0aHJvdyBuZXcgal8uZGVmYXVsdChvLm9wdHMudXJpUmVzb2x2ZXIsdCxyKTtpZihhIGluc3RhbmNlb2YgTHMuU2NoZW1hRW52KXJldHVybiBPKGEpO3JldHVybiBEKGEpO2Z1bmN0aW9uIGgoKXtpZihzPT09bSlyZXR1cm4gaG8oZSxpLHMscy4kYXN5bmMpO2NvbnN0IHc9bi5zY29wZVZhbHVlKCJyb290Iix7cmVmOm19KTtyZXR1cm4gaG8oZSwoMCxDZS5fKWAke3d9LnZhbGlkYXRlYCxtLG0uJGFzeW5jKX1mdW5jdGlvbiBPKHcpe2NvbnN0IEM9QnMoZSx3KTtobyhlLEMsdyx3LiRhc3luYyl9ZnVuY3Rpb24gRCh3KXtjb25zdCBDPW4uc2NvcGVWYWx1ZSgic2NoZW1hIixsLmNvZGUuc291cmNlPT09ITA/e3JlZjp3LGNvZGU6KDAsQ2Uuc3RyaW5naWZ5KSh3KX06e3JlZjp3fSksVD1uLm5hbWUoInZhbGlkIiksZj1lLnN1YnNjaGVtYSh7c2NoZW1hOncsZGF0YVR5cGVzOltdLHNjaGVtYVBhdGg6Q2UubmlsLHRvcFNjaGVtYVJlZjpDLGVyclNjaGVtYVBhdGg6cn0sVCk7ZS5tZXJnZUV2YWx1YXRlZChmKSxlLm9rKFQpfX19O2Z1bmN0aW9uIEJzKGUsbil7Y29uc3R7Z2VuOnJ9PWU7cmV0dXJuIG4udmFsaWRhdGU/ci5zY29wZVZhbHVlKCJ2YWxpZGF0ZSIse3JlZjpuLnZhbGlkYXRlfSk6KDAsQ2UuXylgJHtyLnNjb3BlVmFsdWUoIndyYXBwZXIiLHtyZWY6bn0pfS52YWxpZGF0ZWB9TW4uZ2V0VmFsaWRhdGU9QnM7ZnVuY3Rpb24gaG8oZSxuLHIsbyl7Y29uc3R7Z2VuOnQsaXQ6c309ZSx7YWxsRXJyb3JzOmksc2NoZW1hRW52Omwsb3B0czpjfT1zLG09Yy5wYXNzQ29udGV4dD9zci5kZWZhdWx0LnRoaXM6Q2UubmlsO28/YSgpOmgoKTtmdW5jdGlvbiBhKCl7aWYoIWwuJGFzeW5jKXRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIHJlZmVyZW5jZWQgYnkgc3luYyBzY2hlbWEiKTtjb25zdCB3PXQubGV0KCJ2YWxpZCIpO3QudHJ5KCgpPT57dC5jb2RlKCgwLENlLl8pYGF3YWl0ICR7KDAseXMuY2FsbFZhbGlkYXRlQ29kZSkoZSxuLG0pfWApLEQobiksaXx8dC5hc3NpZ24odywhMCl9LEM9Pnt0LmlmKCgwLENlLl8pYCEoJHtDfSBpbnN0YW5jZW9mICR7cy5WYWxpZGF0aW9uRXJyb3J9KWAsKCk9PnQudGhyb3coQykpLE8oQyksaXx8dC5hc3NpZ24odywhMSl9KSxlLm9rKHcpfWZ1bmN0aW9uIGgoKXtlLnJlc3VsdCgoMCx5cy5jYWxsVmFsaWRhdGVDb2RlKShlLG4sbSksKCk9PkQobiksKCk9Pk8obikpfWZ1bmN0aW9uIE8odyl7Y29uc3QgQz0oMCxDZS5fKWAke3d9LmVycm9yc2A7dC5hc3NpZ24oc3IuZGVmYXVsdC52RXJyb3JzLCgwLENlLl8pYCR7c3IuZGVmYXVsdC52RXJyb3JzfSA9PT0gbnVsbCA/ICR7Q30gOiAke3NyLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7Q30pYCksdC5hc3NpZ24oc3IuZGVmYXVsdC5lcnJvcnMsKDAsQ2UuXylgJHtzci5kZWZhdWx0LnZFcnJvcnN9Lmxlbmd0aGApfWZ1bmN0aW9uIEQodyl7dmFyIEM7aWYoIXMub3B0cy51bmV2YWx1YXRlZClyZXR1cm47Y29uc3QgVD0oQz1yPT1udWxsP3ZvaWQgMDpyLnZhbGlkYXRlKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMuZXZhbHVhdGVkO2lmKHMucHJvcHMhPT0hMClpZihUJiYhVC5keW5hbWljUHJvcHMpVC5wcm9wcyE9PXZvaWQgMCYmKHMucHJvcHM9Y28ubWVyZ2VFdmFsdWF0ZWQucHJvcHModCxULnByb3BzLHMucHJvcHMpKTtlbHNle2NvbnN0IGY9dC52YXIoInByb3BzIiwoMCxDZS5fKWAke3d9LmV2YWx1YXRlZC5wcm9wc2ApO3MucHJvcHM9Y28ubWVyZ2VFdmFsdWF0ZWQucHJvcHModCxmLHMucHJvcHMsQ2UuTmFtZSl9aWYocy5pdGVtcyE9PSEwKWlmKFQmJiFULmR5bmFtaWNJdGVtcylULml0ZW1zIT09dm9pZCAwJiYocy5pdGVtcz1jby5tZXJnZUV2YWx1YXRlZC5pdGVtcyh0LFQuaXRlbXMscy5pdGVtcykpO2Vsc2V7Y29uc3QgZj10LnZhcigiaXRlbXMiLCgwLENlLl8pYCR7d30uZXZhbHVhdGVkLml0ZW1zYCk7cy5pdGVtcz1jby5tZXJnZUV2YWx1YXRlZC5pdGVtcyh0LGYscy5pdGVtcyxDZS5OYW1lKX19fU1uLmNhbGxSZWY9aG8sTW4uZGVmYXVsdD14Xzt2YXIgWGU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KFhlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxYZS5jaGVja01ldGFkYXRhPXZvaWQgMDtjb25zdCBGXz1BZSxWXz17a2V5d29yZDoibWV0YWRhdGEiLHNjaGVtYVR5cGU6Im9iamVjdCIsY29kZShlKXtrcyhlKTtjb25zdHtnZW46bixzY2hlbWE6cixpdDpvfT1lO2lmKCgwLEZfLmFsd2F5c1ZhbGlkU2NoZW1hKShvLHIpKXJldHVybjtjb25zdCB0PW4ubmFtZSgidmFsaWQiKTtlLnN1YnNjaGVtYSh7a2V5d29yZDoibWV0YWRhdGEiLGp0ZE1ldGFkYXRhOiEwfSx0KSxlLm9rKHQpfX07ZnVuY3Rpb24ga3Moe2l0OmUsa2V5d29yZDpufSxyKXtpZihlLmp0ZE1ldGFkYXRhIT09cil0aHJvdyBuZXcgRXJyb3IoYEpURDogIiR7bn0iIGNhbm5vdCBiZSB1c2VkIGluIHRoaXMgc2NoZW1hIGxvY2F0aW9uYCl9WGUuY2hlY2tNZXRhZGF0YT1rcyxYZS5kZWZhdWx0PVZfLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShrbiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksa24uaGFzUmVmPXZvaWQgMDtjb25zdCBNcz1QZSxicj1fZSxLXz1MbixYcz1NZSwkcz1NbixXXz1YZSxZXz17a2V5d29yZDoicmVmIixzY2hlbWFUeXBlOiJzdHJpbmciLGNvZGUoZSl7KDAsV18uY2hlY2tNZXRhZGF0YSkoZSk7Y29uc3R7Z2VuOm4sZGF0YTpyLHNjaGVtYTpvLHBhcmVudFNjaGVtYTp0LGl0OnN9PWUse3NjaGVtYUVudjp7cm9vdDppfX09cyxsPW4ubmFtZSgidmFsaWQiKTt0Lm51bGxhYmxlPyhuLnZhcihsLCgwLGJyLl8pYCR7cn0gPT09IG51bGxgKSxuLmlmKCgwLGJyLm5vdCkobCksYykpOihuLnZhcihsLCExKSxjKCkpLGUub2sobCk7ZnVuY3Rpb24gYygpe3ZhciBoO2NvbnN0IE89KGg9aS5zY2hlbWEuZGVmaW5pdGlvbnMpPT09bnVsbHx8aD09PXZvaWQgMD92b2lkIDA6aFtvXTtpZighTyl0aHJvdyBuZXcgS18uZGVmYXVsdChzLm9wdHMudXJpUmVzb2x2ZXIsIiIsbyxgTm8gZGVmaW5pdGlvbiAke299YCk7b3QoTyl8fCFzLm9wdHMuaW5saW5lUmVmcz9tKE8pOmEoTyl9ZnVuY3Rpb24gbShoKXtjb25zdCBPPU1zLmNvbXBpbGVTY2hlbWEuY2FsbChzLnNlbGYsbmV3IE1zLlNjaGVtYUVudih7c2NoZW1hOmgscm9vdDppLHNjaGVtYVBhdGg6YC9kZWZpbml0aW9ucy8ke299YH0pKSxEPSgwLCRzLmdldFZhbGlkYXRlKShlLE8pLHc9bi5jb25zdCgiX2VycnMiLFhzLmRlZmF1bHQuZXJyb3JzKTsoMCwkcy5jYWxsUmVmKShlLEQsTyxPLiRhc3luYyksbi5hc3NpZ24obCwoMCxici5fKWAke3d9ID09PSAke1hzLmRlZmF1bHQuZXJyb3JzfWApfWZ1bmN0aW9uIGEoaCl7Y29uc3QgTz1uLnNjb3BlVmFsdWUoInNjaGVtYSIscy5vcHRzLmNvZGUuc291cmNlPT09ITA/e3JlZjpoLGNvZGU6KDAsYnIuc3RyaW5naWZ5KShoKX06e3JlZjpofSk7ZS5zdWJzY2hlbWEoe3NjaGVtYTpoLGRhdGFUeXBlczpbXSxzY2hlbWFQYXRoOmJyLm5pbCx0b3BTY2hlbWFSZWY6TyxlcnJTY2hlbWFQYXRoOmAvZGVmaW5pdGlvbnMvJHtvfWB9LGwpfX19O2Z1bmN0aW9uIG90KGUpe2Zvcihjb25zdCBuIGluIGUpe2xldCByO2lmKG49PT0icmVmInx8dHlwZW9mKHI9ZVtuXSk9PSJvYmplY3QiJiZvdChyKSlyZXR1cm4hMH1yZXR1cm4hMX1rbi5oYXNSZWY9b3Qsa24uZGVmYXVsdD1ZXzt2YXIgdHQ9e30sbW89e307T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBKXz0vdHxccy9pLHpfPS9eKFxkXGRcZFxkKS0oXGRcZCktKFxkXGQpJC8scV89L14oXGRcZCk6KFxkXGQpOihcZFxkKSg/OlwuXGQrKT8oPzp6fChbKy1dXGRcZCkoPzo6PyhcZFxkKSk/KSQvaSxRXz1bMCwzMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV07ZnVuY3Rpb24ganMoZSxuKXtjb25zdCByPWUuc3BsaXQoSl8pO3JldHVybiByLmxlbmd0aD09PTImJnhzKHJbMF0pJiZaXyhyWzFdKXx8biYmci5sZW5ndGg9PT0xJiZ4cyhyWzBdKX1tby5kZWZhdWx0PWpzO2Z1bmN0aW9uIHhzKGUpe2NvbnN0IG49el8uZXhlYyhlKTtpZighbilyZXR1cm4hMTtjb25zdCByPStuWzFdLG89K25bMl0sdD0rblszXTtyZXR1cm4gbz49MSYmbzw9MTImJnQ+PTEmJih0PD1RX1tvXXx8bz09PTImJnQ9PT0yOSYmKHIlMTAwPT09MD9yJTQwMD09PTA6ciU0PT09MCkpfWZ1bmN0aW9uIFpfKGUpe2NvbnN0IG49cV8uZXhlYyhlKTtpZighbilyZXR1cm4hMTtjb25zdCByPStuWzFdLG89K25bMl0sdD0rblszXSxzPSsobls0XXx8MCksaT0rKG5bNV18fDApO3JldHVybiByPD0yMyYmbzw9NTkmJnQ8PTU5fHxyLXM9PT0yMyYmby1pPT09NTkmJnQ9PT02MH1qcy5jb2RlPSdyZXF1aXJlKCJhanYvZGlzdC9ydW50aW1lL3RpbWVzdGFtcCIpLmRlZmF1bHQnO3ZhciAkZT17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLCRlLnR5cGVFcnJvclBhcmFtcz0kZS50eXBlRXJyb3JNZXNzYWdlPSRlLnR5cGVFcnJvcj12b2lkIDA7Y29uc3QgZWw9X2U7ZnVuY3Rpb24gbmwoZSl7cmV0dXJue21lc3NhZ2U6bj0+RnMobixlKSxwYXJhbXM6bj0+VnMobixlKX19JGUudHlwZUVycm9yPW5sO2Z1bmN0aW9uIEZzKHtwYXJlbnRTY2hlbWE6ZX0sbil7cmV0dXJuIGUhPW51bGwmJmUubnVsbGFibGU/YG11c3QgYmUgJHtufSBvciBudWxsYDpgbXVzdCBiZSAke259YH0kZS50eXBlRXJyb3JNZXNzYWdlPUZzO2Z1bmN0aW9uIFZzKHtwYXJlbnRTY2hlbWE6ZX0sbil7cmV0dXJuKDAsZWwuXylge3R5cGU6ICR7bn0sIG51bGxhYmxlOiAkeyEhKGUhPW51bGwmJmUubnVsbGFibGUpfX1gfSRlLnR5cGVFcnJvclBhcmFtcz1WcyxmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5pbnRSYW5nZT12b2lkIDA7Y29uc3Qgbj1fZSxyPW1vLG89QWUsdD1YZSxzPSRlO2UuaW50UmFuZ2U9e2ludDg6Wy0xMjgsMTI3LDNdLHVpbnQ4OlswLDI1NSwzXSxpbnQxNjpbLTMyNzY4LDMyNzY3LDVdLHVpbnQxNjpbMCw2NTUzNSw1XSxpbnQzMjpbLTIxNDc0ODM2NDgsMjE0NzQ4MzY0NywxMF0sdWludDMyOlswLDQyOTQ5NjcyOTUsMTBdfTtjb25zdCBpPXttZXNzYWdlOm09PigwLHMudHlwZUVycm9yTWVzc2FnZSkobSxtLnNjaGVtYSkscGFyYW1zOm09PigwLHMudHlwZUVycm9yUGFyYW1zKShtLG0uc2NoZW1hKX07ZnVuY3Rpb24gbChtKXtjb25zdHtnZW46YSxkYXRhOmgsaXQ6T309bSx7dGltZXN0YW1wOkQsYWxsb3dEYXRlOnd9PU8ub3B0cztpZihEPT09ImRhdGUiKXJldHVybigwLG4uXylgJHtofSBpbnN0YW5jZW9mIERhdGUgYDtjb25zdCBDPSgwLG8udXNlRnVuYykoYSxyLmRlZmF1bHQpLFQ9dz8oMCxuLl8pYCwgdHJ1ZWA6bi5uaWwsZj0oMCxuLl8pYHR5cGVvZiAke2h9ID09ICJzdHJpbmciICYmICR7Q30oJHtofSR7VH0pYDtyZXR1cm4gRD09PSJzdHJpbmciP2Y6KDAsbi5vcikoKDAsbi5fKWAke2h9IGluc3RhbmNlb2YgRGF0ZWAsZil9Y29uc3QgYz17a2V5d29yZDoidHlwZSIsc2NoZW1hVHlwZToic3RyaW5nIixlcnJvcjppLGNvZGUobSl7KDAsdC5jaGVja01ldGFkYXRhKShtKTtjb25zdHtkYXRhOmEsc2NoZW1hOmgscGFyZW50U2NoZW1hOk8saXQ6RH09bTtsZXQgdztzd2l0Y2goaCl7Y2FzZSJib29sZWFuIjpjYXNlInN0cmluZyI6dz0oMCxuLl8pYHR5cGVvZiAke2F9ID09ICR7aH1gO2JyZWFrO2Nhc2UidGltZXN0YW1wIjp7dz1sKG0pO2JyZWFrfWNhc2UiZmxvYXQzMiI6Y2FzZSJmbG9hdDY0Ijp3PSgwLG4uXylgdHlwZW9mICR7YX0gPT0gIm51bWJlciJgO2JyZWFrO2RlZmF1bHQ6e2NvbnN0IEM9aDtpZih3PSgwLG4uXylgdHlwZW9mICR7YX0gPT0gIm51bWJlciIgJiYgaXNGaW5pdGUoJHthfSkgJiYgISgke2F9ICUgMSlgLCFELm9wdHMuaW50MzJyYW5nZSYmKEM9PT0iaW50MzIifHxDPT09InVpbnQzMiIpKUM9PT0idWludDMyIiYmKHc9KDAsbi5fKWAke3d9ICYmICR7YX0gPj0gMGApO2Vsc2V7Y29uc3RbVCxmXT1lLmludFJhbmdlW0NdO3c9KDAsbi5fKWAke3d9ICYmICR7YX0gPj0gJHtUfSAmJiAke2F9IDw9ICR7Zn1gfX19bS5wYXNzKE8ubnVsbGFibGU/KDAsbi5vcikoKDAsbi5fKWAke2F9ID09PSBudWxsYCx3KTp3KX19O2UuZGVmYXVsdD1jfSh0dCk7dmFyIHN0PXt9LFplPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShaZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksWmUuY2hlY2tOdWxsYWJsZU9iamVjdD1aZS5jaGVja051bGxhYmxlPXZvaWQgMDtjb25zdCBwbz1fZTtmdW5jdGlvbiBLcyh7Z2VuOmUsZGF0YTpuLHBhcmVudFNjaGVtYTpyfSxvPXBvLm5pbCl7Y29uc3QgdD1lLm5hbWUoInZhbGlkIik7cmV0dXJuIHIubnVsbGFibGU/KGUubGV0KHQsKDAscG8uXylgJHtufSA9PT0gbnVsbGApLG89KDAscG8ubm90KSh0KSk6ZS5sZXQodCwhMSksW3Qsb119WmUuY2hlY2tOdWxsYWJsZT1LcztmdW5jdGlvbiBybChlLG4pe2NvbnN0W3Isb109S3MoZSxuKTtyZXR1cm5bciwoMCxwby5fKWAke299ICYmIHR5cGVvZiAke2UuZGF0YX0gPT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkoJHtlLmRhdGF9KWBdfVplLmNoZWNrTnVsbGFibGVPYmplY3Q9cmwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBJbj1fZSxvbD1YZSx0bD1aZSxzbD17a2V5d29yZDoiZW51bSIsc2NoZW1hVHlwZToiYXJyYXkiLGVycm9yOnttZXNzYWdlOiJtdXN0IGJlIGVxdWFsIHRvIG9uZSBvZiB0aGUgYWxsb3dlZCB2YWx1ZXMiLHBhcmFtczooe3NjaGVtYUNvZGU6ZX0pPT4oMCxJbi5fKWB7YWxsb3dlZFZhbHVlczogJHtlfX1gfSxjb2RlKGUpeygwLG9sLmNoZWNrTWV0YWRhdGEpKGUpO2NvbnN0e2dlbjpuLGRhdGE6cixzY2hlbWE6byxzY2hlbWFWYWx1ZTp0LHBhcmVudFNjaGVtYTpzLGl0Oml9PWU7aWYoby5sZW5ndGg9PT0wKXRocm93IG5ldyBFcnJvcigiZW51bSBtdXN0IGhhdmUgbm9uLWVtcHR5IGFycmF5Iik7aWYoby5sZW5ndGghPT1uZXcgU2V0KG8pLnNpemUpdGhyb3cgbmV3IEVycm9yKCJlbnVtIGl0ZW1zIG11c3QgYmUgdW5pcXVlIik7bGV0IGw7Y29uc3QgYz0oMCxJbi5fKWB0eXBlb2YgJHtyfSA9PSAic3RyaW5nImA7aWYoby5sZW5ndGg+PWkub3B0cy5sb29wRW51bSl7bGV0IGE7W2wsYV09KDAsdGwuY2hlY2tOdWxsYWJsZSkoZSxjKSxuLmlmKGEsbSl9ZWxzZXtpZighQXJyYXkuaXNBcnJheShvKSl0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpO2w9KDAsSW4uYW5kKShjLCgwLEluLm9yKSguLi5vLm1hcChhPT4oMCxJbi5fKWAke3J9ID09PSAke2F9YCkpKSxzLm51bGxhYmxlJiYobD0oMCxJbi5vcikoKDAsSW4uXylgJHtyfSA9PT0gbnVsbGAsbCkpfWUucGFzcyhsKTtmdW5jdGlvbiBtKCl7bi5mb3JPZigidiIsdCxhPT5uLmlmKCgwLEluLl8pYCR7bH0gPSAke3J9ID09PSAke2F9YCwoKT0+bi5icmVhaygpKSl9fX07c3QuZGVmYXVsdD1zbDt2YXIgaXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBpbD1BZSxhbD1vZSxXcz1fZSx1bD1YZSxfbD1aZSxsbD17a2V5d29yZDoiZWxlbWVudHMiLHNjaGVtYVR5cGU6Im9iamVjdCIsZXJyb3I6KDAsJGUudHlwZUVycm9yKSgiYXJyYXkiKSxjb2RlKGUpeygwLHVsLmNoZWNrTWV0YWRhdGEpKGUpO2NvbnN0e2dlbjpuLGRhdGE6cixzY2hlbWE6byxpdDp0fT1lO2lmKCgwLGlsLmFsd2F5c1ZhbGlkU2NoZW1hKSh0LG8pKXJldHVybjtjb25zdFtzXT0oMCxfbC5jaGVja051bGxhYmxlKShlKTtuLmlmKCgwLFdzLm5vdCkocyksKCk9Pm4uaWYoKDAsV3MuXylgQXJyYXkuaXNBcnJheSgke3J9KWAsKCk9Pm4uYXNzaWduKHMsKDAsYWwudmFsaWRhdGVBcnJheSkoZSkpLCgpPT5lLmVycm9yKCkpKSxlLm9rKHMpfX07aXQuZGVmYXVsdD1sbDt2YXIgYXQ9e307KGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnZhbGlkYXRlUHJvcGVydGllcz1lLmVycm9yPXZvaWQgMDtjb25zdCBuPW9lLHI9QWUsbz1fZSx0PVhlLHM9WmUsaT0kZTt2YXIgbDsoZnVuY3Rpb24oYSl7YS5BZGRpdGlvbmFsPSJhZGRpdGlvbmFsIixhLk1pc3Npbmc9Im1pc3NpbmcifSkobHx8KGw9e30pKSxlLmVycm9yPXttZXNzYWdlOmE9Pntjb25zdHtwYXJhbXM6aH09YTtyZXR1cm4gaC5wcm9wRXJyb3I/aC5wcm9wRXJyb3I9PT1sLkFkZGl0aW9uYWw/Im11c3QgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIjpgbXVzdCBoYXZlIHByb3BlcnR5ICcke2gubWlzc2luZ1Byb3BlcnR5fSdgOigwLGkudHlwZUVycm9yTWVzc2FnZSkoYSwib2JqZWN0Iil9LHBhcmFtczphPT57Y29uc3R7cGFyYW1zOmh9PWE7cmV0dXJuIGgucHJvcEVycm9yP2gucHJvcEVycm9yPT09bC5BZGRpdGlvbmFsPygwLG8uXylge2Vycm9yOiAke2gucHJvcEVycm9yfSwgYWRkaXRpb25hbFByb3BlcnR5OiAke2guYWRkaXRpb25hbFByb3BlcnR5fX1gOigwLG8uXylge2Vycm9yOiAke2gucHJvcEVycm9yfSwgbWlzc2luZ1Byb3BlcnR5OiAke2gubWlzc2luZ1Byb3BlcnR5fX1gOigwLGkudHlwZUVycm9yUGFyYW1zKShhLCJvYmplY3QiKX19O2NvbnN0IGM9e2tleXdvcmQ6InByb3BlcnRpZXMiLHNjaGVtYVR5cGU6Im9iamVjdCIsZXJyb3I6ZS5lcnJvcixjb2RlOm19O2Z1bmN0aW9uIG0oYSl7KDAsdC5jaGVja01ldGFkYXRhKShhKTtjb25zdHtnZW46aCxkYXRhOk8scGFyZW50U2NoZW1hOkQsaXQ6d309YSx7YWRkaXRpb25hbFByb3BlcnRpZXM6QyxudWxsYWJsZTpUfT1EO2lmKHcuanRkRGlzY3JpbWluYXRvciYmVCl0aHJvdyBuZXcgRXJyb3IoIkpURDogbnVsbGFibGUgaW5zaWRlIGRpc2NyaW1pbmF0b3IgbWFwcGluZyIpO2lmKEgoKSl0aHJvdyBuZXcgRXJyb3IoIkpURDogcHJvcGVydGllcyBhbmQgb3B0aW9uYWxQcm9wZXJ0aWVzIGhhdmUgY29tbW9uIG1lbWJlcnMiKTtjb25zdFtmLEFdPUcoInByb3BlcnRpZXMiKSxbVSxTXT1HKCJvcHRpb25hbFByb3BlcnRpZXMiKTtpZihBLmxlbmd0aD09PTAmJlMubGVuZ3RoPT09MCYmQylyZXR1cm47Y29uc3RbaixOXT13Lmp0ZERpc2NyaW1pbmF0b3I9PT12b2lkIDA/KDAscy5jaGVja051bGxhYmxlT2JqZWN0KShhLE8pOltoLmxldCgidmFsaWQiLCExKSwhMF07aC5pZihOLCgpPT5oLmFzc2lnbihqLCEwKS5ibG9jaygoKT0+e0YoQSwicHJvcGVydGllcyIsITApLEYoUywib3B0aW9uYWxQcm9wZXJ0aWVzIiksQ3x8bWUoKX0pKSxhLnBhc3Moaik7ZnVuY3Rpb24gSCgpe2NvbnN0IGllPUQucHJvcGVydGllcyxxPUQub3B0aW9uYWxQcm9wZXJ0aWVzO2lmKCEoaWUmJnEpKXJldHVybiExO2Zvcihjb25zdCBFZSBpbiBpZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocSxFZSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gRyhpZSl7Y29uc3QgcT1EW2llXSxFZT1xPygwLG4uYWxsU2NoZW1hUHJvcGVydGllcykocSk6W107aWYody5qdGREaXNjcmltaW5hdG9yJiZFZS5zb21lKEhlPT5IZT09PXcuanRkRGlzY3JpbWluYXRvcikpdGhyb3cgbmV3IEVycm9yKGBKVEQ6IGRpc2NyaW1pbmF0b3IgdGFnIHVzZWQgaW4gJHtpZX1gKTtjb25zdCBPZT1FZS5maWx0ZXIoSGU9PiEoMCxyLmFsd2F5c1ZhbGlkU2NoZW1hKSh3LHFbSGVdKSk7cmV0dXJuW0VlLE9lXX1mdW5jdGlvbiBGKGllLHEsRWUpe2NvbnN0IE9lPWgudmFyKCJ2YWxpZCIpO2Zvcihjb25zdCBGZSBvZiBpZSloLmlmKCgwLG4ucHJvcGVydHlJbkRhdGEpKGgsTyxGZSx3Lm9wdHMub3duUHJvcGVydGllcyksKCk9PlcoRmUscSxPZSksKCk9PkhlKEZlKSksYS5vayhPZSk7ZnVuY3Rpb24gSGUoRmUpe0VlPyhoLmFzc2lnbihPZSwhMSksYS5lcnJvcighMSx7cHJvcEVycm9yOmwuTWlzc2luZyxtaXNzaW5nUHJvcGVydHk6RmV9LHtzY2hlbWFQYXRoOkZlfSkpOmguYXNzaWduKE9lLCEwKX19ZnVuY3Rpb24gVyhpZSxxLEVlKXthLnN1YnNjaGVtYSh7a2V5d29yZDpxLHNjaGVtYVByb3A6aWUsZGF0YVByb3A6aWV9LEVlKX1mdW5jdGlvbiBtZSgpe2guZm9ySW4oImtleSIsTyxpZT0+e2NvbnN0IHE9dy5qdGREaXNjcmltaW5hdG9yPT09dm9pZCAwP2Y6W3cuanRkRGlzY3JpbWluYXRvcl0uY29uY2F0KGYpLEVlPXooaWUscSwicHJvcGVydGllcyIpLE9lPXooaWUsVSwib3B0aW9uYWxQcm9wZXJ0aWVzIiksSGU9RWU9PT0hMD9PZTpPZT09PSEwP0VlOigwLG8uYW5kKShFZSxPZSk7aC5pZihIZSwoKT0+e3cub3B0cy5yZW1vdmVBZGRpdGlvbmFsP2guY29kZSgoMCxvLl8pYGRlbGV0ZSAke099WyR7aWV9XWApOihhLmVycm9yKCExLHtwcm9wRXJyb3I6bC5BZGRpdGlvbmFsLGFkZGl0aW9uYWxQcm9wZXJ0eTppZX0se2luc3RhbmNlUGF0aDppZSxwYXJlbnRTY2hlbWE6ITB9KSx3Lm9wdHMuYWxsRXJyb3JzfHxoLmJyZWFrKCkpfSl9KX1mdW5jdGlvbiB6KGllLHEsRWUpe2xldCBPZTtpZihxLmxlbmd0aD44KXtjb25zdCBIZT0oMCxyLnNjaGVtYVJlZk9yVmFsKSh3LERbRWVdLEVlKTtPZT0oMCxvLm5vdCkoKDAsbi5pc093blByb3BlcnR5KShoLEhlLGllKSl9ZWxzZSBxLmxlbmd0aD9PZT0oMCxvLmFuZCkoLi4ucS5tYXAoSGU9PigwLG8uXylgJHtpZX0gIT09ICR7SGV9YCkpOk9lPSEwO3JldHVybiBPZX19ZS52YWxpZGF0ZVByb3BlcnRpZXM9bSxlLmRlZmF1bHQ9Y30pKGF0KTt2YXIgdXQ9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHV0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZcz1hdCxjbD17a2V5d29yZDoib3B0aW9uYWxQcm9wZXJ0aWVzIixzY2hlbWFUeXBlOiJvYmplY3QiLGVycm9yOllzLmVycm9yLGNvZGUoZSl7ZS5wYXJlbnRTY2hlbWEucHJvcGVydGllc3x8KDAsWXMudmFsaWRhdGVQcm9wZXJ0aWVzKShlKX19O3V0LmRlZmF1bHQ9Y2w7dmFyIF90PXt9LEpzPXt9OyhmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5EaXNjckVycm9yPXZvaWQgMCxmdW5jdGlvbihuKXtuLlRhZz0idGFnIixuLk1hcHBpbmc9Im1hcHBpbmcifShlLkRpc2NyRXJyb3J8fChlLkRpc2NyRXJyb3I9e30pKX0pKEpzKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoX3QsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IFhuPV9lLGRsPVhlLGhsPVplLHpzPSRlLEVvPUpzLG1sPXtrZXl3b3JkOiJkaXNjcmltaW5hdG9yIixzY2hlbWFUeXBlOiJzdHJpbmciLGltcGxlbWVudHM6WyJtYXBwaW5nIl0sZXJyb3I6e21lc3NhZ2U6ZT0+e2NvbnN0e3NjaGVtYTpuLHBhcmFtczpyfT1lO3JldHVybiByLmRpc2NyRXJyb3I/ci5kaXNjckVycm9yPT09RW8uRGlzY3JFcnJvci5UYWc/YHRhZyAiJHtufSIgbXVzdCBiZSBzdHJpbmdgOmB2YWx1ZSBvZiB0YWcgIiR7bn0iIG11c3QgYmUgaW4gbWFwcGluZ2A6KDAsenMudHlwZUVycm9yTWVzc2FnZSkoZSwib2JqZWN0Iil9LHBhcmFtczplPT57Y29uc3R7c2NoZW1hOm4scGFyYW1zOnJ9PWU7cmV0dXJuIHIuZGlzY3JFcnJvcj8oMCxYbi5fKWB7ZXJyb3I6ICR7ci5kaXNjckVycm9yfSwgdGFnOiAke259LCB0YWdWYWx1ZTogJHtyLnRhZ319YDooMCx6cy50eXBlRXJyb3JQYXJhbXMpKGUsIm9iamVjdCIpfX0sY29kZShlKXsoMCxkbC5jaGVja01ldGFkYXRhKShlKTtjb25zdHtnZW46bixkYXRhOnIsc2NoZW1hOm8scGFyZW50U2NoZW1hOnR9PWUsW3MsaV09KDAsaGwuY2hlY2tOdWxsYWJsZU9iamVjdCkoZSxyKTtuLmlmKGkpLGwoKSxuLmVsc2VJZigoMCxYbi5ub3QpKHMpKSxlLmVycm9yKCksbi5lbmRJZigpLGUub2socyk7ZnVuY3Rpb24gbCgpe2NvbnN0IGE9bi5jb25zdCgidGFnIiwoMCxYbi5fKWAke3J9JHsoMCxYbi5nZXRQcm9wZXJ0eSkobyl9YCk7bi5pZigoMCxYbi5fKWAke2F9ID09PSB1bmRlZmluZWRgKSxlLmVycm9yKCExLHtkaXNjckVycm9yOkVvLkRpc2NyRXJyb3IuVGFnLHRhZzphfSksbi5lbHNlSWYoKDAsWG4uXylgdHlwZW9mICR7YX0gPT0gInN0cmluZyJgKSxjKGEpLG4uZWxzZSgpLGUuZXJyb3IoITEse2Rpc2NyRXJyb3I6RW8uRGlzY3JFcnJvci5UYWcsdGFnOmF9LHtpbnN0YW5jZVBhdGg6b30pLG4uZW5kSWYoKX1mdW5jdGlvbiBjKGEpe24uaWYoITEpO2Zvcihjb25zdCBoIGluIHQubWFwcGluZyluLmVsc2VJZigoMCxYbi5fKWAke2F9ID09PSAke2h9YCksbi5hc3NpZ24ocyxtKGgpKTtuLmVsc2UoKSxlLmVycm9yKCExLHtkaXNjckVycm9yOkVvLkRpc2NyRXJyb3IuTWFwcGluZyx0YWc6YX0se2luc3RhbmNlUGF0aDpvLHNjaGVtYVBhdGg6Im1hcHBpbmciLHBhcmVudFNjaGVtYTohMH0pLG4uZW5kSWYoKX1mdW5jdGlvbiBtKGEpe2NvbnN0IGg9bi5uYW1lKCJ2YWxpZCIpO3JldHVybiBlLnN1YnNjaGVtYSh7a2V5d29yZDoibWFwcGluZyIsc2NoZW1hUHJvcDphLGp0ZERpc2NyaW1pbmF0b3I6b30saCksaH19fTtfdC5kZWZhdWx0PW1sO3ZhciBsdD17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkobHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IHFzPUFlLFFzPV9lLHBsPVhlLEVsPVplLGZsPXtrZXl3b3JkOiJ2YWx1ZXMiLHNjaGVtYVR5cGU6Im9iamVjdCIsZXJyb3I6KDAsJGUudHlwZUVycm9yKSgib2JqZWN0IiksY29kZShlKXsoMCxwbC5jaGVja01ldGFkYXRhKShlKTtjb25zdHtnZW46bixkYXRhOnIsc2NoZW1hOm8saXQ6dH09ZTtpZigoMCxxcy5hbHdheXNWYWxpZFNjaGVtYSkodCxvKSlyZXR1cm47Y29uc3RbcyxpXT0oMCxFbC5jaGVja051bGxhYmxlT2JqZWN0KShlLHIpO24uaWYoaSksbi5hc3NpZ24ocyxsKCkpLG4uZWxzZUlmKCgwLFFzLm5vdCkocykpLGUuZXJyb3IoKSxuLmVuZElmKCksZS5vayhzKTtmdW5jdGlvbiBsKCl7Y29uc3QgYz1uLm5hbWUoInZhbGlkIik7aWYodC5hbGxFcnJvcnMpe2NvbnN0IGE9bi5sZXQoInZhbGlkIiwhMCk7cmV0dXJuIG0oKCk9Pm4uYXNzaWduKGEsITEpKSxhfXJldHVybiBuLnZhcihjLCEwKSxtKCgpPT5uLmJyZWFrKCkpLGM7ZnVuY3Rpb24gbShhKXtuLmZvckluKCJrZXkiLHIsaD0+e2Uuc3Vic2NoZW1hKHtrZXl3b3JkOiJ2YWx1ZXMiLGRhdGFQcm9wOmgsZGF0YVByb3BUeXBlOnFzLlR5cGUuU3RyfSxjKSxuLmlmKCgwLFFzLm5vdCkoYyksYSl9KX19fX07bHQuZGVmYXVsdD1mbDt2YXIgY3Q9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGN0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBSbD17a2V5d29yZDoidW5pb24iLHNjaGVtYVR5cGU6ImFycmF5Iix0cmFja0Vycm9yczohMCxjb2RlOm9lLnZhbGlkYXRlVW5pb24sZXJyb3I6e21lc3NhZ2U6Im11c3QgbWF0Y2ggYSBzY2hlbWEgaW4gdW5pb24ifX07Y3QuZGVmYXVsdD1SbCxPYmplY3QuZGVmaW5lUHJvcGVydHkocnQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IE9sPWtuLFRsPXR0LE5sPXN0LGdsPWl0LElsPWF0LGJsPXV0LEFsPV90LFVsPWx0LEhsPWN0LHZsPVhlLERsPVsiZGVmaW5pdGlvbnMiLE9sLmRlZmF1bHQsVGwuZGVmYXVsdCxObC5kZWZhdWx0LGdsLmRlZmF1bHQsSWwuZGVmYXVsdCxibC5kZWZhdWx0LEFsLmRlZmF1bHQsVWwuZGVmYXVsdCxIbC5kZWZhdWx0LHZsLmRlZmF1bHQse2tleXdvcmQ6ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIixzY2hlbWFUeXBlOiJib29sZWFuIn0se2tleXdvcmQ6Im51bGxhYmxlIixzY2hlbWFUeXBlOiJib29sZWFuIn1dO3J0LmRlZmF1bHQ9RGw7dmFyIGR0PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShkdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Y29uc3QgaG49ZT0+e2NvbnN0IG49e251bGxhYmxlOnt0eXBlOiJib29sZWFuIn0sbWV0YWRhdGE6e29wdGlvbmFsUHJvcGVydGllczp7dW5pb246e2VsZW1lbnRzOntyZWY6InNjaGVtYSJ9fX0sYWRkaXRpb25hbFByb3BlcnRpZXM6ITB9fTtyZXR1cm4gZSYmKG4uZGVmaW5pdGlvbnM9e3ZhbHVlczp7cmVmOiJzY2hlbWEifX0pLG59LFNsPWU9Pih7b3B0aW9uYWxQcm9wZXJ0aWVzOmhuKGUpfSksUGw9ZT0+KHtwcm9wZXJ0aWVzOntyZWY6e3R5cGU6InN0cmluZyJ9fSxvcHRpb25hbFByb3BlcnRpZXM6aG4oZSl9KSx3bD1lPT4oe3Byb3BlcnRpZXM6e3R5cGU6e2VudW06WyJib29sZWFuIiwidGltZXN0YW1wIiwic3RyaW5nIiwiZmxvYXQzMiIsImZsb2F0NjQiLCJpbnQ4IiwidWludDgiLCJpbnQxNiIsInVpbnQxNiIsImludDMyIiwidWludDMyIl19fSxvcHRpb25hbFByb3BlcnRpZXM6aG4oZSl9KSxHbD1lPT4oe3Byb3BlcnRpZXM6e2VudW06e2VsZW1lbnRzOnt0eXBlOiJzdHJpbmcifX19LG9wdGlvbmFsUHJvcGVydGllczpobihlKX0pLENsPWU9Pih7cHJvcGVydGllczp7ZWxlbWVudHM6e3JlZjoic2NoZW1hIn19LG9wdGlvbmFsUHJvcGVydGllczpobihlKX0pLFpzPWU9Pih7cHJvcGVydGllczp7cHJvcGVydGllczp7dmFsdWVzOntyZWY6InNjaGVtYSJ9fX0sb3B0aW9uYWxQcm9wZXJ0aWVzOlkoe29wdGlvbmFsUHJvcGVydGllczp7dmFsdWVzOntyZWY6InNjaGVtYSJ9fSxhZGRpdGlvbmFsUHJvcGVydGllczp7dHlwZToiYm9vbGVhbiJ9fSxobihlKSl9KSxlaT1lPT4oe3Byb3BlcnRpZXM6e29wdGlvbmFsUHJvcGVydGllczp7dmFsdWVzOntyZWY6InNjaGVtYSJ9fX0sb3B0aW9uYWxQcm9wZXJ0aWVzOlkoe2FkZGl0aW9uYWxQcm9wZXJ0aWVzOnt0eXBlOiJib29sZWFuIn19LGhuKGUpKX0pLHlsPWU9Pih7cHJvcGVydGllczp7ZGlzY3JpbWluYXRvcjp7dHlwZToic3RyaW5nIn0sbWFwcGluZzp7dmFsdWVzOnttZXRhZGF0YTp7dW5pb246W1pzKCExKSxlaSghMSldfX19fSxvcHRpb25hbFByb3BlcnRpZXM6aG4oZSl9KSxMbD1lPT4oe3Byb3BlcnRpZXM6e3ZhbHVlczp7cmVmOiJzY2hlbWEifX0sb3B0aW9uYWxQcm9wZXJ0aWVzOmhuKGUpfSksbmk9ZT0+KHttZXRhZGF0YTp7dW5pb246W1NsLFBsLHdsLEdsLENsLFpzLGVpLHlsLExsXS5tYXAobj0+bihlKSl9fSksQmw9WSh7ZGVmaW5pdGlvbnM6e3NjaGVtYTpuaSghMSl9fSxuaSghMCkpO2R0LmRlZmF1bHQ9Qmw7dmFyIGh0PXt9LEFyPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShBciwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksQXIuanRkRm9ybXM9dm9pZCAwLEFyLmp0ZEZvcm1zPVsiZWxlbWVudHMiLCJ2YWx1ZXMiLCJkaXNjcmltaW5hdG9yIiwicHJvcGVydGllcyIsIm9wdGlvbmFsUHJvcGVydGllcyIsImVudW0iLCJ0eXBlIiwicmVmIl07dmFyIG10PXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShtdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Y29uc3QgcHQ9L1tcXCJcdTAwMDAtXHUwMDFmXHUwMDdmLVx1MDA5Zlx1MDBhZFx1MDYwMC1cdTA2MDRcdTA3MGZcdTE3YjRcdTE3YjVcdTIwMGMtXHUyMDBmXHUyMDI4LVx1MjAyZlx1MjA2MC1cdTIwNmZcdWZlZmZcdWZmZjAtXHVmZmZmXS9nLGtsPXsiXGIiOiJcXGIiLCIJIjoiXFx0IiwiXG4iOiJcXG4iLCJcZiI6IlxcZiIsIlxyIjoiXFxyIiwnIic6J1xcIicsIlxcIjoiXFxcXCJ9O2Z1bmN0aW9uIHJpKGUpe3JldHVybiBwdC5sYXN0SW5kZXg9MCwnIicrKHB0LnRlc3QoZSk/ZS5yZXBsYWNlKHB0LG49Pntjb25zdCByPWtsW25dO3JldHVybiB0eXBlb2Ygcj09InN0cmluZyI/cjoiXFx1IisoIjAwMDAiK24uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KX0pOmUpKyciJ31tdC5kZWZhdWx0PXJpLHJpLmNvZGU9J3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvcXVvdGUiKS5kZWZhdWx0JyxPYmplY3QuZGVmaW5lUHJvcGVydHkoaHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IE1sPUFyLG9pPVBlLG5lPV9lLFhsPUxuLGhlPU1lLCRsPW9lLGpsPWtuLHhsPUFlLEZsPW10LFZsPXtlbGVtZW50czpXbCx2YWx1ZXM6WWwsZGlzY3JpbWluYXRvcjpKbCxwcm9wZXJ0aWVzOmlpLG9wdGlvbmFsUHJvcGVydGllczppaSxlbnVtOkhyLHR5cGU6emwscmVmOlFsfTtmdW5jdGlvbiB0aShlLG4pe2NvbnN0IHI9b2kuZ2V0Q29tcGlsaW5nU2NoZW1hLmNhbGwodGhpcyxlKTtpZihyKXJldHVybiByO2NvbnN0e2VzNTpvLGxpbmVzOnR9PXRoaXMub3B0cy5jb2RlLHtvd25Qcm9wZXJ0aWVzOnN9PXRoaXMub3B0cyxpPW5ldyBuZS5Db2RlR2VuKHRoaXMuc2NvcGUse2VzNTpvLGxpbmVzOnQsb3duUHJvcGVydGllczpzfSksbD1pLnNjb3BlTmFtZSgic2VyaWFsaXplIiksYz17c2VsZjp0aGlzLGdlbjppLHNjaGVtYTplLnNjaGVtYSxzY2hlbWFFbnY6ZSxkZWZpbml0aW9uczpuLGRhdGE6aGUuZGVmYXVsdC5kYXRhfTtsZXQgbTt0cnl7dGhpcy5fY29tcGlsYXRpb25zLmFkZChlKSxlLnNlcmlhbGl6ZU5hbWU9bCxpLmZ1bmMobCxoZS5kZWZhdWx0LmRhdGEsITEsKCk9PntpLmxldChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuc3RyKWBgKSxVcihjKSxpLnJldHVybihoZS5kZWZhdWx0Lmpzb24pfSksaS5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7Y29uc3QgYT1pLnRvU3RyaW5nKCk7bT1gJHtpLnNjb3BlUmVmcyhoZS5kZWZhdWx0LnNjb3BlKX1yZXR1cm4gJHthfWA7Y29uc3QgTz1uZXcgRnVuY3Rpb24oYCR7aGUuZGVmYXVsdC5zY29wZX1gLG0pKHRoaXMuc2NvcGUuZ2V0KCkpO3RoaXMuc2NvcGUudmFsdWUobCx7cmVmOk99KSxlLnNlcmlhbGl6ZT1PfWNhdGNoKGEpe3Rocm93IG0mJnRoaXMubG9nZ2VyLmVycm9yKCJFcnJvciBjb21waWxpbmcgc2VyaWFsaXplciwgZnVuY3Rpb24gY29kZToiLG0pLGRlbGV0ZSBlLnNlcmlhbGl6ZSxkZWxldGUgZS5zZXJpYWxpemVOYW1lLGF9ZmluYWxseXt0aGlzLl9jb21waWxhdGlvbnMuZGVsZXRlKGUpfXJldHVybiBlfWh0LmRlZmF1bHQ9dGk7ZnVuY3Rpb24gVXIoZSl7bGV0IG47Zm9yKGNvbnN0IHIgb2YgTWwuanRkRm9ybXMpaWYociBpbiBlLnNjaGVtYSl7bj1yO2JyZWFrfUtsKGUsbj9WbFtuXTplYyl9ZnVuY3Rpb24gS2woZSxuKXtjb25zdHtnZW46cixzY2hlbWE6byxkYXRhOnR9PWU7aWYoIW8ubnVsbGFibGUpcmV0dXJuIG4oZSk7ci5pZigoMCxuZS5fKWAke3R9ID09PSB1bmRlZmluZWQgfHwgJHt0fSA9PT0gbnVsbGAsKCk9PnIuYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5fKWAibnVsbCJgKSwoKT0+bihlKSl9ZnVuY3Rpb24gV2woZSl7Y29uc3R7Z2VuOm4sc2NoZW1hOnIsZGF0YTpvfT1lO24uYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5zdHIpYFtgKTtjb25zdCB0PW4ubGV0KCJmaXJzdCIsITApO24uZm9yT2YoImVsIixvLHM9Pnt1aShlLHQpLFVyKGxlKFkoe30sZSkse3NjaGVtYTpyLmVsZW1lbnRzLGRhdGE6c30pKX0pLG4uYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5zdHIpYF1gKX1mdW5jdGlvbiBZbChlKXtjb25zdHtnZW46bixzY2hlbWE6cixkYXRhOm99PWU7bi5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLnN0cilge2ApO2NvbnN0IHQ9bi5sZXQoImZpcnN0IiwhMCk7bi5mb3JJbigia2V5IixvLHM9PnNpKGUscyxyLnZhbHVlcyx0KSksbi5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLnN0cilgfWApfWZ1bmN0aW9uIHNpKGUsbixyLG8pe2NvbnN0e2dlbjp0LGRhdGE6c309ZTt1aShlLG8pLEhyKGxlKFkoe30sZSkse2RhdGE6bn0pKSx0LmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuc3RyKWA6YCk7Y29uc3QgaT10LmNvbnN0KCJ2YWx1ZSIsKDAsbmUuXylgJHtzfSR7KDAsbmUuZ2V0UHJvcGVydHkpKG4pfWApO1VyKGxlKFkoe30sZSkse3NjaGVtYTpyLGRhdGE6aX0pKX1mdW5jdGlvbiBKbChlKXtjb25zdHtnZW46bixzY2hlbWE6cixkYXRhOm99PWUse2Rpc2NyaW1pbmF0b3I6dH09cjtuLmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuc3RyKWB7JHtKU09OLnN0cmluZ2lmeSh0KX06YCk7Y29uc3Qgcz1uLmNvbnN0KCJ0YWciLCgwLG5lLl8pYCR7b30keygwLG5lLmdldFByb3BlcnR5KSh0KX1gKTtIcihsZShZKHt9LGUpLHtkYXRhOnN9KSksbi5pZighMSk7Zm9yKGNvbnN0IGkgaW4gci5tYXBwaW5nKXtuLmVsc2VJZigoMCxuZS5fKWAke3N9ID09PSAke2l9YCk7Y29uc3QgbD1yLm1hcHBpbmdbaV07YWkobGUoWSh7fSxlKSx7c2NoZW1hOmx9KSx0KX1uLmVuZElmKCksbi5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLnN0cilgfWApfWZ1bmN0aW9uIGlpKGUpe2NvbnN0e2dlbjpufT1lO24uYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5zdHIpYHtgKSxhaShlKSxuLmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuc3RyKWB9YCl9ZnVuY3Rpb24gYWkoZSxuKXtjb25zdHtnZW46cixzY2hlbWE6byxkYXRhOnR9PWUse3Byb3BlcnRpZXM6cyxvcHRpb25hbFByb3BlcnRpZXM6aX09byxsPWgocyksYz1oKGkpLG09TyhsLmNvbmNhdChjKSk7bGV0IGE9IW47Zm9yKGNvbnN0IFQgb2YgbCl3KFQsc1tUXSxEKFQpKTtmb3IoY29uc3QgVCBvZiBjKXtjb25zdCBmPUQoVCk7ci5pZigoMCxuZS5hbmQpKCgwLG5lLl8pYCR7Zn0gIT09IHVuZGVmaW5lZGAsKDAsJGwuaXNPd25Qcm9wZXJ0eSkocix0LFQpKSwoKT0+dyhULGlbVF0sZikpfW8uYWRkaXRpb25hbFByb3BlcnRpZXMmJnIuZm9ySW4oImtleSIsdCxUPT5yLmlmKEMoVCxtKSwoKT0+c2koZSxULHt9LHIubGV0KCJmaXJzdCIsYSkpKSk7ZnVuY3Rpb24gaChUKXtyZXR1cm4gVD9PYmplY3Qua2V5cyhUKTpbXX1mdW5jdGlvbiBPKFQpe2lmKG4mJlQucHVzaChuKSxuZXcgU2V0KFQpLnNpemUhPT1ULmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkpURDogcHJvcGVydGllcy9vcHRpb25hbFByb3BlcnRpZXMvZGlzY2ltaW5hdG9yIG92ZXJsYXAiKTtyZXR1cm4gVH1mdW5jdGlvbiBEKFQpe3JldHVybiByLmNvbnN0KCJ2YWx1ZSIsKDAsbmUuXylgJHt0fSR7KDAsbmUuZ2V0UHJvcGVydHkpKFQpfWApfWZ1bmN0aW9uIHcoVCxmLEEpe2E/YT0hMTpyLmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuc3RyKWAsYCksci5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLnN0cilgJHtKU09OLnN0cmluZ2lmeShUKX06YCksVXIobGUoWSh7fSxlKSx7c2NoZW1hOmYsZGF0YTpBfSkpfWZ1bmN0aW9uIEMoVCxmKXtyZXR1cm4gZi5sZW5ndGg/KDAsbmUuYW5kKSguLi5mLm1hcChBPT4oMCxuZS5fKWAke1R9ICE9PSAke0F9YCkpOiEwfX1mdW5jdGlvbiB6bChlKXtjb25zdHtnZW46bixzY2hlbWE6cixkYXRhOm99PWU7c3dpdGNoKHIudHlwZSl7Y2FzZSJib29sZWFuIjpuLmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuXylgJHtvfSA/ICJ0cnVlIiA6ICJmYWxzZSJgKTticmVhaztjYXNlInN0cmluZyI6SHIoZSk7YnJlYWs7Y2FzZSJ0aW1lc3RhbXAiOm4uaWYoKDAsbmUuXylgJHtvfSBpbnN0YW5jZW9mIERhdGVgLCgpPT5uLmFkZChoZS5kZWZhdWx0Lmpzb24sKDAsbmUuXylgJyInICsgJHtvfS50b0lTT1N0cmluZygpICsgJyInYCksKCk9PkhyKGUpKTticmVhaztkZWZhdWx0OnFsKGUpfX1mdW5jdGlvbiBIcih7Z2VuOmUsZGF0YTpufSl7ZS5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLl8pYCR7KDAseGwudXNlRnVuYykoZSxGbC5kZWZhdWx0KX0oJHtufSlgKX1mdW5jdGlvbiBxbCh7Z2VuOmUsZGF0YTpufSl7ZS5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLl8pYCIiICsgJHtufWApfWZ1bmN0aW9uIFFsKGUpe2NvbnN0e2dlbjpuLHNlbGY6cixkYXRhOm8sZGVmaW5pdGlvbnM6dCxzY2hlbWE6cyxzY2hlbWFFbnY6aX09ZSx7cmVmOmx9PXMsYz10W2xdO2lmKCFjKXRocm93IG5ldyBYbC5kZWZhdWx0KHIub3B0cy51cmlSZXNvbHZlciwiIixsLGBObyBkZWZpbml0aW9uICR7bH1gKTtpZighKDAsamwuaGFzUmVmKShjKSlyZXR1cm4gVXIobGUoWSh7fSxlKSx7c2NoZW1hOmN9KSk7Y29uc3R7cm9vdDptfT1pLGE9dGkuY2FsbChyLG5ldyBvaS5TY2hlbWFFbnYoe3NjaGVtYTpjLHJvb3Q6bX0pLHQpO24uYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5fKWAke1psKG4sYSl9KCR7b30pYCl9ZnVuY3Rpb24gWmwoZSxuKXtyZXR1cm4gbi5zZXJpYWxpemU/ZS5zY29wZVZhbHVlKCJzZXJpYWxpemUiLHtyZWY6bi5zZXJpYWxpemV9KTooMCxuZS5fKWAke2Uuc2NvcGVWYWx1ZSgid3JhcHBlciIse3JlZjpufSl9LnNlcmlhbGl6ZWB9ZnVuY3Rpb24gZWMoe2dlbjplLGRhdGE6bn0pe2UuYWRkKGhlLmRlZmF1bHQuanNvbiwoMCxuZS5fKWBKU09OLnN0cmluZ2lmeSgke259KWApfWZ1bmN0aW9uIHVpKHtnZW46ZX0sbil7ZS5pZihuLCgpPT5lLmFzc2lnbihuLCExKSwoKT0+ZS5hZGQoaGUuZGVmYXVsdC5qc29uLCgwLG5lLnN0cilgLGApKX12YXIgRXQ9e30sYm49e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGJuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxibi5wYXJzZUpzb25TdHJpbmc9Ym4ucGFyc2VKc29uTnVtYmVyPWJuLnBhcnNlSnNvbj12b2lkIDA7Y29uc3QgbmM9L3Bvc2l0aW9uXHMoXGQrKSQvO2Z1bmN0aW9uIG1uKGUsbil7bGV0IHI7bW4ubWVzc2FnZT12b2lkIDA7bGV0IG87biYmKGU9ZS5zbGljZShuKSk7dHJ5e3JldHVybiBtbi5wb3NpdGlvbj1uK2UubGVuZ3RoLEpTT04ucGFyc2UoZSl9Y2F0Y2godCl7aWYobz1uYy5leGVjKHQubWVzc2FnZSksIW8pe21uLm1lc3NhZ2U9InVuZXhwZWN0ZWQgZW5kIjtyZXR1cm59cj0rb1sxXTtjb25zdCBzPWVbcl07ZT1lLnNsaWNlKDAsciksbW4ucG9zaXRpb249bityO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHttbi5tZXNzYWdlPWB1bmV4cGVjdGVkIHRva2VuICR7c31gO3JldHVybn19fWJuLnBhcnNlSnNvbj1tbixtbi5tZXNzYWdlPXZvaWQgMCxtbi5wb3NpdGlvbj0wLG1uLmNvZGU9J3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvcGFyc2VKc29uIikucGFyc2VKc29uJztmdW5jdGlvbiBwbihlLG4scil7bGV0IG89IiIsdDtpZihwbi5tZXNzYWdlPXZvaWQgMCxlW25dPT09Ii0iJiYobys9Ii0iLG4rKyksZVtuXT09PSIwIilvKz0iMCIsbisrO2Vsc2UgaWYoIXMocikpe2koKTtyZXR1cm59aWYocilyZXR1cm4gcG4ucG9zaXRpb249biwrbztpZihlW25dPT09Ii4iJiYobys9Ii4iLG4rKywhcygpKSl7aSgpO3JldHVybn1pZih0PWVbbl0sKHQ9PT0iZSJ8fHQ9PT0iRSIpJiYobys9ImUiLG4rKyx0PWVbbl0sKHQ9PT0iKyJ8fHQ9PT0iLSIpJiYobys9dCxuKyspLCFzKCkpKXtpKCk7cmV0dXJufXJldHVybiBwbi5wb3NpdGlvbj1uLCtvO2Z1bmN0aW9uIHMobCl7bGV0IGM9ITE7Zm9yKDt0PWVbbl0sdD49IjAiJiZ0PD0iOSImJihsPT09dm9pZCAwfHxsLS0gPjApOyljPSEwLG8rPXQsbisrO3JldHVybiBjfWZ1bmN0aW9uIGkoKXtwbi5wb3NpdGlvbj1uLHBuLm1lc3NhZ2U9bjxlLmxlbmd0aD9gdW5leHBlY3RlZCB0b2tlbiAke2Vbbl19YDoidW5leHBlY3RlZCBlbmQifX1ibi5wYXJzZUpzb25OdW1iZXI9cG4scG4ubWVzc2FnZT12b2lkIDAscG4ucG9zaXRpb249MCxwbi5jb2RlPSdyZXF1aXJlKCJhanYvZGlzdC9ydW50aW1lL3BhcnNlSnNvbiIpLnBhcnNlSnNvbk51bWJlcic7Y29uc3QgX2k9e2I6IlxiIixmOiJcZiIsbjpgCmAscjoiXHIiLHQ6IgkiLCciJzonIicsIi8iOiIvIiwiXFwiOiJcXCJ9LHJjPSJhIi5jaGFyQ29kZUF0KDApLG9jPSIwIi5jaGFyQ29kZUF0KDApO2Z1bmN0aW9uIEFuKGUsbil7bGV0IHI9IiIsbztmb3IoQW4ubWVzc2FnZT12b2lkIDA7bz1lW24rK10sbyE9PSciJzspaWYobz09PSJcXCIpaWYobz1lW25dLG8gaW4gX2kpcis9X2lbb10sbisrO2Vsc2UgaWYobz09PSJ1Iil7bisrO2xldCBzPTQsaT0wO2Zvcig7cy0tOyl7aWYoaTw8PTQsbz1lW25dLG89PT12b2lkIDApe3QoInVuZXhwZWN0ZWQgZW5kIik7cmV0dXJufWlmKG89by50b0xvd2VyQ2FzZSgpLG8+PSJhIiYmbzw9ImYiKWkrPW8uY2hhckNvZGVBdCgwKS1yYysxMDtlbHNlIGlmKG8+PSIwIiYmbzw9IjkiKWkrPW8uY2hhckNvZGVBdCgwKS1vYztlbHNle3QoYHVuZXhwZWN0ZWQgdG9rZW4gJHtvfWApO3JldHVybn1uKyt9cis9U3RyaW5nLmZyb21DaGFyQ29kZShpKX1lbHNle3QoYHVuZXhwZWN0ZWQgdG9rZW4gJHtvfWApO3JldHVybn1lbHNlIGlmKG89PT12b2lkIDApe3QoInVuZXhwZWN0ZWQgZW5kIik7cmV0dXJufWVsc2UgaWYoby5jaGFyQ29kZUF0KDApPj0zMilyKz1vO2Vsc2V7dChgdW5leHBlY3RlZCB0b2tlbiAke299YCk7cmV0dXJufXJldHVybiBBbi5wb3NpdGlvbj1uLHI7ZnVuY3Rpb24gdChzKXtBbi5wb3NpdGlvbj1uLEFuLm1lc3NhZ2U9c319Ym4ucGFyc2VKc29uU3RyaW5nPUFuLEFuLm1lc3NhZ2U9dm9pZCAwLEFuLnBvc2l0aW9uPTAsQW4uY29kZT0ncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS9wYXJzZUpzb24iKS5wYXJzZUpzb25TdHJpbmcnLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7Y29uc3QgdGM9QXIsbGk9UGUsTT1fZSxzYz1MbixKPU1lLGljPW9lLGFjPWtuLHVjPXR0LGZ0PWJuLGNpPUFlLF9jPW1vLGxjPXtlbGVtZW50czptYyx2YWx1ZXM6cGMsZGlzY3JpbWluYXRvcjpmYyxwcm9wZXJ0aWVzOm1pLG9wdGlvbmFsUHJvcGVydGllczptaSxlbnVtOk9jLHR5cGU6UmMscmVmOlRjfTtmdW5jdGlvbiBkaShlLG4pe2NvbnN0IHI9bGkuZ2V0Q29tcGlsaW5nU2NoZW1hLmNhbGwodGhpcyxlKTtpZihyKXJldHVybiByO2NvbnN0e2VzNTpvLGxpbmVzOnR9PXRoaXMub3B0cy5jb2RlLHtvd25Qcm9wZXJ0aWVzOnN9PXRoaXMub3B0cyxpPW5ldyBNLkNvZGVHZW4odGhpcy5zY29wZSx7ZXM1Om8sbGluZXM6dCxvd25Qcm9wZXJ0aWVzOnN9KSxsPWkuc2NvcGVOYW1lKCJwYXJzZSIpLGM9e3NlbGY6dGhpcyxnZW46aSxzY2hlbWE6ZS5zY2hlbWEsc2NoZW1hRW52OmUsZGVmaW5pdGlvbnM6bixkYXRhOkouZGVmYXVsdC5kYXRhLHBhcnNlTmFtZTpsLGNoYXI6aS5uYW1lKCJjIil9O2xldCBtO3RyeXt0aGlzLl9jb21waWxhdGlvbnMuYWRkKGUpLGUucGFyc2VOYW1lPWwsY2MoYyksaS5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7Y29uc3QgYT1pLnRvU3RyaW5nKCk7bT1gJHtpLnNjb3BlUmVmcyhKLmRlZmF1bHQuc2NvcGUpfXJldHVybiAke2F9YDtjb25zdCBPPW5ldyBGdW5jdGlvbihgJHtKLmRlZmF1bHQuc2NvcGV9YCxtKSh0aGlzLnNjb3BlLmdldCgpKTt0aGlzLnNjb3BlLnZhbHVlKGwse3JlZjpPfSksZS5wYXJzZT1PfWNhdGNoKGEpe3Rocm93IG0mJnRoaXMubG9nZ2VyLmVycm9yKCJFcnJvciBjb21waWxpbmcgcGFyc2VyLCBmdW5jdGlvbiBjb2RlOiIsbSksZGVsZXRlIGUucGFyc2UsZGVsZXRlIGUucGFyc2VOYW1lLGF9ZmluYWxseXt0aGlzLl9jb21waWxhdGlvbnMuZGVsZXRlKGUpfXJldHVybiBlfUV0LmRlZmF1bHQ9ZGk7Y29uc3QgUnQ9KDAsTS5fKWB1bmRlZmluZWRgO2Z1bmN0aW9uIGNjKGUpe2NvbnN0e2dlbjpuLHBhcnNlTmFtZTpyLGNoYXI6b309ZTtuLmZ1bmMociwoMCxNLl8pYCR7Si5kZWZhdWx0Lmpzb259LCAke0ouZGVmYXVsdC5qc29uUG9zfSwgJHtKLmRlZmF1bHQuanNvblBhcnR9YCwhMSwoKT0+e24ubGV0KEouZGVmYXVsdC5kYXRhKSxuLmxldChvKSxuLmFzc2lnbigoMCxNLl8pYCR7cn0ubWVzc2FnZWAsUnQpLG4uYXNzaWduKCgwLE0uXylgJHtyfS5wb3NpdGlvbmAsUnQpLG4uYXNzaWduKEouZGVmYXVsdC5qc29uUG9zLCgwLE0uXylgJHtKLmRlZmF1bHQuanNvblBvc30gfHwgMGApLG4uY29uc3QoSi5kZWZhdWx0Lmpzb25MZW4sKDAsTS5fKWAke0ouZGVmYXVsdC5qc29ufS5sZW5ndGhgKSxmbyhlKSxJdChlKSxuLmlmKEouZGVmYXVsdC5qc29uUGFydCwoKT0+e24uYXNzaWduKCgwLE0uXylgJHtyfS5wb3NpdGlvbmAsSi5kZWZhdWx0Lmpzb25Qb3MpLG4ucmV0dXJuKEouZGVmYXVsdC5kYXRhKX0pLG4uaWYoKDAsTS5fKWAke0ouZGVmYXVsdC5qc29uUG9zfSA9PT0gJHtKLmRlZmF1bHQuanNvbkxlbn1gLCgpPT5uLnJldHVybihKLmRlZmF1bHQuZGF0YSkpLGlyKGUpfSl9ZnVuY3Rpb24gZm8oZSl7bGV0IG47Zm9yKGNvbnN0IHIgb2YgdGMuanRkRm9ybXMpaWYociBpbiBlLnNjaGVtYSl7bj1yO2JyZWFrfW4/aGMoZSxsY1tuXSk6TnQoZSl9Y29uc3QgZGM9UmkoITAsUmkoITEsaXIpKTtmdW5jdGlvbiBoYyhlLG4pe2NvbnN0e2dlbjpyLHNjaGVtYTpvLGRhdGE6dH09ZTtpZighby5udWxsYWJsZSlyZXR1cm4gbihlKTt2cihlLCJudWxsIixuLCgpPT5yLmFzc2lnbih0LG51bGwpKX1mdW5jdGlvbiBtYyhlKXtjb25zdHtnZW46bixzY2hlbWE6cixkYXRhOm99PWU7ZW4oZSwiWyIpO2NvbnN0IHQ9bi5sZXQoImkiLDApO24uYXNzaWduKG8sKDAsTS5fKWBbXWApLE90KGUsIl0iLCgpPT57Y29uc3Qgcz1uLmxldCgiZWwiKTtmbyhsZShZKHt9LGUpLHtzY2hlbWE6ci5lbGVtZW50cyxkYXRhOnN9KSksbi5hc3NpZ24oKDAsTS5fKWAke299WyR7dH0rK11gLHMpfSl9ZnVuY3Rpb24gcGMoZSl7Y29uc3R7Z2VuOm4sc2NoZW1hOnIsZGF0YTpvfT1lO2VuKGUsInsiKSxuLmFzc2lnbihvLCgwLE0uXylge31gKSxPdChlLCJ9IiwoKT0+RWMoZSxyLnZhbHVlcykpfWZ1bmN0aW9uIE90KGUsbixyKXtoaShlLG4sciksZW4oZSxuKX1mdW5jdGlvbiBoaShlLG4scil7Y29uc3R7Z2VuOm99PWU7by5mb3IoKDAsTS5fKWA7JHtKLmRlZmF1bHQuanNvblBvc308JHtKLmRlZmF1bHQuanNvbkxlbn0gJiYgJHtSbygxKX0hPT0ke259O2AsKCk9PntyKCksdnIoZSwiLCIsKCk9Pm8uYnJlYWsoKSx0KX0pO2Z1bmN0aW9uIHQoKXt2cihlLG4sKCk9Pnt9LGlyKX19ZnVuY3Rpb24gRWMoZSxuKXtjb25zdHtnZW46cn09ZSxvPXIubGV0KCJrZXkiKTskbihsZShZKHt9LGUpLHtkYXRhOm99KSksZW4oZSwiOiIpLGZpKGUsbyxuKX1mdW5jdGlvbiBmYyhlKXtjb25zdHtnZW46bixkYXRhOnIsc2NoZW1hOm99PWUse2Rpc2NyaW1pbmF0b3I6dCxtYXBwaW5nOnN9PW87ZW4oZSwieyIpLG4uYXNzaWduKHIsKDAsTS5fKWB7fWApO2NvbnN0IGk9bi5jb25zdCgicG9zIixKLmRlZmF1bHQuanNvblBvcyksbD1uLmxldCgidmFsdWUiKSxjPW4ubGV0KCJ0YWciKTtoaShlLCJ9IiwoKT0+e2NvbnN0IG09bi5sZXQoImtleSIpOyRuKGxlKFkoe30sZSkse2RhdGE6bX0pKSxlbihlLCI6Iiksbi5pZigoMCxNLl8pYCR7bX0gPT09ICR7dH1gLCgpPT57JG4obGUoWSh7fSxlKSx7ZGF0YTpjfSkpLG4uYXNzaWduKCgwLE0uXylgJHtyfVske219XWAsYyksbi5icmVhaygpfSwoKT0+TnQobGUoWSh7fSxlKSx7ZGF0YTpsfSkpKX0pLG4uYXNzaWduKEouZGVmYXVsdC5qc29uUG9zLGkpLG4uaWYoKDAsTS5fKWAke2N9ID09PSB1bmRlZmluZWRgKSxFbihlLCgwLE0uc3RyKWBkaXNjcmltaW5hdG9yIHRhZyBub3QgZm91bmRgKTtmb3IoY29uc3QgbSBpbiBzKW4uZWxzZUlmKCgwLE0uXylgJHtjfSA9PT0gJHttfWApLHBpKGxlKFkoe30sZSkse3NjaGVtYTpzW21dfSksdCk7bi5lbHNlKCksRW4oZSwoMCxNLnN0cilgZGlzY3JpbWluYXRvciB2YWx1ZSBub3QgaW4gc2NoZW1hYCksbi5lbmRJZigpfWZ1bmN0aW9uIG1pKGUpe2NvbnN0e2dlbjpuLGRhdGE6cn09ZTtlbihlLCJ7Iiksbi5hc3NpZ24ociwoMCxNLl8pYHt9YCkscGkoZSl9ZnVuY3Rpb24gcGkoZSxuKXtjb25zdHtnZW46cixzY2hlbWE6byxkYXRhOnR9PWUse3Byb3BlcnRpZXM6cyxvcHRpb25hbFByb3BlcnRpZXM6aSxhZGRpdGlvbmFsUHJvcGVydGllczpsfT1vO2lmKE90KGUsIn0iLCgpPT57Y29uc3QgYz1yLmxldCgia2V5Iik7aWYoJG4obGUoWSh7fSxlKSx7ZGF0YTpjfSkpLGVuKGUsIjoiKSxyLmlmKCExKSxFaShlLGMscyksRWkoZSxjLGkpLG4pe3IuZWxzZUlmKCgwLE0uXylgJHtjfSA9PT0gJHtufWApO2NvbnN0IG09ci5sZXQoInRhZyIpOyRuKGxlKFkoe30sZSkse2RhdGE6bX0pKX1yLmVsc2UoKSxsP050KGxlKFkoe30sZSkse2RhdGE6KDAsTS5fKWAke3R9WyR7Y31dYH0pKTpFbihlLCgwLE0uc3RyKWBwcm9wZXJ0eSAke2N9IG5vdCBhbGxvd2VkYCksci5lbmRJZigpfSkscyl7Y29uc3QgYz0oMCxpYy5oYXNQcm9wRnVuYykociksbT0oMCxNLmFuZCkoLi4uT2JqZWN0LmtleXMocykubWFwKGE9PigwLE0uXylgJHtjfS5jYWxsKCR7dH0sICR7YX0pYCkpO3IuaWYoKDAsTS5ub3QpKG0pLCgpPT5FbihlLCgwLE0uc3RyKWBtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnRpZXNgKSl9fWZ1bmN0aW9uIEVpKGUsbixyPXt9KXtjb25zdHtnZW46b309ZTtmb3IoY29uc3QgdCBpbiByKW8uZWxzZUlmKCgwLE0uXylgJHtufSA9PT0gJHt0fWApLGZpKGUsbixyW3RdKX1mdW5jdGlvbiBmaShlLG4scil7Zm8obGUoWSh7fSxlKSx7c2NoZW1hOnIsZGF0YTooMCxNLl8pYCR7ZS5kYXRhfVske259XWB9KSl9ZnVuY3Rpb24gUmMoZSl7Y29uc3R7Z2VuOm4sc2NoZW1hOnIsZGF0YTpvLHNlbGY6dH09ZTtzd2l0Y2goci50eXBlKXtjYXNlImJvb2xlYW4iOmRjKGUpO2JyZWFrO2Nhc2Uic3RyaW5nIjokbihlKTticmVhaztjYXNlInRpbWVzdGFtcCI6eyRuKGUpO2NvbnN0IHM9KDAsY2kudXNlRnVuYykobixfYy5kZWZhdWx0KSx7YWxsb3dEYXRlOmkscGFyc2VEYXRlOmx9PXQub3B0cyxjPWk/KDAsTS5fKWAhJHtzfSgke299LCB0cnVlKWA6KDAsTS5fKWAhJHtzfSgke299KWAsbT1sPygwLE0ub3IpKGMsKDAsTS5fKWAoJHtvfSA9IG5ldyBEYXRlKCR7b30pLCBmYWxzZSlgLCgwLE0uXylgaXNOYU4oJHtvfS52YWx1ZU9mKCkpYCk6YztuLmlmKG0sKCk9PkVuKGUsKDAsTS5zdHIpYGludmFsaWQgdGltZXN0YW1wYCkpO2JyZWFrfWNhc2UiZmxvYXQzMiI6Y2FzZSJmbG9hdDY0IjpUdChlKTticmVhaztkZWZhdWx0Ontjb25zdCBzPXIudHlwZTtpZighdC5vcHRzLmludDMycmFuZ2UmJihzPT09ImludDMyInx8cz09PSJ1aW50MzIiKSlUdChlLDE2KSxzPT09InVpbnQzMiImJm4uaWYoKDAsTS5fKWAke299IDwgMGAsKCk9PkVuKGUsKDAsTS5zdHIpYGludGVnZXIgb3V0IG9mIHJhbmdlYCkpO2Vsc2V7Y29uc3RbaSxsLGNdPXVjLmludFJhbmdlW3NdO1R0KGUsYyksbi5pZigoMCxNLl8pYCR7b30gPCAke2l9IHx8ICR7b30gPiAke2x9YCwoKT0+RW4oZSwoMCxNLnN0cilgaW50ZWdlciBvdXQgb2YgcmFuZ2VgKSl9fX19ZnVuY3Rpb24gJG4oZSl7ZW4oZSwnIicpLGd0KGUsZnQucGFyc2VKc29uU3RyaW5nKX1mdW5jdGlvbiBPYyhlKXtjb25zdHtnZW46bixkYXRhOnIsc2NoZW1hOm99PWUsdD1vLmVudW07ZW4oZSwnIicpLG4uaWYoITEpO2Zvcihjb25zdCBzIG9mIHQpe2NvbnN0IGk9SlNPTi5zdHJpbmdpZnkocykuc2xpY2UoMSk7bi5lbHNlSWYoKDAsTS5fKWAke1JvKGkubGVuZ3RoKX0gPT09ICR7aX1gKSxuLmFzc2lnbihyLCgwLE0uc3RyKWAke3N9YCksbi5hZGQoSi5kZWZhdWx0Lmpzb25Qb3MsaS5sZW5ndGgpfW4uZWxzZSgpLGlyKGUpLG4uZW5kSWYoKX1mdW5jdGlvbiBUdChlLG4pe2NvbnN0e2dlbjpyfT1lO0l0KGUpLHIuaWYoKDAsTS5fKWAiLTAxMjM0NTY3ODkiLmluZGV4T2YoJHtSbygxKX0pIDwgMGAsKCk9PmlyKGUpLCgpPT5ndChlLGZ0LnBhcnNlSnNvbk51bWJlcixuKSl9ZnVuY3Rpb24gUmkoZSxuKXtyZXR1cm4gcj0+e2NvbnN0e2dlbjpvLGRhdGE6dH09cjt2cihyLGAke2V9YCwoKT0+bihyKSwoKT0+by5hc3NpZ24odCxlKSl9fWZ1bmN0aW9uIFRjKGUpe2NvbnN0e2dlbjpuLHNlbGY6cixkZWZpbml0aW9uczpvLHNjaGVtYTp0LHNjaGVtYUVudjpzfT1lLHtyZWY6aX09dCxsPW9baV07aWYoIWwpdGhyb3cgbmV3IHNjLmRlZmF1bHQoci5vcHRzLnVyaVJlc29sdmVyLCIiLGksYE5vIGRlZmluaXRpb24gJHtpfWApO2lmKCEoMCxhYy5oYXNSZWYpKGwpKXJldHVybiBmbyhsZShZKHt9LGUpLHtzY2hlbWE6bH0pKTtjb25zdHtyb290OmN9PXMsbT1kaS5jYWxsKHIsbmV3IGxpLlNjaGVtYUVudih7c2NoZW1hOmwscm9vdDpjfSksbyk7T2koZSxOYyhuLG0pLCEwKX1mdW5jdGlvbiBOYyhlLG4pe3JldHVybiBuLnBhcnNlP2Uuc2NvcGVWYWx1ZSgicGFyc2UiLHtyZWY6bi5wYXJzZX0pOigwLE0uXylgJHtlLnNjb3BlVmFsdWUoIndyYXBwZXIiLHtyZWY6bn0pfS5wYXJzZWB9ZnVuY3Rpb24gTnQoZSl7Z3QoZSxmdC5wYXJzZUpzb24pfWZ1bmN0aW9uIGd0KGUsbixyKXtPaShlLCgwLGNpLnVzZUZ1bmMpKGUuZ2VuLG4pLHIpfWZ1bmN0aW9uIE9pKGUsbixyKXtjb25zdHtnZW46byxkYXRhOnR9PWU7by5hc3NpZ24odCwoMCxNLl8pYCR7bn0oJHtKLmRlZmF1bHQuanNvbn0sICR7Si5kZWZhdWx0Lmpzb25Qb3N9JHtyPygwLE0uXylgLCAke3J9YDpNLm5pbH0pYCksby5hc3NpZ24oSi5kZWZhdWx0Lmpzb25Qb3MsKDAsTS5fKWAke259LnBvc2l0aW9uYCksby5pZigoMCxNLl8pYCR7dH0gPT09IHVuZGVmaW5lZGAsKCk9PkVuKGUsKDAsTS5fKWAke259Lm1lc3NhZ2VgKSl9ZnVuY3Rpb24gZW4oZSxuKXt2cihlLG4saXIpfWZ1bmN0aW9uIHZyKGUsbixyLG8pe2NvbnN0e2dlbjp0fT1lLHM9bi5sZW5ndGg7SXQoZSksdC5pZigoMCxNLl8pYCR7Um8ocyl9ID09PSAke259YCwoKT0+e3QuYWRkKEouZGVmYXVsdC5qc29uUG9zLHMpLG89PW51bGx8fG8oZSl9LCgpPT5yKGUpKX1mdW5jdGlvbiBJdCh7Z2VuOmUsY2hhcjpufSl7ZS5jb2RlKCgwLE0uXylgd2hpbGUoKCR7bn09JHtKLmRlZmF1bHQuanNvbn1bJHtKLmRlZmF1bHQuanNvblBvc31dLCR7bn09PT0iICJ8fCR7bn09PT0iXFxuInx8JHtufT09PSJcXHIifHwke259PT09IlxcdCIpKSR7Si5kZWZhdWx0Lmpzb25Qb3N9Kys7YCl9ZnVuY3Rpb24gUm8oZSl7cmV0dXJuIGU9PT0xPygwLE0uXylgJHtKLmRlZmF1bHQuanNvbn1bJHtKLmRlZmF1bHQuanNvblBvc31dYDooMCxNLl8pYCR7Si5kZWZhdWx0Lmpzb259LnNsaWNlKCR7Si5kZWZhdWx0Lmpzb25Qb3N9LCAke0ouZGVmYXVsdC5qc29uUG9zfSske2V9KWB9ZnVuY3Rpb24gaXIoZSl7RW4oZSwoMCxNLl8pYCJ1bmV4cGVjdGVkIHRva2VuICIgKyAke0ouZGVmYXVsdC5qc29ufVske0ouZGVmYXVsdC5qc29uUG9zfV1gKX1mdW5jdGlvbiBFbih7Z2VuOmUscGFyc2VOYW1lOm59LHIpe2UuYXNzaWduKCgwLE0uXylgJHtufS5tZXNzYWdlYCxyKSxlLmFzc2lnbigoMCxNLl8pYCR7bn0ucG9zaXRpb25gLEouZGVmYXVsdC5qc29uUG9zKSxlLnJldHVybihSdCl9KGZ1bmN0aW9uKGUsbil7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uQ29kZUdlbj1uLk5hbWU9bi5uaWw9bi5zdHJpbmdpZnk9bi5zdHI9bi5fPW4uS2V5d29yZEN4dD12b2lkIDA7Y29uc3Qgcj1vcyxvPXJ0LHQ9ZHQscz1odCxpPUV0LGw9IkpURC1tZXRhLXNjaGVtYSI7Y2xhc3MgYyBleHRlbmRzIHIuZGVmYXVsdHtjb25zdHJ1Y3RvcihPPXt9KXtzdXBlcihsZShZKHt9LE8pLHtqdGQ6ITB9KSl9X2FkZFZvY2FidWxhcmllcygpe3N1cGVyLl9hZGRWb2NhYnVsYXJpZXMoKSx0aGlzLmFkZFZvY2FidWxhcnkoby5kZWZhdWx0KX1fYWRkRGVmYXVsdE1ldGFTY2hlbWEoKXtzdXBlci5fYWRkRGVmYXVsdE1ldGFTY2hlbWEoKSx0aGlzLm9wdHMubWV0YSYmdGhpcy5hZGRNZXRhU2NoZW1hKHQuZGVmYXVsdCxsLCExKX1kZWZhdWx0TWV0YSgpe3JldHVybiB0aGlzLm9wdHMuZGVmYXVsdE1ldGE9c3VwZXIuZGVmYXVsdE1ldGEoKXx8KHRoaXMuZ2V0U2NoZW1hKGwpP2w6dm9pZCAwKX1jb21waWxlU2VyaWFsaXplcihPKXtjb25zdCBEPXRoaXMuX2FkZFNjaGVtYShPKTtyZXR1cm4gRC5zZXJpYWxpemV8fHRoaXMuX2NvbXBpbGVTZXJpYWxpemVyKEQpfWNvbXBpbGVQYXJzZXIoTyl7Y29uc3QgRD10aGlzLl9hZGRTY2hlbWEoTyk7cmV0dXJuIEQucGFyc2V8fHRoaXMuX2NvbXBpbGVQYXJzZXIoRCl9X2NvbXBpbGVTZXJpYWxpemVyKE8pe2lmKHMuZGVmYXVsdC5jYWxsKHRoaXMsTyxPLnNjaGVtYS5kZWZpbml0aW9uc3x8e30pLCFPLnNlcmlhbGl6ZSl0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpO3JldHVybiBPLnNlcmlhbGl6ZX1fY29tcGlsZVBhcnNlcihPKXtpZihpLmRlZmF1bHQuY2FsbCh0aGlzLE8sTy5zY2hlbWEuZGVmaW5pdGlvbnN8fHt9KSwhTy5wYXJzZSl0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpO3JldHVybiBPLnBhcnNlfX1lLmV4cG9ydHM9bj1jLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxuLmRlZmF1bHQ9Yzt2YXIgbT16ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiS2V5d29yZEN4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG0uS2V5d29yZEN4dH19KTt2YXIgYT1fZTtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiXyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuX319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwic3RyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5zdHJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInN0cmluZ2lmeSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuc3RyaW5naWZ5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJuaWwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhLm5pbH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiTmFtZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuTmFtZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiQ29kZUdlbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuQ29kZUdlbn19KX0pKGpvLGpvLmV4cG9ydHMpO3ZhciBnYz1lZSYmZWUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShHbiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksR24uVmFsaWRhdGU9R24uQWRkU2NoZW1hPXZvaWQgMDtjb25zdCBJYz1nYyhqby5leHBvcnRzKSxUaT1uZXcgSWMuZGVmYXVsdCxiYz0oZSxuKT0+ZShuKT9udWxsOmUuZXJyb3JzO2Z1bmN0aW9uIEFjKGUsbil7VGkuYWRkU2NoZW1hKG4sZSl9R24uQWRkU2NoZW1hPUFjO2Z1bmN0aW9uIFVjKGUsbil7Y29uc3Qgcj1UaS5nZXRTY2hlbWEoZSk7aWYocilyZXR1cm4gYmMocixuKX1Hbi5WYWxpZGF0ZT1VYyxPYmplY3QuZGVmaW5lUHJvcGVydHkob28sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG9vLlNUU09wdGlvbnNCYXNlPXZvaWQgMDtjb25zdCBIYz1HbjtjbGFzcyB2Y3tjb25zdHJ1Y3RvcihuPW51bGwpe1JyKHRoaXMsIl9vcHRpb25zIik7dGhpcy5fb3B0aW9ucz1uLG4hPT1udWxsJiYodHlwZW9mIG4udmFsaWRhdG9yPT0idW5kZWZpbmVkInx8KDAsSGMuVmFsaWRhdGUpKG4udmFsaWRhdG9yLG4pKX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9vcHRpb25zfX1vby5TVFNPcHRpb25zQmFzZT12Yzt2YXIgYXI9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGFyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhci5KZXN0U2xlZXA9YXIuU2xlZXA9dm9pZCAwO2FzeW5jIGZ1bmN0aW9uIE5pKGU9MWUzKXtyZXR1cm4gbmV3IFByb21pc2Uobj0+c2V0VGltZW91dChuLGUpKX1hci5TbGVlcD1OaTthc3luYyBmdW5jdGlvbiBEYygpe3JldHVybiBOaSgxMDApfWFyLkplc3RTbGVlcD1EYzt2YXIgZ2k9e307KGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNvbXBhcmVQYXJhbWV0ZXJUeXBlcz1lLk9BdXRoMlBhcmFtZXRlckVycm9yVHlwZT1lLk9JRENBZGRyZXNzQ2xhaW09ZS5PSURDU3RhbmRhcmRDbGFpbT1lLk9BdXRoMlBhcmFtZXRlclR5cGU9dm9pZCAwLGZ1bmN0aW9uKG8pe28uQVVESUVOQ0U9IkFVRElFTkNFIixvLkNMSUVOVF9JRD0iY2xpZW50X2lkIixvLkNMSUVOVF9TRUNSRVQ9ImNsaWVudF9zZWNyZXQiLG8uUkVTUE9OU0VfVFlQRT0icmVzcG9uc2VfdHlwZSIsby5TQ09QRT0ic2NvcGUiLG8uU1RBVEU9InN0YXRlIixvLlJFRElSRUNUX1VSST0icmVkaXJlY3RfdXJpIixvLkVSUk9SPSJlcnJvciIsby5FUlJPUl9ERVNDUklQVElPTj0iZXJyb3JfZGVzY3JpcHRpb24iLG8uRVJST1JfQ09ERVM9ImVycm9yX2NvZGVzIixvLkVSUk9SX1VSST0iZXJyb3JfdXJpIixvLkdSQU5UX1RZUEU9ImdyYW50X3R5cGUiLG8uQ09ERT0iY29kZSIsby5BQ0NFU1NfVE9LRU49ImFjY2Vzc190b2tlbiIsby5UT0tFTl9UWVBFPSJ0b2tlbl90eXBlIixvLkVYUElSRVNfSU49ImV4cGlyZXNfaW4iLG8uVVNFUk5BTUU9InVzZXJuYW1lIixvLlBBU1NXT1JEPSJwYXNzd29yZCIsby5SRUZSRVNIX1RPS0VOPSJyZWZyZXNoX3Rva2VuIixvLlJFU1BPTlNFX01PREU9InJlc3BvbnNlX21vZGUiLG8uVElNRVNUQU1QPSJ0aW1lc3RhbXAiLG8uVFJBQ0VfSUQ9InRyYWNlX2lkIixvLkNPUlJFTEFUSU9OX0lEPSJjb3JyZWxhdGlvbl9pZCJ9KGUuT0F1dGgyUGFyYW1ldGVyVHlwZXx8KGUuT0F1dGgyUGFyYW1ldGVyVHlwZT17fSkpLGZ1bmN0aW9uKG8pe28uU1VCPSJzdWIiLG8uTkFNRT0ibmFtZSIsby5HSVZFTl9OQU1FPSJnaXZlbl9uYW1lIixvLkZBTUlMWV9OQU1FPSJmYW1pbHlfbmFtZSIsby5NSURETEVfTkFNRT0ibWlkZGxlX25hbWUiLG8uTklDS05BTUU9Im5pY2tuYW1lIixvLlBSRUZFUlJFRF9VU0VSTkFNRT0icHJlZmVycmVkX3VzZXJuYW1lIixvLlBST0ZJTEU9InByb2ZpbGUiLG8uUElDVFVSRT0icGljdHVyZSIsby5XRUJTSVRFPSJ3ZWJzaXRlIixvLkVNQUlMPSJlbWFpbCIsby5FTUFJTF9WRVJJRklFRD0iZW1haWxfdmVyaWZpZWQiLG8uR0VOREVSPSJnZW5kZXIiLG8uQklSVEhEQVRFPSJiaXJ0aGRhdGUiLG8uWk9ORUlORk89InpvbmVpbmZvIixvLkxPQ0FMRT0ibG9jYWxlIixvLlBIT05FX05VTUJFUj0icGhvbmVfbnVtYmVyIixvLlBIT05FX05VTUJFUl9WRVJJRklFRD0icGhvbmVfbnVtYmVyX3ZlcmlmaWVkIixvLkFERFJFU1M9ImFkZHJlc3MiLG8uQ0xJRU5UX1NFQ1JFVD0iY2xpZW50X3NlY3JldCIsby5OT05DRT0ibm9uY2UifShlLk9JRENTdGFuZGFyZENsYWltfHwoZS5PSURDU3RhbmRhcmRDbGFpbT17fSkpLGZ1bmN0aW9uKG8pe28uRk9STUFUVEVEPSJmb3JtYXR0ZWQiLG8uU1RSRUVUX0FERFJFU1M9InN0cmVldF9hZGRyZXNzIixvLkxPQ0FMSVRZPSJsb2NhbGl0eSIsby5SRUdJT049InJlZ2lvbiIsby5DT1VOVFJZPSJjb3VudHJ5In0oZS5PSURDQWRkcmVzc0NsYWltfHwoZS5PSURDQWRkcmVzc0NsYWltPXt9KSk7Y2xhc3Mgbnt9UnIobiwiTk9UX0VRVUFMIix7Y29kZToiU1RTX09BVVRIMl9FUlJfMDAwMSIsZGVzY3JpcHRpb246IlBhcmFtZXRlciB2YWx1ZXMgbm90IGVxdWFsLiJ9KSxScihuLCJOT1RfUFJFU0VOVCIse2NvZGU6IlNUU19PQVVUSDJfRVJSXzAwMDIiLGRlc2NyaXB0aW9uOiJQYXJhbWV0ZXIgbm90IHByb3ZpZGVkLiJ9KSxScihuLCJJTlZBTElEX0ZPUk1BVCIse2NvZGU6IlNUU19PQVVUSDJfRVJSXzAwMDMiLGRlc2NyaXB0aW9uOiJQYXJhbWV0ZXIgdmFsdWUgZm9ybWF0IGludmFsaWQuIn0pLFJyKG4sIkVYUElSRUQiLHtjb2RlOiJTVFNfT0FVVEgyX0VSUl8wMDA0IixkZXNjcmlwdGlvbjoiUGFyYW1ldGVyIHZhbHVlIGV4cGlyZWQuIn0pLGUuT0F1dGgyUGFyYW1ldGVyRXJyb3JUeXBlPW47ZnVuY3Rpb24gcihvLHQscyl7Y29uc3QgaT1bXTtmb3IobGV0IGw9MDtsPHMubGVuZ3RoO2wrKyl7Y29uc3QgYz1zW2xdO2lmKG9bbF0ubG9jYWxlQ29tcGFyZSh0W2xdKSE9PTApe2NvbnN0IG09e2Vycm9yOm4uTk9UX0VRVUFMLmNvZGUsZXJyb3JfZGVzY3JpcHRpb246bi5OT1RfRVFVQUwuZGVzY3JpcHRpb24sdGltZXN0YW1wOkRhdGUubm93KCksZGV0YWlsczpgJHtuLk5PVF9FUVVBTC5kZXNjcmlwdGlvbn06IFBhcmFtZXRlcjogWyR7Y31dYH07aS5wdXNoKG0pfX1yZXR1cm4gaX1lLmNvbXBhcmVQYXJhbWV0ZXJUeXBlcz1yfSkoZ2kpLGZ1bmN0aW9uKGUpe3ZhciBuPWVlJiZlZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHQscyxpLGwpe2w9PT12b2lkIDAmJihsPWkpO3ZhciBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocyxpKTsoIWN8fCgiZ2V0ImluIGM/IXMuX19lc01vZHVsZTpjLndyaXRhYmxlfHxjLmNvbmZpZ3VyYWJsZSkpJiYoYz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc1tpXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxsLGMpfTpmdW5jdGlvbih0LHMsaSxsKXtsPT09dm9pZCAwJiYobD1pKSx0W2xdPXNbaV19KSxyPWVlJiZlZS5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKHQscyl7Zm9yKHZhciBpIGluIHQpaSE9PSJkZWZhdWx0IiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLGkpJiZuKHMsdCxpKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuJHN0c2dkZj1lLiRzdHNnZD12b2lkIDAscihybyxlKSxyKG9vLGUpLHIoYXIsZSkscihHbixlKSxyKGdpLGUpLGUuJHN0c2dkPXt9O2Z1bmN0aW9uIG8oKXtyZXR1cm4gZS4kc3RzZ2R9ZS4kc3RzZ2RmPW99KHduKTtjbGFzcyBTY3tjb25zdHJ1Y3Rvcigpe3RoaXMuRGlnZXN0TWVzc2FnZT1hc3luYyBmdW5jdGlvbihuKXtjb25zdCBvPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShuKSx0PWF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2IixvKSxzPUFycmF5LmZyb20obmV3IFVpbnQ4QXJyYXkodCkpO3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucykpfSx0aGlzLkNyZWF0ZVJhbmRvbVN0cmluZz0obj00Myk9Pntjb25zdCByPUFycmF5LmZyb20oY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheShuKSkpO3JldHVybiBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucikpfSx0aGlzLkNyZWF0ZVJhbmRvbVN0cmluZ0V4PSgpPT57Y29uc3Qgbj0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXotX34uIjtsZXQgcj0iIjtyZXR1cm4gQXJyYXkuZnJvbShjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDQzKSkpLmZvckVhY2godD0+cis9blt0JW4ubGVuZ3RoXSkscn19fWNsYXNzIFBje2NvbnN0cnVjdG9yKCl7dGhpcy5EZWNvZGVRdWVyeVBhcmFtcz1uPT57Y29uc3Qgcj17fTtyZXR1cm4gT2JqZWN0LmtleXMobikuZmlsdGVyKG89PnR5cGVvZiBuW29dIT0idW5kZWZpbmVkIikubWFwKG89PntyW2RlY29kZVVSSUNvbXBvbmVudChvKV09ZGVjb2RlVVJJQ29tcG9uZW50KG5bb10pfSkscn0sdGhpcy5DcmVhdGVRdWVyeVBhcmFtcz1uPT5PYmplY3Qua2V5cyhuKS5maWx0ZXIocj0+dHlwZW9mIG5bcl0hPSJ1bmRlZmluZWQiKS5tYXAocj0+QXJyYXkuaXNBcnJheShuW3JdKT9lbmNvZGVVUklDb21wb25lbnQocikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChuW3JdLmpvaW4oIiAiKSk6ZW5jb2RlVVJJQ29tcG9uZW50KHIpKyI9IitlbmNvZGVVUklDb21wb25lbnQobltyXSkpLmpvaW4oIiYiKSx0aGlzLl9HZXRRdWVyeVBhcmFtcz1uPT57bGV0IHI9e307Y29uc3Qgbz1uLnNwbGl0KCI/Iik7aWYoby5sZW5ndGg9PTIpe2NvbnN0IHQ9b1sxXS5zcGxpdCgiJiIpLHM9e307bGV0IGk9IiI7dC5mb3JFYWNoKGZ1bmN0aW9uKGwpe2k9bC5zcGxpdCgiPSIpLGkubGVuZ3RoPT0yJiYoc1tpWzBdXT1pWzFdKX0pLHI9dGhpcy5EZWNvZGVRdWVyeVBhcmFtcyhzKX1yZXR1cm4gcn0sdGhpcy5HZXRRdWVyeVBhcmFtcz0oKT0+dGhpcy5fR2V0UXVlcnlQYXJhbXMod2luZG93LmxvY2F0aW9uLmhyZWYpfX1mdW5jdGlvbiBidChlKXt0aGlzLm1lc3NhZ2U9ZX1idC5wcm90b3R5cGU9bmV3IEVycm9yLGJ0LnByb3RvdHlwZS5uYW1lPSJJbnZhbGlkQ2hhcmFjdGVyRXJyb3IiO3ZhciBJaT10eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIiYmd2luZG93LmF0b2ImJndpbmRvdy5hdG9iLmJpbmQod2luZG93KXx8ZnVuY3Rpb24oZSl7dmFyIG49U3RyaW5nKGUpLnJlcGxhY2UoLz0rJC8sIiIpO2lmKG4ubGVuZ3RoJTQ9PTEpdGhyb3cgbmV3IGJ0KCInYXRvYicgZmFpbGVkOiBUaGUgc3RyaW5nIHRvIGJlIGRlY29kZWQgaXMgbm90IGNvcnJlY3RseSBlbmNvZGVkLiIpO2Zvcih2YXIgcixvLHQ9MCxzPTAsaT0iIjtvPW4uY2hhckF0KHMrKyk7fm8mJihyPXQlND82NCpyK286byx0KyslNCk/aSs9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmcj4+KC0yKnQmNikpOjApbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmluZGV4T2Yobyk7cmV0dXJuIGl9O2Z1bmN0aW9uIHdjKGUpe3ZhciBuPWUucmVwbGFjZSgvLS9nLCIrIikucmVwbGFjZSgvXy9nLCIvIik7c3dpdGNoKG4ubGVuZ3RoJTQpe2Nhc2UgMDpicmVhaztjYXNlIDI6bis9Ij09IjticmVhaztjYXNlIDM6bis9Ij0iO2JyZWFrO2RlZmF1bHQ6dGhyb3ciSWxsZWdhbCBiYXNlNjR1cmwgc3RyaW5nISJ9dHJ5e3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KElpKHIpLnJlcGxhY2UoLyguKS9nLGZ1bmN0aW9uKG8sdCl7dmFyIHM9dC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBzLmxlbmd0aDwyJiYocz0iMCIrcyksIiUiK3N9KSl9KG4pfWNhdGNoe3JldHVybiBJaShuKX19ZnVuY3Rpb24gT28oZSl7dGhpcy5tZXNzYWdlPWV9ZnVuY3Rpb24gR2MoZSxuKXtpZih0eXBlb2YgZSE9InN0cmluZyIpdGhyb3cgbmV3IE9vKCJJbnZhbGlkIHRva2VuIHNwZWNpZmllZCIpO3ZhciByPShuPW58fHt9KS5oZWFkZXI9PT0hMD8wOjE7dHJ5e3JldHVybiBKU09OLnBhcnNlKHdjKGUuc3BsaXQoIi4iKVtyXSkpfWNhdGNoKG8pe3Rocm93IG5ldyBPbygiSW52YWxpZCB0b2tlbiBzcGVjaWZpZWQ6ICIrby5tZXNzYWdlKX19T28ucHJvdG90eXBlPW5ldyBFcnJvcixPby5wcm90b3R5cGUubmFtZT0iSW52YWxpZFRva2VuRXJyb3IiO3ZhciBEcj1lZSYmZWUuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIERyPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgbixyPTEsbz1hcmd1bWVudHMubGVuZ3RoO3I8bztyKyspe249YXJndW1lbnRzW3JdO2Zvcih2YXIgdCBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHQpJiYoZVt0XT1uW3RdKX1yZXR1cm4gZX0sRHIuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBTcihlLG4pe2lmKCFuKXJldHVybiIiO3ZhciByPSI7ICIrZTtyZXR1cm4gbj09PSEwP3I6cisiPSIrbn1mdW5jdGlvbiBDYyhlKXtpZih0eXBlb2YgZS5leHBpcmVzPT0ibnVtYmVyIil7dmFyIG49bmV3IERhdGU7bi5zZXRNaWxsaXNlY29uZHMobi5nZXRNaWxsaXNlY29uZHMoKStlLmV4cGlyZXMqODY0ZTUpLGUuZXhwaXJlcz1ufXJldHVybiBTcigiRXhwaXJlcyIsZS5leHBpcmVzP2UuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiKStTcigiRG9tYWluIixlLmRvbWFpbikrU3IoIlBhdGgiLGUucGF0aCkrU3IoIlNlY3VyZSIsZS5zZWN1cmUpK1NyKCJTYW1lU2l0ZSIsZS5zYW1lU2l0ZSl9ZnVuY3Rpb24geWMoZSxuLHIpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnw1RXw2MHw3QykvZyxkZWNvZGVVUklDb21wb25lbnQpLnJlcGxhY2UoL1woL2csIiUyOCIpLnJlcGxhY2UoL1wpL2csIiUyOSIpKyI9IitlbmNvZGVVUklDb21wb25lbnQobikucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnwzQXwzQ3wzRXwzRHwyRnwzRnw0MHw1Qnw1RHw1RXw2MHw3Qnw3RHw3QykvZyxkZWNvZGVVUklDb21wb25lbnQpK0NjKHIpfWZ1bmN0aW9uIExjKGUpe2Zvcih2YXIgbj17fSxyPWU/ZS5zcGxpdCgiOyAiKTpbXSxvPS8oJVtcZEEtRl17Mn0pKy9naSx0PTA7dDxyLmxlbmd0aDt0Kyspe3ZhciBzPXJbdF0uc3BsaXQoIj0iKSxpPXMuc2xpY2UoMSkuam9pbigiPSIpO2kuY2hhckF0KDApPT09JyInJiYoaT1pLnNsaWNlKDEsLTEpKTt0cnl7dmFyIGw9c1swXS5yZXBsYWNlKG8sZGVjb2RlVVJJQ29tcG9uZW50KTtuW2xdPWkucmVwbGFjZShvLGRlY29kZVVSSUNvbXBvbmVudCl9Y2F0Y2h7fX1yZXR1cm4gbn1mdW5jdGlvbiBCYygpe3JldHVybiBMYyhkb2N1bWVudC5jb29raWUpfWZ1bmN0aW9uIGtjKGUpe3JldHVybiBCYygpW2VdfXZhciBNYz1rYztmdW5jdGlvbiBiaShlLG4scil7ZG9jdW1lbnQuY29va2llPXljKGUsbixEcih7cGF0aDoiLyJ9LHIpKX12YXIgWGM9Ymk7ZnVuY3Rpb24gJGMoZSxuKXtiaShlLCIiLERyKERyKHt9LG4pLHtleHBpcmVzOi0xfSkpfXZhciBqYz0kYztjb25zdCBUbz12dChgcHJvYzokezB9OnN0b3JhZ2UudHNgKTt2YXIgQWk9KGU9PihlLkxPQ0FMX1NUT1JBR0U9IkxvY2FsU3RvcmFnZSIsZS5TRVNTSU9OX1NUT1JBR0U9IlNlc3Npb25TdG9yYWdlIixlLkNPT0tJRV9TVE9SQUdFPSJDb29raWVTdG9yYWdlIixlLk1FTU9SWV9TVE9SQUdFPSJNZW1vcnlTdG9yYWdlIixlKSkoQWl8fHt9KTtjbGFzcyB4Y3tjb25zdHJ1Y3Rvcigpe3RoaXMuZ2V0PW49Pntjb25zdCByPU1jKG4pO3JldHVybiByP0pTT04ucGFyc2Uocik6bnVsbH0sdGhpcy5zZXQ9KG4scixvPXt9KT0+e2xldCB0PXt9O3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiJiYodD17c2VjdXJlOiEwLHNhbWVTaXRlOiJub25lIn0pLG8mJm8uZGF5c1VudGlsRXhwaXJlP3QuZXhwaXJlcz1vLmRheXNVbnRpbEV4cGlyZTp0LmV4cGlyZXM9MSxUbyhgQ29va2llU3RvcmFnZS5zZXQ6IGtleTogJHtufSwgdmFsdWU6IFske3J9XWApLFhjKG4sSlNPTi5zdHJpbmdpZnkociksdCl9LHRoaXMucmVtb3ZlPW49PntqYyhuKX19fWNsYXNzIEZje2NvbnN0cnVjdG9yKCl7dGhpcy5nZXQ9bj0+e2NvbnN0IHI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuKTtyZXR1cm4gdHlwZW9mIHI9PSJ1bmRlZmluZWQifHxyPT09bnVsbD9udWxsOkpTT04ucGFyc2Uocil9LHRoaXMuc2V0PShuLHIpPT57VG8oYFNlc3Npb25TdG9yYWdlLnNldDoga2V5OiAke259LCB2YWx1ZTogWyR7cn1dYCksc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuLEpTT04uc3RyaW5naWZ5KHIpKX0sdGhpcy5yZW1vdmU9bj0+e3Nlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0obil9fX1jbGFzcyBWY3tjb25zdHJ1Y3Rvcigpe3RoaXMuZ2V0PW49Pntjb25zdCByPWxvY2FsU3RvcmFnZS5nZXRJdGVtKG4pO3JldHVybiB0eXBlb2Ygcj09InVuZGVmaW5lZCJ8fHI9PT1udWxsP251bGw6SlNPTi5wYXJzZShyKX0sdGhpcy5zZXQ9KG4scik9PntUbyhgTG9jYWxTdG9yYWdlLnNldDoga2V5OiAke259LCB2YWx1ZTogWyR7cn1dYCksbG9jYWxTdG9yYWdlLnNldEl0ZW0obixKU09OLnN0cmluZ2lmeShyKSl9LHRoaXMucmVtb3ZlPW49Pntsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShuKX19fWNsYXNzIEtje2NvbnN0cnVjdG9yKCl7SWUodGhpcyx4bix2b2lkIDApO3VlKHRoaXMseG4se30pLHRoaXMuZ2V0PW49Pntjb25zdCByPVgodGhpcyx4bilbbl07cmV0dXJuIHR5cGVvZiByPT0idW5kZWZpbmVkInx8cj09PW51bGw/bnVsbDpyfSx0aGlzLnNldD0obixyKT0+e1RvKGBNZW1vcnlTdG9yYWdlLnNldDoga2V5OiAke259LCB2YWx1ZTogWyR7cn1dYCksWCh0aGlzLHhuKVtuXT1yfSx0aGlzLnJlbW92ZT1uPT57ZGVsZXRlIFgodGhpcyx4bilbbl19fX14bj1uZXcgV2Vha01hcDtjbGFzcyBXY3tjb25zdHJ1Y3RvcihuKXtJZSh0aGlzLFVuLG51bGwpO3N3aXRjaChuLmNsaWVudFN0b3JhZ2VUeXBlKXtjYXNlIlNlc3Npb25TdG9yYWdlIjp1ZSh0aGlzLFVuLG5ldyBGYyk7YnJlYWs7Y2FzZSJMb2NhbFN0b3JhZ2UiOnVlKHRoaXMsVW4sbmV3IFZjKTticmVhaztjYXNlIkNvb2tpZVN0b3JhZ2UiOnVlKHRoaXMsVW4sbmV3IHhjKTticmVhaztjYXNlIk1lbW9yeVN0b3JhZ2UiOnVlKHRoaXMsVW4sbmV3IEtjKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5rbm93biBbJHtuLmNsaWVudFN0b3JhZ2VUeXBlfV0gc3RvcmFnZSB0eXBlLmApfX1HZXRTdG9yYWdlKCl7cmV0dXJuIFgodGhpcyxVbil9fVVuPW5ldyBXZWFrTWFwO3ZhciB1cjsoZnVuY3Rpb24oZSl7ZVtlLkFDQ0VQVEVEPTIwMl09IkFDQ0VQVEVEIixlW2UuQkFEX0dBVEVXQVk9NTAyXT0iQkFEX0dBVEVXQVkiLGVbZS5CQURfUkVRVUVTVD00MDBdPSJCQURfUkVRVUVTVCIsZVtlLkNPTkZMSUNUPTQwOV09IkNPTkZMSUNUIixlW2UuQ09OVElOVUU9MTAwXT0iQ09OVElOVUUiLGVbZS5DUkVBVEVEPTIwMV09IkNSRUFURUQiLGVbZS5FWFBFQ1RBVElPTl9GQUlMRUQ9NDE3XT0iRVhQRUNUQVRJT05fRkFJTEVEIixlW2UuRkFJTEVEX0RFUEVOREVOQ1k9NDI0XT0iRkFJTEVEX0RFUEVOREVOQ1kiLGVbZS5GT1JCSURERU49NDAzXT0iRk9SQklEREVOIixlW2UuR0FURVdBWV9USU1FT1VUPTUwNF09IkdBVEVXQVlfVElNRU9VVCIsZVtlLkdPTkU9NDEwXT0iR09ORSIsZVtlLkhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEPTUwNV09IkhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEIixlW2UuSU1fQV9URUFQT1Q9NDE4XT0iSU1fQV9URUFQT1QiLGVbZS5JTlNVRkZJQ0lFTlRfU1BBQ0VfT05fUkVTT1VSQ0U9NDE5XT0iSU5TVUZGSUNJRU5UX1NQQUNFX09OX1JFU09VUkNFIixlW2UuSU5TVUZGSUNJRU5UX1NUT1JBR0U9NTA3XT0iSU5TVUZGSUNJRU5UX1NUT1JBR0UiLGVbZS5JTlRFUk5BTF9TRVJWRVJfRVJST1I9NTAwXT0iSU5URVJOQUxfU0VSVkVSX0VSUk9SIixlW2UuTEVOR1RIX1JFUVVJUkVEPTQxMV09IkxFTkdUSF9SRVFVSVJFRCIsZVtlLkxPQ0tFRD00MjNdPSJMT0NLRUQiLGVbZS5NRVRIT0RfRkFJTFVSRT00MjBdPSJNRVRIT0RfRkFJTFVSRSIsZVtlLk1FVEhPRF9OT1RfQUxMT1dFRD00MDVdPSJNRVRIT0RfTk9UX0FMTE9XRUQiLGVbZS5NT1ZFRF9QRVJNQU5FTlRMWT0zMDFdPSJNT1ZFRF9QRVJNQU5FTlRMWSIsZVtlLk1PVkVEX1RFTVBPUkFSSUxZPTMwMl09Ik1PVkVEX1RFTVBPUkFSSUxZIixlW2UuTVVMVElfU1RBVFVTPTIwN109Ik1VTFRJX1NUQVRVUyIsZVtlLk1VTFRJUExFX0NIT0lDRVM9MzAwXT0iTVVMVElQTEVfQ0hPSUNFUyIsZVtlLk5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQ9NTExXT0iTkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRCIsZVtlLk5PX0NPTlRFTlQ9MjA0XT0iTk9fQ09OVEVOVCIsZVtlLk5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OPTIwM109Ik5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OIixlW2UuTk9UX0FDQ0VQVEFCTEU9NDA2XT0iTk9UX0FDQ0VQVEFCTEUiLGVbZS5OT1RfRk9VTkQ9NDA0XT0iTk9UX0ZPVU5EIixlW2UuTk9UX0lNUExFTUVOVEVEPTUwMV09Ik5PVF9JTVBMRU1FTlRFRCIsZVtlLk5PVF9NT0RJRklFRD0zMDRdPSJOT1RfTU9ESUZJRUQiLGVbZS5PSz0yMDBdPSJPSyIsZVtlLlBBUlRJQUxfQ09OVEVOVD0yMDZdPSJQQVJUSUFMX0NPTlRFTlQiLGVbZS5QQVlNRU5UX1JFUVVJUkVEPTQwMl09IlBBWU1FTlRfUkVRVUlSRUQiLGVbZS5QRVJNQU5FTlRfUkVESVJFQ1Q9MzA4XT0iUEVSTUFORU5UX1JFRElSRUNUIixlW2UuUFJFQ09ORElUSU9OX0ZBSUxFRD00MTJdPSJQUkVDT05ESVRJT05fRkFJTEVEIixlW2UuUFJFQ09ORElUSU9OX1JFUVVJUkVEPTQyOF09IlBSRUNPTkRJVElPTl9SRVFVSVJFRCIsZVtlLlBST0NFU1NJTkc9MTAyXT0iUFJPQ0VTU0lORyIsZVtlLlBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEPTQwN109IlBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEIixlW2UuUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRT00MzFdPSJSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFIixlW2UuUkVRVUVTVF9USU1FT1VUPTQwOF09IlJFUVVFU1RfVElNRU9VVCIsZVtlLlJFUVVFU1RfVE9PX0xPTkc9NDEzXT0iUkVRVUVTVF9UT09fTE9ORyIsZVtlLlJFUVVFU1RfVVJJX1RPT19MT05HPTQxNF09IlJFUVVFU1RfVVJJX1RPT19MT05HIixlW2UuUkVRVUVTVEVEX1JBTkdFX05PVF9TQVRJU0ZJQUJMRT00MTZdPSJSRVFVRVNURURfUkFOR0VfTk9UX1NBVElTRklBQkxFIixlW2UuUkVTRVRfQ09OVEVOVD0yMDVdPSJSRVNFVF9DT05URU5UIixlW2UuU0VFX09USEVSPTMwM109IlNFRV9PVEhFUiIsZVtlLlNFUlZJQ0VfVU5BVkFJTEFCTEU9NTAzXT0iU0VSVklDRV9VTkFWQUlMQUJMRSIsZVtlLlNXSVRDSElOR19QUk9UT0NPTFM9MTAxXT0iU1dJVENISU5HX1BST1RPQ09MUyIsZVtlLlRFTVBPUkFSWV9SRURJUkVDVD0zMDddPSJURU1QT1JBUllfUkVESVJFQ1QiLGVbZS5UT09fTUFOWV9SRVFVRVNUUz00MjldPSJUT09fTUFOWV9SRVFVRVNUUyIsZVtlLlVOQVVUSE9SSVpFRD00MDFdPSJVTkFVVEhPUklaRUQiLGVbZS5VTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUz00NTFdPSJVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUyIsZVtlLlVOUFJPQ0VTU0FCTEVfRU5USVRZPTQyMl09IlVOUFJPQ0VTU0FCTEVfRU5USVRZIixlW2UuVU5TVVBQT1JURURfTUVESUFfVFlQRT00MTVdPSJVTlNVUFBPUlRFRF9NRURJQV9UWVBFIixlW2UuVVNFX1BST1hZPTMwNV09IlVTRV9QUk9YWSIsZVtlLk1JU0RJUkVDVEVEX1JFUVVFU1Q9NDIxXT0iTUlTRElSRUNURURfUkVRVUVTVCJ9KSh1cnx8KHVyPXt9KSk7dmFyIFVpPShlPT4oZS5DT0RFPSJjb2RlIixlLklEX1RPS0VOPSJpZF90b2tlbiIsZS5UT0tFTj0idG9rZW4iLGUpKShVaXx8e30pLEhpPShlPT4oZS5RVUVSWT0icXVlcnkiLGUuRlJBR01FTlQ9ImZyYWdtZW50IixlLkZPUk1fUE9TVD0iZm9ybV9wb3N0IixlKSkoSGl8fHt9KSxBdD0oZT0+KGUuQ0xJRU5UX0NSRURFTlRJQUxTPSJjbGllbnRfY3JlZGVudGlhbHMiLGUuQVVUSE9SSVpBVElPTl9DT0RFPSJhdXRob3JpemF0aW9uX2NvZGUiLGUuUkVGUkVTSF9UT0tFTj0icmVmcmVzaF90b2tlbiIsZSkpKEF0fHx7fSksam49KGU9PihlLlJFU1RPUkVfU0VTU0lPTj0iUmVzdG9yZVNlc3Npb24iLGUuQVVUSE9SSVpFPSJBdXRob3JpemUiLGUuSEFORExFX1JFRElSRUNUPSJIYW5kbGVSZWRpcmVjdCIsZS5MT0dPVVQ9IkxvZ291dCIsZS5BVVRIRU5USUNBVEVfRVZFTlQ9IkF1dGhlbnRpY2F0ZUV2ZW50IixlLkVSUk9SPSJFcnJvciIsZSkpKGpufHx7fSk7dnQoYHByb2M6JHswfTpzdHNvYXV0aDJ3b3JrZXIudHNgKTtjbGFzcyBZY3tjb25zdHJ1Y3RvcihuKXtJZSh0aGlzLEJlLHZvaWQgMCk7SWUodGhpcyxIbix2b2lkIDApO0llKHRoaXMsUHIsdm9pZCAwKTtJZSh0aGlzLE5vLHZvaWQgMCk7SWUodGhpcyxqZSx2b2lkIDApO0llKHRoaXMsZm4sdm9pZCAwKTtJZSh0aGlzLHZuLHZvaWQgMCk7SWUodGhpcyx4ZSx2b2lkIDApO0llKHRoaXMsRm4sdm9pZCAwKTtJZSh0aGlzLGdvLHZvaWQgMCk7SWUodGhpcyxubix2b2lkIDApO0llKHRoaXMsd3Isdm9pZCAwKTtJZSh0aGlzLEdyLHZvaWQgMCk7SWUodGhpcyxDcix2b2lkIDApO0llKHRoaXMsX3Isdm9pZCAwKTtJZSh0aGlzLHlyLHZvaWQgMCk7SWUodGhpcyxMcix2b2lkIDApO0llKHRoaXMsQnIsdm9pZCAwKTt1ZSh0aGlzLEJlLG51bGwpLHVlKHRoaXMsSG4sbmV3IFNjKSx1ZSh0aGlzLFByLG5ldyBQYyksdWUodGhpcyxObywiYXV0aG9yaXplX29wdGlvbnMuc3RzbWRhLmNvbS5hdSIpLHVlKHRoaXMsamUsInNlc3Npb24uc3RzbWRhLmNvbS5hdSIpLHVlKHRoaXMsZm4sbnVsbCksdWUodGhpcyx2bixudWxsKSx1ZSh0aGlzLHhlLG51bGwpLHVlKHRoaXMsRm4sbnVsbCksdWUodGhpcyxnbywwKSx0aGlzLlNldHVwTGlzdGVuZXI9KCk9PntYKHRoaXMsRm4pLm9ubWVzc2FnZT1hc3luYyByPT57Y29uc3Qgbz1yLmRhdGE7c3dpdGNoKG8uY29tbWFuZCl7Y2FzZSBqbi5SRVNUT1JFX1NFU1NJT046WCh0aGlzLG5uKS5jYWxsKHRoaXMsbyxhd2FpdCBYKHRoaXMsd3IpLmNhbGwodGhpcykpO2JyZWFrO2Nhc2Ugam4uQVVUSE9SSVpFOlgodGhpcyxubikuY2FsbCh0aGlzLG8sYXdhaXQgWCh0aGlzLEdyKS5jYWxsKHRoaXMpKTticmVhaztjYXNlIGpuLkhBTkRMRV9SRURJUkVDVDpYKHRoaXMsbm4pLmNhbGwodGhpcyxvLGF3YWl0IFgodGhpcyxDcikuY2FsbCh0aGlzLG8ucGF5bG9hZCkpO2JyZWFrO2Nhc2Ugam4uTE9HT1VUOlgodGhpcyxubikuY2FsbCh0aGlzLG8sYXdhaXQgWCh0aGlzLEJyKS5jYWxsKHRoaXMpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgQ29tbWFuZDogWyR7by5jb21tYW5kfSddIG5vdCBmb3VuZC5gKX19fSx1ZSh0aGlzLG5uLGFzeW5jKHIsbyk9Pntjb25zdCB0PXttZXNzYWdlSWQ6ci5tZXNzYWdlSWQsY29tbWFuZDpyLmNvbW1hbmQscGF5bG9hZDpvfTtYKHRoaXMsRm4pLnBvc3RNZXNzYWdlKHQpfSksdWUodGhpcyx3cixhc3luYygpPT57bGV0IHI9bnVsbDtpZihyPVgodGhpcyxCZSkuZ2V0KFgodGhpcyxqZSkpLHIhPT1udWxsKWNvbnNvbGUubG9nKCJTZXNzaW9uIHJlc3RvcmVkIGZyb20gY2xpZW50IHN0b3JhZ2UuIiksWCh0aGlzLGZuKSYmWCh0aGlzLGZuKS5VcGRhdGVJbnN0cnVtZW50KCJtIix7TG9nTWVzc2FnZToiU2Vzc2lvbiByZXN0b3JlZCBmcm9tIGNsaWVudCBzdG9yYWdlLiJ9KTtlbHNle2NvbnN0IG89YCR7e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkJST0tFUl9FTkRQT0lOVH06JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX1BPUlR9JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX0FQSV9ST09UfS9zZXNzaW9uYDtjb25zb2xlLmxvZygiUmVzdG9yZVNlc3Npb24iKSxjb25zb2xlLmxvZyhvKSxYKHRoaXMsZm4pJiYoWCh0aGlzLGZuKS5VcGRhdGVJbnN0cnVtZW50KCJtIix7TG9nTWVzc2FnZToiUmVzdG9yZVNlc3Npb24ifSksWCh0aGlzLGZuKS5VcGRhdGVJbnN0cnVtZW50KCJtIix7TG9nTWVzc2FnZTpvfSkpO3RyeXtjb25zdCB0PWF3YWl0ICRvKHttZXRob2Q6InBvc3QiLHVybDpvLGRhdGE6e1t3bi5PQXV0aDJQYXJhbWV0ZXJUeXBlLkNMSUVOVF9JRF06e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkNMSUVOVF9JRCxbd24uT0F1dGgyUGFyYW1ldGVyVHlwZS5TQ09QRV06e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LlNDT1BFLFt3bi5PQXV0aDJQYXJhbWV0ZXJUeXBlLlJFRElSRUNUX1VSSV06e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LlJFRElSRUNUX1VSSSxbd24uT0F1dGgyUGFyYW1ldGVyVHlwZS5BVURJRU5DRV06e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkFVRElFTkNFfSx3aXRoQ3JlZGVudGlhbHM6ITAsdGltZW91dDpwYXJzZUludCh7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uVElNRU9VVCl9KTt0LmRhdGEuc3RhdHVzPT09dXIuT0s/KHI9dC5kYXRhLmRldGFpbCxYKHRoaXMsQmUpLnNldChYKHRoaXMsamUpLHIpLGNvbnNvbGUubG9nKCJTZXNzaW9uIHJlc3RvcmVkIGZyb20gc2VydmVyIHNpZGUgY29va2llLiIpKTooY29uc29sZS5sb2coIkNvdWxkIG5vdCByZXN0b3JlIHByZXZpb3VzIHNlc3Npb246LSIpLGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHQuZGF0YSkpKX1jYXRjaCh0KXtjb25zb2xlLmxvZygiQ291bGQgbm90IHJlc3RvcmUgcHJldmlvdXMgc2Vzc2lvbiAoZXJyb3Igc3RhdGUpOi0iKSxjb25zb2xlLmxvZyh0KSxjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0KSl9fXJldHVybiByIT09bnVsbD8oWCh0aGlzLHhlKS5jYWxsKHRoaXMsci5pZF90b2tlbiksY29uc29sZS5sb2coIlJlZnJlc2hpbmcgdG9rZW5zIC4uLiIpLFgodGhpcyxMcikuY2FsbCh0aGlzKSk6KFgodGhpcyx4ZSkuY2FsbCh0aGlzLG51bGwpLCExKX0pLHVlKHRoaXMsR3IsYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJBdXRob3JpemUgLi4uIik7Y29uc3Qgcj17REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQ0xJRU5UX0lELG89WCh0aGlzLEhuKS5DcmVhdGVSYW5kb21TdHJpbmcoKSx0PVtVaS5DT0RFXSxzPXtERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5SRURJUkVDVF9VUkksaT1IaS5RVUVSWSxsPXtERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5TQ09QRSxjPVgodGhpcyxIbikuQ3JlYXRlUmFuZG9tU3RyaW5nKCksbT1YKHRoaXMsSG4pLkNyZWF0ZVJhbmRvbVN0cmluZygpLGE9YXdhaXQgWCh0aGlzLEhuKS5EaWdlc3RNZXNzYWdlKG0pLE89e2NsaWVudF9pZDpyLG5vbmNlOm8scmVzcG9uc2VfdHlwZTp0LHJlZGlyZWN0X3VyaTpzLHJlc3BvbnNlX21vZGU6aSxzY29wZTpsLHN0YXRlOmMsY29kZV9jaGFsbGVuZ2U6YSxjb2RlX2NoYWxsZW5nZV9tZXRob2Q6IlMyNTYifSxEPWAke3tERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5BVVRIX0VORFBPSU5UfToke3tERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5BVVRIX1BPUlR9JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQVVUSF9BUElST09UfT8ke1godGhpcyxQcikuQ3JlYXRlUXVlcnlQYXJhbXMoTyl9YDtyZXR1cm4gY29uc29sZS5sb2coRCksTy5jb2RlX3ZlcmlmaWVyPW0sY29uc29sZS5sb2coYEF1dGhvcml6ZTphdXRob3JpemVPcHRpb25zOiBbJHtKU09OLnN0cmluZ2lmeShPKX1dYCkse3VybDpELGF1dGhvcml6ZU9wdGlvbnM6T319KSx1ZSh0aGlzLENyLGFzeW5jIHI9Pntjb25zdCBvPXIucXVlcnlWYXJzLHQ9ci5hdXRob3JpemVPcHRpb25zO2lmKGNvbnNvbGUubG9nKCJIYW5kbGVSZWRpcmVjdCIpLGNvbnNvbGUubG9nKGBIYW5kbGVSZWRpcmVjdDpRdWVyeSBWYXJzOiBbJHtKU09OLnN0cmluZ2lmeShvKX1dYCksb1t3bi5PQXV0aDJQYXJhbWV0ZXJUeXBlLkNPREVdKXtjb25zdCBzPW87Y29uc29sZS5sb2coYGF1dGhvcml6ZU9wdGlvbnMgZnJvbSB0cmFuc2FjdGlvbiBzdGF0ZTogWyR7SlNPTi5zdHJpbmdpZnkodCl9XWApO2NvbnN0IGk9cy5zdGF0ZTtyZXR1cm4gdC5zdGF0ZS5sb2NhbGVDb21wYXJlKGkpPT09MD8oY29uc29sZS5sb2coInJlZGlyZWN0ZWQgc3RhdGUgKGZyb20gcXVlcnlWYXJzKSBtYXRjaGVkIHByZXZpb3VzbHkgc2F2ZWQgdHJhbnNhY3Rpb24gYXV0aG9yaXplT3B0aW9ucyBzdGF0ZSIpLGF3YWl0IFgodGhpcyx5cikuY2FsbCh0aGlzLHQscykpOihjb25zb2xlLmxvZygicmVkaXJlY3RlZCBzdGF0ZSAoZnJvbSBxdWVyeVZhcnMpIGRpZCBOT1QgbWF0Y2ggcHJldmlvdXNseSBzYXZlZCB0cmFuc2FjdGlvbiBhdXRob3JpemVPcHRpb25zIHN0YXRlIiksWCh0aGlzLHZuKS5jYWxsKHRoaXMse21lc3NhZ2U6IlN0YXRlIHVuLW1hdGNoZWQifSksITEpfWVsc2UgaWYob1t3bi5PQXV0aDJQYXJhbWV0ZXJUeXBlLkVSUk9SXSl7Y29uc3Qgcz1vO3JldHVybiBzLmVycm9yLHMuZXJyb3JfZGVzY3JpcHRpb24sWCh0aGlzLHZuKS5jYWxsKHRoaXMse21lc3NhZ2U6IlN0YXRlIHVuLW1hdGNoZWQifSksITF9ZWxzZSByZXR1cm4gWCh0aGlzLHZuKS5jYWxsKHRoaXMse21lc3NhZ2U6IlN0YXRlIHVuLW1hdGNoZWQifSksITF9KSx1ZSh0aGlzLF9yLGFzeW5jIHI9Pntjb25zb2xlLmxvZygiI0dldFRva2VuRnJvbUJyb2tlciIpLFgodGhpcyxCZSkucmVtb3ZlKFgodGhpcyxqZSkpO2NvbnN0IG89YCR7e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkJST0tFUl9FTkRQT0lOVH06JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX1BPUlR9JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX0FQSV9ST09UfS90b2tlbmA7Y29uc29sZS5sb2coYCNHZXRUb2tlbkZyb21Ccm9rZXI6dXJsID0gWyR7b31dYCksY29uc29sZS5sb2cocik7dHJ5e2NvbnN0IHQ9YXdhaXQgJG8oe21ldGhvZDoicG9zdCIsdXJsOm8sZGF0YTpyLHdpdGhDcmVkZW50aWFsczohMCx0aW1lb3V0OnBhcnNlSW50KHtERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5USU1FT1VUKX0pO2lmKGNvbnNvbGUubG9nKGByZXRWYWw6ICR7SlNPTi5zdHJpbmdpZnkodCl9YCksdC5zdGF0dXM9PT11ci5PSyl7Y29uc29sZS5sb2coIlN0b3JpbmcgdG9rZW5zLi4uIik7Y29uc3Qgcz10LmRhdGE7cmV0dXJuIFgodGhpcyx4ZSkuY2FsbCh0aGlzLHMuaWRfdG9rZW4pLFgodGhpcyxCZSkuc2V0KFgodGhpcyxqZSkscyksITB9ZWxzZSBpZih0LnN0YXR1cz09PXVyLlVOQVVUSE9SSVpFRCl7Y29uc29sZS5sb2coIk5PVCBTdG9yaW5nIHRva2Vucy4uLiIpLGNvbnNvbGUubG9nKHQuc3RhdHVzKSxYKHRoaXMseGUpLmNhbGwodGhpcyxudWxsKTtjb25zdCBzPXQuZGF0YTtyZXR1cm4hMX1lbHNlIHJldHVybiBjb25zb2xlLmxvZygiTk9UIFN0b3JpbmcgdG9rZW5zLi4uIiksY29uc29sZS5sb2codC5zdGF0dXMpLFgodGhpcyx4ZSkuY2FsbCh0aGlzLG51bGwpLGNvbnNvbGUubG9nKCJDb3VsZCBub3Qgb2J0YWluIGFjY2Vzc190b2tlbiBmcm9tIHRva2VuIGVuZC1wb2ludDotIiksY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkodC5kYXRhKSksITF9Y2F0Y2godCl7cmV0dXJuIFgodGhpcyx4ZSkuY2FsbCh0aGlzLG51bGwpLGNvbnNvbGUubG9nKHQpLGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHQpKSwhMX19KSx1ZSh0aGlzLHlyLGFzeW5jKHIsbyk9Pntjb25zb2xlLmxvZygiI0dldFRva2VuIiksY29uc29sZS5sb2cobyksWCh0aGlzLEJlKS5zZXQoWCh0aGlzLGplKSxudWxsKTtjb25zdCB0PXtjbGllbnRfaWQ6e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkNMSUVOVF9JRCxzY29wZTp7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uU0NPUEUsY29kZTpvLmNvZGUscmVkaXJlY3RfdXJpOntERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5SRURJUkVDVF9VUkksZ3JhbnRfdHlwZTpBdC5BVVRIT1JJWkFUSU9OX0NPREUsY29kZV92ZXJpZmllcjpyLmNvZGVfdmVyaWZpZXJ9O3JldHVybiBYKHRoaXMsX3IpLmNhbGwodGhpcyx0KX0pLHVlKHRoaXMsTHIsYXN5bmMoKT0+e2NvbnNvbGUubG9nKCJSZWZyZXNoVG9rZW4iKTtjb25zdCByPVgodGhpcyxCZSkuZ2V0KFgodGhpcyxqZSkpO2lmKHIpe2NvbnN0IG89e2NsaWVudF9pZDp7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQ0xJRU5UX0lELHNjb3BlOntERVBMT1lNRU5UX0JBU0VQQVRIOiIvb3B0L3J1bm5lciIsRE9UTkVUX05PTE9HTzoiMSIsVVNFUjoicnVubmVyIixucG1fY29uZmlnX2Fsd2F5c19hdXRoOiIiLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzguMTEuMCBub2RlL3YxOC4zLjAgbGludXggeDY0IHdvcmtzcGFjZXMvZmFsc2UgY2kvZ2l0aHViLWFjdGlvbnMiLENJOiJ0cnVlIixHSVRIVUJfRU5WOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc2V0X2Vudl81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLFBJUFhfSE9NRToiL29wdC9waXB4IixucG1fbm9kZV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixKQVZBX0hPTUVfOF9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTgtamRrLWFtZDY0IixOT0RFX0FVVEhfVE9LRU46IlhYWFhYLVhYWFhYLVhYWFhYLVhYWFhYIixTSExWTDoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLEhPTUU6Ii9ob21lL3J1bm5lciIsUlVOTkVSX1RFTVA6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wIixHSVRIVUJfRVZFTlRfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX2dpdGh1Yl93b3JrZmxvdy9ldmVudC5qc29uIixucG1fcGFja2FnZV9qc29uOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL3BhY2thZ2UuanNvbiIsSkFWQV9IT01FXzExX1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQSVBYX0JJTl9ESVI6Ii9vcHQvcGlweF9iaW4iLEdSQUFMVk1fMTFfUk9PVDoiL3Vzci9sb2NhbC9ncmFhbHZtL2dyYWFsdm0tY2UtamF2YTExLTIyLjEuMCIsR0lUSFVCX1JFUE9TSVRPUllfT1dORVI6Im5zc2h1bnQiLEdSQURMRV9IT01FOiIvdXNyL3NoYXJlL2dyYWRsZS03LjQuMiIsSE9NRUJSRVdfUFJFRklYOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldyIsQU5EUk9JRF9OREtfTEFURVNUX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay8yNC4wLjgyMTU4ODgiLEdJVEhVQl9SRVRFTlRJT05fREFZUzoiOTAiLFBPV0VSU0hFTExfRElTVFJJQlVUSU9OX0NIQU5ORUw6IkdpdEh1Yi1BY3Rpb25zLXVidW50dTIwIixBWlVSRV9FWFRFTlNJT05fRElSOiIvb3B0L2F6L2F6Y2xpZXh0ZW5zaW9ucyIsR0lUSFVCX0hFQURfUkVGOiIiLG5wbV9jb25maWdfbG9jYWxfcHJlZml4OiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfR1JBUEhRTF9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vZ3JhcGhxbCIsQ09MT1I6IjAiLE5WTV9ESVI6Ii9ob21lL3J1bm5lci8ubnZtIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsRE9UTkVUX1NLSVBfRklSU1RfVElNRV9FWFBFUklFTkNFOiIxIixKQVZBX0hPTUVfMTdfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xNy1qZGstYW1kNjQiLEltYWdlVmVyc2lvbjoiMjAyMjA2MDUuMSIsUlVOTkVSX09TOiJMaW51eCIsR0lUSFVCX0FQSV9VUkw6Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20iLFNXSUZUX1BBVEg6Ii91c3Ivc2hhcmUvc3dpZnQvdXNyL2JpbiIsUlVOTkVSX1VTRVI6InJ1bm5lciIsQ0hST01FV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2Nocm9tZV9kcml2ZXIiLEpPVVJOQUxfU1RSRUFNOiI4OjIxODM0IixHSVRIVUJfV09SS0ZMT1c6Ik5vZGUuanMgUGFja2FnZSIsXzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ucG0iLG5wbV9jb25maWdfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEdJVEhVQl9SVU5fSUQ6IjI0ODM1MDYwMzUiLEdPUk9PVF8xXzE2X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNi4xNS94NjQiLG5wbV9jb25maWdfY2FjaGU6Ii9ob21lL3J1bm5lci8ubnBtIixHT1JPT1RfMV8xN19YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTcuMTEveDY0IixHSVRIVUJfUkVGX1RZUEU6ImJyYW5jaCIsQk9PVFNUUkFQX0hBU0tFTExfTk9OSU5URVJBQ1RJVkU6IjEiLEdJVEhVQl9CQVNFX1JFRjoiIixJbWFnZU9TOiJ1YnVudHUyMCIsUEVSRkxPR19MT0NBVElPTl9TRVRUSU5HOiJSVU5ORVJfUEVSRkxPRyIsR09ST09UXzFfMThfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE4LjMveDY0IixHSVRIVUJfQUNUSU9OX1JFUE9TSVRPUlk6IiIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9ub2RlLWd5cC9iaW4vbm9kZS1neXAuanMiLFBBVEg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL25vZGVfbW9kdWxlcy9AbnBtY2xpL3J1bi1zY3JpcHQvbGliL25vZGUtZ3lwLWJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9zYmluOi9ob21lL3J1bm5lci8ubG9jYWwvYmluOi9vcHQvcGlweF9iaW46L2hvbWUvcnVubmVyLy5jYXJnby9iaW46L2hvbWUvcnVubmVyLy5jb25maWcvY29tcG9zZXIvdmVuZG9yL2JpbjovdXNyL2xvY2FsLy5naGN1cC9iaW46L2hvbWUvcnVubmVyLy5kb3RuZXQvdG9vbHM6L3NuYXAvYmluOi91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbjovdXNyL2dhbWVzOi91c3IvbG9jYWwvZ2FtZXM6L3NuYXAvYmluIixBTlRfSE9NRToiL3Vzci9zaGFyZS9hbnQiLERPVE5FVF9NVUxUSUxFVkVMX0xPT0tVUDoiMCIsUlVOTkVSX1RSQUNLSU5HX0lEOiJnaXRodWJfOWUwYTVjN2EtOTc4Zi00ZmNlLWJlOWYtMTU5N2E0NWQzZjhkIixJTlZPQ0FUSU9OX0lEOiI4MjMxNTA0MGY2Y2I0YjE4OTFiODc1NTA3NWRiZTc0OSIsSE9NRUJSRVdfQ0VMTEFSOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9DZWxsYXIiLE5QTV9DT05GSUdfVVNFUkNPTkZJRzoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvLm5wbXJjIixSVU5ORVJfVE9PTF9DQUNIRToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLE5PREU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsbnBtX3BhY2thZ2VfbmFtZToiQG5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixHSVRIVUJfQUNUSU9OOiJfX3J1bl8yIixHSVRIVUJfUlVOX05VTUJFUjoiMjQiLFJVTk5FUl9BUkNIOiJYNjQiLEFHRU5UX1RPT0xTRElSRUNUT1JZOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTEFORzoiQy5VVEYtOCIsVkNQS0dfSU5TVEFMTEFUSU9OX1JPT1Q6Ii91c3IvbG9jYWwvc2hhcmUvdmNwa2ciLENPTkRBOiIvdXNyL3NoYXJlL21pbmljb25kYSIsUlVOTkVSX05BTUU6Ikhvc3RlZCBBZ2VudCIsWERHX0NPTkZJR19IT01FOiIvaG9tZS9ydW5uZXIvLmNvbmZpZyIsR0lUSFVCX1JFRl9OQU1FOiJtYWluIixHSVRIVUJfUkVQT1NJVE9SWToibnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ2aXRlIGJ1aWxkIixBTkRST0lEX05ES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfQUNUSU9OX1JFRjoiIixERUJJQU5fRlJPTlRFTkQ6Im5vbmludGVyYWN0aXZlIixHSVRIVUJfQUNUSU9OUzoidHJ1ZSIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMC4xLjEzIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZCIsR0lUSFVCX1JFRl9QUk9URUNURUQ6ImZhbHNlIixHSVRIVUJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixBQ0NFUFRfRVVMQToiWSIsR0lUSFVCX0pPQjoicHVibGlzaC1ucG0iLFJVTk5FUl9QRVJGTE9HOiIvaG9tZS9ydW5uZXIvcGVyZmxvZyIsR0lUSFVCX1NIQToiZjY1OThkMTg4NjFjNjA4NGEzMDI0M2M5ZDZhOWQwMjAwZTFmOWU5NiIsR0lUSFVCX1JVTl9BVFRFTVBUOiIxIixHSVRIVUJfUkVGOiJyZWZzL2hlYWRzL21haW4iLEdJVEhVQl9BQ1RPUjoibnNzaHVudCIsQU5EUk9JRF9TREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLExFSU5fSE9NRToiL3Vzci9sb2NhbC9saWIvbGVpbiIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9ldGMvbnBtcmMiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9ob21lL3J1bm5lci8ubnBtLWluaXQuanMiLEdJVEhVQl9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvYWRkX3BhdGhfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixKQVZBX0hPTUU6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUFdEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixSVU5ORVJfV09SS1NQQUNFOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4iLG5wbV9leGVjcGF0aDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixIT01FQlJFV19DTEVBTlVQX1BFUklPRElDX0ZVTExfREFZUzoiMzY1MCIsR0lUSFVCX0VWRU5UX05BTUU6InB1c2giLEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFOiIxIixBTkRST0lEX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixHSVRIVUJfU0VSVkVSX1VSTDoiaHR0cHM6Ly9naXRodWIuY29tIixHRUNLT1dFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9nZWNrb19kcml2ZXIiLExFSU5fSkFSOiIvdXNyL2xvY2FsL2xpYi9sZWluL3NlbGYtaW5zdGFsbHMvbGVpbmluZ2VuLTIuOS44LXN0YW5kYWxvbmUuamFyIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsSE9NRUJSRVdfUkVQT1NJVE9SWToiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvSG9tZWJyZXciLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixTR1hfQUVTTV9BRERSOiIxIixDSFJPTUVfQklOOiIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIixTRUxFTklVTV9KQVJfUEFUSDoiL3Vzci9zaGFyZS9qYXZhL3NlbGVuaXVtLXNlcnZlci5qYXIiLEFORFJPSURfTkRLX0hPTUU6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9TVEVQX1NVTU1BUlk6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zdGVwX3N1bW1hcnlfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixJTklUX0NXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsRURJVE9SOiJ2aSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifS5TQ09QRSxyZWZyZXNoX3Rva2VuOnIucmVmcmVzaF90b2tlbixncmFudF90eXBlOkF0LlJFRlJFU0hfVE9LRU59O3JldHVybiBYKHRoaXMsX3IpLmNhbGwodGhpcyxvKX1lbHNlIHJldHVybiExfSksdWUodGhpcyxCcixhc3luYygpPT57Y29uc29sZS5sb2coIkxvZ291dCIpO2NvbnN0IHI9YCR7e0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LkJST0tFUl9FTkRQT0lOVH06JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX1BPUlR9JHt7REVQTE9ZTUVOVF9CQVNFUEFUSDoiL29wdC9ydW5uZXIiLERPVE5FVF9OT0xPR086IjEiLFVTRVI6InJ1bm5lciIsbnBtX2NvbmZpZ19hbHdheXNfYXV0aDoiIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS84LjExLjAgbm9kZS92MTguMy4wIGxpbnV4IHg2NCB3b3Jrc3BhY2VzL2ZhbHNlIGNpL2dpdGh1Yi1hY3Rpb25zIixDSToidHJ1ZSIsR0lUSFVCX0VOVjoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3NldF9lbnZfNWM0ZjZmMTgtMTY2NS00NjM4LWI0MjAtYmNkMDJmNjY1ODEwIixQSVBYX0hPTUU6Ii9vcHQvcGlweCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbm9kZSIsSkFWQV9IT01FXzhfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi04LWpkay1hbWQ2NCIsTk9ERV9BVVRIX1RPS0VOOiJYWFhYWC1YWFhYWC1YWFhYWC1YWFhYWCIsU0hMVkw6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixIT01FOiIvaG9tZS9ydW5uZXIiLFJVTk5FUl9URU1QOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcCIsR0lUSFVCX0VWRU5UX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19naXRodWJfd29ya2Zsb3cvZXZlbnQuanNvbiIsbnBtX3BhY2thZ2VfanNvbjoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9wYWNrYWdlLmpzb24iLEpBVkFfSE9NRV8xMV9YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTExLWpkay1hbWQ2NCIsUElQWF9CSU5fRElSOiIvb3B0L3BpcHhfYmluIixHUkFBTFZNXzExX1JPT1Q6Ii91c3IvbG9jYWwvZ3JhYWx2bS9ncmFhbHZtLWNlLWphdmExMS0yMi4xLjAiLEdJVEhVQl9SRVBPU0lUT1JZX09XTkVSOiJuc3NodW50IixHUkFETEVfSE9NRToiL3Vzci9zaGFyZS9ncmFkbGUtNy40LjIiLEhPTUVCUkVXX1BSRUZJWDoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXciLEFORFJPSURfTkRLX0xBVEVTVF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGsvMjQuMC44MjE1ODg4IixHSVRIVUJfUkVURU5USU9OX0RBWVM6IjkwIixQT1dFUlNIRUxMX0RJU1RSSUJVVElPTl9DSEFOTkVMOiJHaXRIdWItQWN0aW9ucy11YnVudHUyMCIsQVpVUkVfRVhURU5TSU9OX0RJUjoiL29wdC9hei9hemNsaWV4dGVuc2lvbnMiLEdJVEhVQl9IRUFEX1JFRjoiIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0dSQVBIUUxfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tL2dyYXBocWwiLENPTE9SOiIwIixOVk1fRElSOiIvaG9tZS9ydW5uZXIvLm52bSIsbnBtX2NvbmZpZ19tZXRyaWNzX3JlZ2lzdHJ5OiJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8iLERPVE5FVF9TS0lQX0ZJUlNUX1RJTUVfRVhQRVJJRU5DRToiMSIsSkFWQV9IT01FXzE3X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tMTctamRrLWFtZDY0IixJbWFnZVZlcnNpb246IjIwMjIwNjA1LjEiLFJVTk5FUl9PUzoiTGludXgiLEdJVEhVQl9BUElfVVJMOiJodHRwczovL2FwaS5naXRodWIuY29tIixTV0lGVF9QQVRIOiIvdXNyL3NoYXJlL3N3aWZ0L3Vzci9iaW4iLFJVTk5FUl9VU0VSOiJydW5uZXIiLENIUk9NRVdFQkRSSVZFUjoiL3Vzci9sb2NhbC9zaGFyZS9jaHJvbWVfZHJpdmVyIixKT1VSTkFMX1NUUkVBTToiODoyMTgzNCIsR0lUSFVCX1dPUktGTE9XOiJOb2RlLmpzIFBhY2thZ2UiLF86Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW4vbnBtIixucG1fY29uZmlnX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixHSVRIVUJfUlVOX0lEOiIyNDgzNTA2MDM1IixHT1JPT1RfMV8xNl9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTYuMTUveDY0IixucG1fY29uZmlnX2NhY2hlOiIvaG9tZS9ydW5uZXIvLm5wbSIsR09ST09UXzFfMTdfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE3LjExL3g2NCIsR0lUSFVCX1JFRl9UWVBFOiJicmFuY2giLEJPT1RTVFJBUF9IQVNLRUxMX05PTklOVEVSQUNUSVZFOiIxIixHSVRIVUJfQkFTRV9SRUY6IiIsSW1hZ2VPUzoidWJ1bnR1MjAiLFBFUkZMT0dfTE9DQVRJT05fU0VUVElORzoiUlVOTkVSX1BFUkZMT0ciLEdPUk9PVF8xXzE4X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xOC4zL3g2NCIsR0lUSFVCX0FDVElPTl9SRVBPU0lUT1JZOiIiLG5wbV9jb25maWdfbm9kZV9neXA6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixQQVRIOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvbm9kZV9tb2R1bGVzLy5iaW46L25vZGVfbW9kdWxlcy8uYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2JpbjovaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvc2JpbjovaG9tZS9ydW5uZXIvLmxvY2FsL2Jpbjovb3B0L3BpcHhfYmluOi9ob21lL3J1bm5lci8uY2FyZ28vYmluOi9ob21lL3J1bm5lci8uY29uZmlnL2NvbXBvc2VyL3ZlbmRvci9iaW46L3Vzci9sb2NhbC8uZ2hjdXAvYmluOi9ob21lL3J1bm5lci8uZG90bmV0L3Rvb2xzOi9zbmFwL2JpbjovdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW46L3Vzci9nYW1lczovdXNyL2xvY2FsL2dhbWVzOi9zbmFwL2JpbiIsQU5UX0hPTUU6Ii91c3Ivc2hhcmUvYW50IixET1RORVRfTVVMVElMRVZFTF9MT09LVVA6IjAiLFJVTk5FUl9UUkFDS0lOR19JRDoiZ2l0aHViXzllMGE1YzdhLTk3OGYtNGZjZS1iZTlmLTE1OTdhNDVkM2Y4ZCIsSU5WT0NBVElPTl9JRDoiODIzMTUwNDBmNmNiNGIxODkxYjg3NTUwNzVkYmU3NDkiLEhPTUVCUkVXX0NFTExBUjoiL2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvQ2VsbGFyIixOUE1fQ09ORklHX1VTRVJDT05GSUc6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wLy5ucG1yYyIsUlVOTkVSX1RPT0xfQ0FDSEU6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixOT0RFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLG5wbV9wYWNrYWdlX25hbWU6IkBuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsR0lUSFVCX0FDVElPTjoiX19ydW5fMiIsR0lUSFVCX1JVTl9OVU1CRVI6IjI0IixSVU5ORVJfQVJDSDoiWDY0IixBR0VOVF9UT09MU0RJUkVDVE9SWToiL29wdC9ob3N0ZWR0b29sY2FjaGUiLExBTkc6IkMuVVRGLTgiLFZDUEtHX0lOU1RBTExBVElPTl9ST09UOiIvdXNyL2xvY2FsL3NoYXJlL3ZjcGtnIixDT05EQToiL3Vzci9zaGFyZS9taW5pY29uZGEiLFJVTk5FUl9OQU1FOiJIb3N0ZWQgQWdlbnQiLFhER19DT05GSUdfSE9NRToiL2hvbWUvcnVubmVyLy5jb25maWciLEdJVEhVQl9SRUZfTkFNRToibWFpbiIsR0lUSFVCX1JFUE9TSVRPUlk6Im5zc2h1bnQvc3Rzb2F1dGgycGx1Z2luIixucG1fbGlmZWN5Y2xlX3NjcmlwdDoidml0ZSBidWlsZCIsQU5EUk9JRF9OREtfUk9PVDoiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX0FDVElPTl9SRUY6IiIsREVCSUFOX0ZST05URU5EOiJub25pbnRlcmFjdGl2ZSIsR0lUSFVCX0FDVElPTlM6InRydWUiLG5wbV9wYWNrYWdlX3ZlcnNpb246IjAuMS4xMyIsbnBtX2xpZmVjeWNsZV9ldmVudDoiYnVpbGQiLEdJVEhVQl9SRUZfUFJPVEVDVEVEOiJmYWxzZSIsR0lUSFVCX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsQUNDRVBUX0VVTEE6IlkiLEdJVEhVQl9KT0I6InB1Ymxpc2gtbnBtIixSVU5ORVJfUEVSRkxPRzoiL2hvbWUvcnVubmVyL3BlcmZsb2ciLEdJVEhVQl9TSEE6ImY2NTk4ZDE4ODYxYzYwODRhMzAyNDNjOWQ2YTlkMDIwMGUxZjllOTYiLEdJVEhVQl9SVU5fQVRURU1QVDoiMSIsR0lUSFVCX1JFRjoicmVmcy9oZWFkcy9tYWluIixHSVRIVUJfQUNUT1I6Im5zc2h1bnQiLEFORFJPSURfU0RLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrIixMRUlOX0hPTUU6Ii91c3IvbG9jYWwvbGliL2xlaW4iLG5wbV9jb25maWdfZ2xvYmFsY29uZmlnOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvZXRjL25wbXJjIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvaG9tZS9ydW5uZXIvLm5wbS1pbml0LmpzIixHSVRIVUJfUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL2FkZF9wYXRoXzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSkFWQV9IT01FOiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBXRDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbiIsUlVOTkVSX1dPUktTUEFDRToiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luIixucG1fZXhlY3BhdGg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9saWIvbm9kZV9tb2R1bGVzL25wbS9iaW4vbnBtLWNsaS5qcyIsSE9NRUJSRVdfQ0xFQU5VUF9QRVJJT0RJQ19GVUxMX0RBWVM6IjM2NTAiLEdJVEhVQl9FVkVOVF9OQU1FOiJwdXNoIixIT01FQlJFV19OT19BVVRPX1VQREFURToiMSIsQU5EUk9JRF9IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsR0lUSFVCX1NFUlZFUl9VUkw6Imh0dHBzOi8vZ2l0aHViLmNvbSIsR0VDS09XRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvZ2Vja29fZHJpdmVyIixMRUlOX0pBUjoiL3Vzci9sb2NhbC9saWIvbGVpbi9zZWxmLWluc3RhbGxzL2xlaW5pbmdlbi0yLjkuOC1zdGFuZGFsb25lLmphciIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQiLEhPTUVCUkVXX1JFUE9TSVRPUlk6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0hvbWVicmV3IixucG1fY29tbWFuZDoicnVuLXNjcmlwdCIsU0dYX0FFU01fQUREUjoiMSIsQ0hST01FX0JJTjoiL3Vzci9iaW4vZ29vZ2xlLWNocm9tZSIsU0VMRU5JVU1fSkFSX1BBVEg6Ii91c3Ivc2hhcmUvamF2YS9zZWxlbml1bS1zZXJ2ZXIuamFyIixBTkRST0lEX05ES19IT01FOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3Nkay9uZGstYnVuZGxlIixHSVRIVUJfU1RFUF9TVU1NQVJZOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fcnVubmVyX2ZpbGVfY29tbWFuZHMvc3RlcF9zdW1tYXJ5XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsSU5JVF9DV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEVESVRPUjoidmkiLE5PREVfRU5WOiJwcm9kdWN0aW9uIn0uQlJPS0VSX0FQSV9ST09UfS9sb2dvdXRgO2NvbnNvbGUubG9nKHIpO2NvbnN0IHQ9WCh0aGlzLEJlKS5nZXQoWCh0aGlzLGplKSkucmVmcmVzaF90b2tlbjtjb25zb2xlLmxvZyh0KTtjb25zdCBzPUdjKHQpO2NvbnNvbGUubG9nKHMpO2NvbnN0IGk9cy5zdHNfc2Vzc2lvbjtjb25zb2xlLmxvZyhpKSxYKHRoaXMsQmUpLnJlbW92ZShYKHRoaXMsamUpKSxYKHRoaXMseGUpLmNhbGwodGhpcyxudWxsKTt0cnl7Y29uc3QgbD1hd2FpdCAkbyh7bWV0aG9kOiJwb3N0Iix1cmw6cixkYXRhOntzZXNzaW9uSWQ6aX0sd2l0aENyZWRlbnRpYWxzOiEwLHRpbWVvdXQ6cGFyc2VJbnQoe0RFUExPWU1FTlRfQkFTRVBBVEg6Ii9vcHQvcnVubmVyIixET1RORVRfTk9MT0dPOiIxIixVU0VSOiJydW5uZXIiLG5wbV9jb25maWdfYWx3YXlzX2F1dGg6IiIsbnBtX2NvbmZpZ191c2VyX2FnZW50OiJucG0vOC4xMS4wIG5vZGUvdjE4LjMuMCBsaW51eCB4NjQgd29ya3NwYWNlcy9mYWxzZSBjaS9naXRodWItYWN0aW9ucyIsQ0k6InRydWUiLEdJVEhVQl9FTlY6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9zZXRfZW52XzVjNGY2ZjE4LTE2NjUtNDYzOC1iNDIwLWJjZDAyZjY2NTgxMCIsUElQWF9IT01FOiIvb3B0L3BpcHgiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25vZGUiLEpBVkFfSE9NRV84X1g2NDoiL3Vzci9saWIvanZtL3RlbXVyaW4tOC1qZGstYW1kNjQiLE5PREVfQVVUSF9UT0tFTjoiWFhYWFgtWFhYWFgtWFhYWFgtWFhYWFgiLFNITFZMOiIxIixucG1fY29uZmlnX25vcHJveHk6IiIsSE9NRToiL2hvbWUvcnVubmVyIixSVU5ORVJfVEVNUDoiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAiLEdJVEhVQl9FVkVOVF9QQVRIOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC9fZ2l0aHViX3dvcmtmbG93L2V2ZW50Lmpzb24iLG5wbV9wYWNrYWdlX2pzb246Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4vcGFja2FnZS5qc29uIixKQVZBX0hPTUVfMTFfWDY0OiIvdXNyL2xpYi9qdm0vdGVtdXJpbi0xMS1qZGstYW1kNjQiLFBJUFhfQklOX0RJUjoiL29wdC9waXB4X2JpbiIsR1JBQUxWTV8xMV9ST09UOiIvdXNyL2xvY2FsL2dyYWFsdm0vZ3JhYWx2bS1jZS1qYXZhMTEtMjIuMS4wIixHSVRIVUJfUkVQT1NJVE9SWV9PV05FUjoibnNzaHVudCIsR1JBRExFX0hPTUU6Ii91c3Ivc2hhcmUvZ3JhZGxlLTcuNC4yIixIT01FQlJFV19QUkVGSVg6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3IixBTkRST0lEX05ES19MQVRFU1RfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLzI0LjAuODIxNTg4OCIsR0lUSFVCX1JFVEVOVElPTl9EQVlTOiI5MCIsUE9XRVJTSEVMTF9ESVNUUklCVVRJT05fQ0hBTk5FTDoiR2l0SHViLUFjdGlvbnMtdWJ1bnR1MjAiLEFaVVJFX0VYVEVOU0lPTl9ESVI6Ii9vcHQvYXovYXpjbGlleHRlbnNpb25zIixHSVRIVUJfSEVBRF9SRUY6IiIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9HUkFQSFFMX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9ncmFwaHFsIixDT0xPUjoiMCIsTlZNX0RJUjoiL2hvbWUvcnVubmVyLy5udm0iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixET1RORVRfU0tJUF9GSVJTVF9USU1FX0VYUEVSSUVOQ0U6IjEiLEpBVkFfSE9NRV8xN19YNjQ6Ii91c3IvbGliL2p2bS90ZW11cmluLTE3LWpkay1hbWQ2NCIsSW1hZ2VWZXJzaW9uOiIyMDIyMDYwNS4xIixSVU5ORVJfT1M6IkxpbnV4IixHSVRIVUJfQVBJX1VSTDoiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbSIsU1dJRlRfUEFUSDoiL3Vzci9zaGFyZS9zd2lmdC91c3IvYmluIixSVU5ORVJfVVNFUjoicnVubmVyIixDSFJPTUVXRUJEUklWRVI6Ii91c3IvbG9jYWwvc2hhcmUvY2hyb21lX2RyaXZlciIsSk9VUk5BTF9TVFJFQU06Ijg6MjE4MzQiLEdJVEhVQl9XT1JLRkxPVzoiTm9kZS5qcyBQYWNrYWdlIixfOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvYmluL25wbSIsbnBtX2NvbmZpZ19wcmVmaXg6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NCIsR0lUSFVCX1JVTl9JRDoiMjQ4MzUwNjAzNSIsR09ST09UXzFfMTZfWDY0OiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9nby8xLjE2LjE1L3g2NCIsbnBtX2NvbmZpZ19jYWNoZToiL2hvbWUvcnVubmVyLy5ucG0iLEdPUk9PVF8xXzE3X1g2NDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvZ28vMS4xNy4xMS94NjQiLEdJVEhVQl9SRUZfVFlQRToiYnJhbmNoIixCT09UU1RSQVBfSEFTS0VMTF9OT05JTlRFUkFDVElWRToiMSIsR0lUSFVCX0JBU0VfUkVGOiIiLEltYWdlT1M6InVidW50dTIwIixQRVJGTE9HX0xPQ0FUSU9OX1NFVFRJTkc6IlJVTk5FUl9QRVJGTE9HIixHT1JPT1RfMV8xOF9YNjQ6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlL2dvLzEuMTguMy94NjQiLEdJVEhVQl9BQ1RJT05fUkVQT1NJVE9SWToiIixucG1fY29uZmlnX25vZGVfZ3lwOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsUEFUSDoiL2hvbWUvcnVubmVyL3dvcmsvc3Rzb2F1dGgycGx1Z2luL3N0c29hdXRoMnBsdWdpbi9ub2RlX21vZHVsZXMvLmJpbjovaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL3dvcmsvbm9kZV9tb2R1bGVzLy5iaW46L2hvbWUvcnVubmVyL25vZGVfbW9kdWxlcy8uYmluOi9ob21lL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi9vcHQvaG9zdGVkdG9vbGNhY2hlL25vZGUvMTguMy4wL3g2NC9iaW46L2hvbWUvbGludXhicmV3Ly5saW51eGJyZXcvYmluOi9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L3NiaW46L2hvbWUvcnVubmVyLy5sb2NhbC9iaW46L29wdC9waXB4X2JpbjovaG9tZS9ydW5uZXIvLmNhcmdvL2JpbjovaG9tZS9ydW5uZXIvLmNvbmZpZy9jb21wb3Nlci92ZW5kb3IvYmluOi91c3IvbG9jYWwvLmdoY3VwL2JpbjovaG9tZS9ydW5uZXIvLmRvdG5ldC90b29sczovc25hcC9iaW46L3Vzci9sb2NhbC9zYmluOi91c3IvbG9jYWwvYmluOi91c3Ivc2JpbjovdXNyL2Jpbjovc2JpbjovYmluOi91c3IvZ2FtZXM6L3Vzci9sb2NhbC9nYW1lczovc25hcC9iaW4iLEFOVF9IT01FOiIvdXNyL3NoYXJlL2FudCIsRE9UTkVUX01VTFRJTEVWRUxfTE9PS1VQOiIwIixSVU5ORVJfVFJBQ0tJTkdfSUQ6ImdpdGh1Yl85ZTBhNWM3YS05NzhmLTRmY2UtYmU5Zi0xNTk3YTQ1ZDNmOGQiLElOVk9DQVRJT05fSUQ6IjgyMzE1MDQwZjZjYjRiMTg5MWI4NzU1MDc1ZGJlNzQ5IixIT01FQlJFV19DRUxMQVI6Ii9ob21lL2xpbnV4YnJldy8ubGludXhicmV3L0NlbGxhciIsTlBNX0NPTkZJR19VU0VSQ09ORklHOiIvaG9tZS9ydW5uZXIvd29yay9fdGVtcC8ubnBtcmMiLFJVTk5FUl9UT09MX0NBQ0hFOiIvb3B0L2hvc3RlZHRvb2xjYWNoZSIsTk9ERToiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2Jpbi9ub2RlIixucG1fcGFja2FnZV9uYW1lOiJAbnNzaHVudC9zdHNvYXV0aDJwbHVnaW4iLEdJVEhVQl9BQ1RJT046Il9fcnVuXzIiLEdJVEhVQl9SVU5fTlVNQkVSOiIyNCIsUlVOTkVSX0FSQ0g6Ilg2NCIsQUdFTlRfVE9PTFNESVJFQ1RPUlk6Ii9vcHQvaG9zdGVkdG9vbGNhY2hlIixMQU5HOiJDLlVURi04IixWQ1BLR19JTlNUQUxMQVRJT05fUk9PVDoiL3Vzci9sb2NhbC9zaGFyZS92Y3BrZyIsQ09OREE6Ii91c3Ivc2hhcmUvbWluaWNvbmRhIixSVU5ORVJfTkFNRToiSG9zdGVkIEFnZW50IixYREdfQ09ORklHX0hPTUU6Ii9ob21lL3J1bm5lci8uY29uZmlnIixHSVRIVUJfUkVGX05BTUU6Im1haW4iLEdJVEhVQl9SRVBPU0lUT1JZOiJuc3NodW50L3N0c29hdXRoMnBsdWdpbiIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InZpdGUgYnVpbGQiLEFORFJPSURfTkRLX1JPT1Q6Ii91c3IvbG9jYWwvbGliL2FuZHJvaWQvc2RrL25kay1idW5kbGUiLEdJVEhVQl9BQ1RJT05fUkVGOiIiLERFQklBTl9GUk9OVEVORDoibm9uaW50ZXJhY3RpdmUiLEdJVEhVQl9BQ1RJT05TOiJ0cnVlIixucG1fcGFja2FnZV92ZXJzaW9uOiIwLjEuMTMiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkIixHSVRIVUJfUkVGX1BST1RFQ1RFRDoiZmFsc2UiLEdJVEhVQl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLEFDQ0VQVF9FVUxBOiJZIixHSVRIVUJfSk9COiJwdWJsaXNoLW5wbSIsUlVOTkVSX1BFUkZMT0c6Ii9ob21lL3J1bm5lci9wZXJmbG9nIixHSVRIVUJfU0hBOiJmNjU5OGQxODg2MWM2MDg0YTMwMjQzYzlkNmE5ZDAyMDBlMWY5ZTk2IixHSVRIVUJfUlVOX0FUVEVNUFQ6IjEiLEdJVEhVQl9SRUY6InJlZnMvaGVhZHMvbWFpbiIsR0lUSFVCX0FDVE9SOiJuc3NodW50IixBTkRST0lEX1NES19ST09UOiIvdXNyL2xvY2FsL2xpYi9hbmRyb2lkL3NkayIsTEVJTl9IT01FOiIvdXNyL2xvY2FsL2xpYi9sZWluIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0L2V0Yy9ucG1yYyIsbnBtX2NvbmZpZ19pbml0X21vZHVsZToiL2hvbWUvcnVubmVyLy5ucG0taW5pdC5qcyIsR0lUSFVCX1BBVEg6Ii9ob21lL3J1bm5lci93b3JrL190ZW1wL19ydW5uZXJfZmlsZV9jb21tYW5kcy9hZGRfcGF0aF81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLEpBVkFfSE9NRToiL3Vzci9saWIvanZtL3RlbXVyaW4tMTEtamRrLWFtZDY0IixQV0Q6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbi9zdHNvYXV0aDJwbHVnaW4iLFJVTk5FUl9XT1JLU1BBQ0U6Ii9ob21lL3J1bm5lci93b3JrL3N0c29hdXRoMnBsdWdpbiIsbnBtX2V4ZWNwYXRoOiIvb3B0L2hvc3RlZHRvb2xjYWNoZS9ub2RlLzE4LjMuMC94NjQvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLEhPTUVCUkVXX0NMRUFOVVBfUEVSSU9ESUNfRlVMTF9EQVlTOiIzNjUwIixHSVRIVUJfRVZFTlRfTkFNRToicHVzaCIsSE9NRUJSRVdfTk9fQVVUT19VUERBVEU6IjEiLEFORFJPSURfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsiLEdJVEhVQl9TRVJWRVJfVVJMOiJodHRwczovL2dpdGh1Yi5jb20iLEdFQ0tPV0VCRFJJVkVSOiIvdXNyL2xvY2FsL3NoYXJlL2dlY2tvX2RyaXZlciIsTEVJTl9KQVI6Ii91c3IvbG9jYWwvbGliL2xlaW4vc2VsZi1pbnN0YWxscy9sZWluaW5nZW4tMi45Ljgtc3RhbmRhbG9uZS5qYXIiLG5wbV9jb25maWdfZ2xvYmFsX3ByZWZpeDoiL29wdC9ob3N0ZWR0b29sY2FjaGUvbm9kZS8xOC4zLjAveDY0IixIT01FQlJFV19SRVBPU0lUT1JZOiIvaG9tZS9saW51eGJyZXcvLmxpbnV4YnJldy9Ib21lYnJldyIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLFNHWF9BRVNNX0FERFI6IjEiLENIUk9NRV9CSU46Ii91c3IvYmluL2dvb2dsZS1jaHJvbWUiLFNFTEVOSVVNX0pBUl9QQVRIOiIvdXNyL3NoYXJlL2phdmEvc2VsZW5pdW0tc2VydmVyLmphciIsQU5EUk9JRF9OREtfSE9NRToiL3Vzci9sb2NhbC9saWIvYW5kcm9pZC9zZGsvbmRrLWJ1bmRsZSIsR0lUSFVCX1NURVBfU1VNTUFSWToiL2hvbWUvcnVubmVyL3dvcmsvX3RlbXAvX3J1bm5lcl9maWxlX2NvbW1hbmRzL3N0ZXBfc3VtbWFyeV81YzRmNmYxOC0xNjY1LTQ2MzgtYjQyMC1iY2QwMmY2NjU4MTAiLElOSVRfQ1dEOiIvaG9tZS9ydW5uZXIvd29yay9zdHNvYXV0aDJwbHVnaW4vc3Rzb2F1dGgycGx1Z2luIixFRElUT1I6InZpIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9LlRJTUVPVVQpfSk7cmV0dXJuIGwuZGF0YS5zdGF0dXM9PT11ci5PSz8hMDooY29uc29sZS5sb2coIkVycm9yIGR1cmluZyBsb2dvdXQgKHNlcnZlciBzaWRlKSIpLGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGwuZGF0YSkpLCExKX1jYXRjaChsKXtyZXR1cm4gY29uc29sZS5sb2coIkVycm9yIGR1cmluZyBsb2dvdXQgKHNlcnZlciBzaWRlKSIpLGNvbnNvbGUubG9nKGwpLGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGwpKSwhMX19KSx1ZSh0aGlzLEJlLG5ldyBXYyh7Y2xpZW50U3RvcmFnZVR5cGU6QWkuTUVNT1JZX1NUT1JBR0V9KS5HZXRTdG9yYWdlKCkpLHVlKHRoaXMseGUscj0+e2NvbnN0IG89e21lc3NhZ2VJZDotMSxjb21tYW5kOmpuLkFVVEhFTlRJQ0FURV9FVkVOVH07WCh0aGlzLG5uKS5jYWxsKHRoaXMsbyxyKX0pLHVlKHRoaXMsdm4scj0+e2NvbnN0IG89e21lc3NhZ2VJZDotMSxjb21tYW5kOmpuLkVSUk9SfTtYKHRoaXMsbm4pLmNhbGwodGhpcyxvLHIpfSksdWUodGhpcyxGbixuKSx0aGlzLlNldHVwTGlzdGVuZXIoKX19QmU9bmV3IFdlYWtNYXAsSG49bmV3IFdlYWtNYXAsUHI9bmV3IFdlYWtNYXAsTm89bmV3IFdlYWtNYXAsamU9bmV3IFdlYWtNYXAsZm49bmV3IFdlYWtNYXAsdm49bmV3IFdlYWtNYXAseGU9bmV3IFdlYWtNYXAsRm49bmV3IFdlYWtNYXAsZ289bmV3IFdlYWtNYXAsbm49bmV3IFdlYWtNYXAsd3I9bmV3IFdlYWtNYXAsR3I9bmV3IFdlYWtNYXAsQ3I9bmV3IFdlYWtNYXAsX3I9bmV3IFdlYWtNYXAseXI9bmV3IFdlYWtNYXAsTHI9bmV3IFdlYWtNYXAsQnI9bmV3IFdlYWtNYXAsb25tZXNzYWdlPWFzeW5jIGZ1bmN0aW9uKGUpe2NvbnN0IG49ZS5kYXRhO25ldyBZYyhuKX19KSgpOwo=";
|
|
7205
|
+
const blob = typeof window !== "undefined" && window.Blob && new Blob([atob(encodedJs)], { type: "text/javascript;charset=utf-8" });
|
|
7206
|
+
function WorkerWrapper() {
|
|
7207
|
+
const objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);
|
|
7208
|
+
try {
|
|
7209
|
+
return objURL ? new Worker(objURL, {}) : new Worker("data:application/javascript;base64," + encodedJs, { type: "module" });
|
|
7210
|
+
} finally {
|
|
7211
|
+
objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);
|
|
7212
|
+
}
|
|
7213
|
+
}
|
|
7214
|
+
const debug = Debug(`proc:${0}:stsoauth2manager.ts`);
|
|
7205
7215
|
class STSOAuth2Manager {
|
|
7206
7216
|
constructor(app, options) {
|
|
7207
7217
|
__privateAdd(this, _storageManager, void 0);
|
|
@@ -7447,9 +7457,7 @@ class STSOAuth2Manager {
|
|
|
7447
7457
|
__privateSet(this, _aic, app.config.globalProperties.$sts.aic.PrimaryPublishInstrumentController);
|
|
7448
7458
|
__privateSet(this, _router, app.config.globalProperties.$router);
|
|
7449
7459
|
__privateSet(this, _transactionStore, new ClientStorageFactory({ clientStorageType: ClientStorageType.SESSION_STORAGE }).GetStorage());
|
|
7450
|
-
__privateSet(this, _worker, new
|
|
7451
|
-
type: "module"
|
|
7452
|
-
}));
|
|
7460
|
+
__privateSet(this, _worker, new WorkerWrapper());
|
|
7453
7461
|
__privateGet(this, _worker).onmessage = (data) => {
|
|
7454
7462
|
console.log(`this.#worker.onmessage = [${data}]`);
|
|
7455
7463
|
};
|